Un utilisateur est créer 'debian' et à la première connexion ssh, le mot de passe est réinitialisé.
Rien d'obligatoire ici, mais c'est toujours mieux de ne pas connaître votre nom d'utilisateur, non?
# ajout d'un nouvel utilisateur
sudo adduser _username_
# ajouter au sudo group
sudo usermod -aG sudo _username_
# vérifie
groups _username_
> _username_:_username_ sudo users
On peut ouvrir un nouvelle connexion avec notre nouvel utilisateur. Vérifier bien que vous avez accès à votre serveur avec le nouvel utilisateur avant de fermer la connexion initiale.
Et supprimer cet utilisateur 'debian':
# supprimer un compte utilisateur
sudo userdel -r -f _username_
Si on a besoin d'utiliser le 'root' et qu'on ne veux pas préfixer les commandes de 'sudo':
# passer par le root shell (on conserve notre profile)
sudo -s
# ou si vous avec besoin de l'environnement du root
# equivalent à su-
sudo -i
En faisant ainsi, le root est accessible que depuis le système.
Les clé ssh sont plus résistante au brute force.
On gagne en confort, puisque la connexion ne se fait plus par mot de passe mais via une passphrase.
Il faudra penser à bien stocker la clé privé.
Ici, j'utilise des clé ED25519 mais on peut tout aussi bien utiliser des clé RSA.
L'avantage des clé ED25519, c'est qu'elles sont plus concise.
L'avantage des clé RSA, c'est qu'elles sont plus compatible.
D'un point de vue sécurité, il me semble que les deux sont tout à fait correct. A condition pour les clés RSA d'utiliser une longueur de 4096.
# ED25519
ssh-keygen -t ed25519 -a 256
# ou RSA
ssh-keygen -b 4096
Étant sous windows, je fais cette étape manuellement.
# dans le dossier home
mkdir .ssh
# on y place notre cle
nano .ssh/authorized_keys
# on edit les droits
chmod 700 ~/.ssh -Rf
On va changer le port par défaut, régler le délai des sessions, désactiver l'authentication par mot de passe.
Le fichier de config. /etc/ssh/sshd_config
# edit la config.
sudo nano /etc/ssh/sshd_config
# change le port, nombre entre 49152 et 65535
Port 49655
#active la connexion par cle ssh
PubkeyAuthentication yes
# le timeout - 600 <= 10min
ClientAliveInterval 600
ClientAliveCountMax 0
# désactive la connexion par mot de passe
PasswordAuthentication no
# on redémarre le service
sudo systemctl restart ssh
Encore une fois, on vérifie qu'on arrive bien à se connecter au serveur avant de fermer la connexion initiale.
On va utiliser UFW (Uncomplicated FireWall).
Je vous invite à suivre ces étapes.
Son objectif est de bloquer les IP's qui tentent de pénétrer le serveur.
# installation
sudo apt install fail2ban
#on créer notre fichier de configuration
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# on edit
sudo nano /etc/fail2ban/jail.local
# restart le service
sudo service fail2ban restart
C'est un minimum, ici l'objectif est surtout de protéger contre les attaques par brute force.
Je ne peux que vous conseiller par la suite d'ajouter crowdsec
OVH permet de configurer le Network Firework OVHclound. C'est un par-feu qui permet de bloquer les connexions avant même qu'elles n'atteigne le serveur.
Je vous conseil de lire leur guide: Configurer le Network Firewall - ovhcloud.com
VPS OVH - get started