Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
Bonjour à tous,
Aujourd’hui, on va voir comment sécuriser l’accès ssh à notre serveur Debian 7, car le ssh, c’est quand même un des services les plus critiques de notre serveur.
Dans l’ordre des choses on va :
- Créer un nouvel utilisateur sans les droits root
- Changer le port ssh
- Interdire l’accès en root
- Re-configurer fail2ban pour qu’il surveille le nouveau port
- Installer la double authentification avec google authenticator
Créer un nouvel utilisateur sans les droits root
Connectez vous en root et lancez la commande, remplacez chocobo par votre nom d’utilisateur :
adduser chocobo
Ensuite, ajoutez l’utilisateur au groupe sudo et installer sudo, remplacez chocobo par votre nom d’utilisateur :
adduser chocobo sudo && apt-get install sudo
Changer le port ssh
Maintenant on va éditer la configuration de ssh
nano /etc/ssh/sshd_config
Au début du fichier vous avez la variable port :
Port 22
Remplacez 22 par un autre port, par exemple 14956 :
Port 14956
Ne fermez pas le fichier
Interdire l’accès ssh en root
Maintenant, on va interdire l’accès en ssh pour l’utilisateur root, pas de panique, il faudra simplement passer par votre nouvel utilisateur pour vous connecter en root ensuite 😉
Dans la partie authentication, mettez ces paramètres :
# Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes AllowUsers chocobo
Maintenant, sauvegardez le fichier avec Ctrl+O et redémarrez le service ssh :
service ssh restart
Re-configurer fail2ban pour qu’il surveille le nouveau port
Editez le fichier de configuration de fail2ban :
nano /etc/fail2ban/jail.conf
Et changez le port dans la partie [ssh] :
[ssh] enabled = true port = 14956 filter = sshd logpath = /var/log/auth.log maxretry = 6
Maintenant, sauvegardez le fichier avec Ctrl+O et redémarrez votre serveur :
reboot
Installer la double authentification avec google authenticator
Maintenant, étape optionnelle mais qui rendra votre serveur ssh inviolable, on va installer la double authentification avec google authenticator.
Connectez vous sur votre nouvel utilisateur en ssh et lancez la commande suivante :
sudo apt-get install libqrencode3
Ensuite, téléchargez et installer le packet google authenticator :
cd /tmp wget http://ftp.fr.debian.org/debian/pool/main/g/google-authenticator/libpam-google-authenticator_20130529-2_amd64.deb sudo dpkg -i libpam-google-authenticator*.deb
Maintenant, en étant toujours connecter sur votre nouvel utilisateur, lancez la commande suivante :
google-authenticator
Suivez les instructions et répondez oui à chaque fois
Photographiez le QR code avec votre téléphone, et SURTOUT gardez bien les codes de secours :
Your emergency scratch codes are: 13809037 38309694 54378734 23727466 99489495
Maintenant éditez le fichier de configuration de pam pour ssh et rajoutez cette ligne à la fin :
nano /etc/pam.d/sshd
auth required pam_google_authenticator.so
Et éditez le fichier de configuration du serveur ssh :
nano /etc/ssh/sshd_config
Et mettez la ligne suivante àYES :
ChallengeResponseAuthentication yes
Redémarrez votre serveur :
reboot
Maintenant, lorsque vous allez vous re-connecter il demandera votre code :
login as: root Password: Using keyboard-interactive authentication. Verification code: Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jun 10 14:30:13 2014 root@debian:~#
Maintenant, désinstallez l’application SUDO :
apt-get remove sudo
Et voilà, avec ça votre accès ssh n’a rien a craindre 😉
bonsoir,
un peux novice dans cette branche 🙂 je configure mon vps-ovh sous debian 7
je ne comprend pas trop l’intérêt de sudo si on le désinstalle ensuite et surtout si l’on peut a tout moment faire un su?
Hello,
Désinstaller sudo permets de laisser les droits root à la session root uniquement 😉
Salut,
C’est quoi l’intérêt du google_authenticator comparé à une paire de clés ?
Salut,
L’intérêt dépends de ta situation. C’est peut-être plus facile de te voler un fichier sur ton pc ou sur un support externe que ton téléphone tu vois ?
Mais personnellement j’utilise des clés maintenant sur ma nouvelle infra 😉