Ssh
Ssh (secure shell) est un programme et un protocole qui permet de se connecter à une machine distante.
Ssh impose un échange de clés de chiffrement en début de connexion; L'utilisation de ssh permet de crypter toutes les données échangées (avec l'algorythme RSA) entre le client et le serveur, rendant ainsi impossible tout "sniff" des paquets.
Avec Telnet et rlogin toutes les données qui transitent entre le client et le serveur sont en clair. N'utilisez donc pas Telnet et/ou rlogin et désinstallez les!
Il est préférable d'éviter de se connecter au système en utilisant ssh en tant que root et préférer l'utilisation de méthodes alternatives pour devenir root tel su ou sudo.
Installation
Installation du client Normalement, le client est installé par défaut, sinon il suffit de saisir en root
aptitude install openssh-client
Installation serveur La partie serveur permet à des hôtes distants de se connecter à votre système.
aptitude install openssh-server
fichier de configuration
Le fichier /etc/ssh/sshd_config doit être modifié comme suit pour accroître la sécurité.
Ne faîtes écouter ssh que sur une interface donnée:
ListenAddress 192.168.0.1
Ne pas autoriser de connexion en tant que root. Si quelqu'un veut devenir root via ssh, deux logins sont maintenant nécessaires et le mot de passe root ne peut être attaqué par la force brute via SSH.
PermitRootLogin no
Changer le port d'écoute, ainsi l'intrus ne peut être complètement sûr de l'exécution d'un démon sshd (c'est de la sécurité par l'obscurité).
Port 666
ou
ListenAddress 192.168.0.1:666
Les mots de passe vides sont un affront au système de sécurité.
PermitEmptyPasswords no
N'autoriser que certains utilisateurs à avoir accès via ssh à cette machine. Pour encore plus de sécurité, user@host peut également être utilisé pour n'autoriser l'accès qu'à un utilisateur donné depuis un hôte donné.
AllowUsers lol laurent@sidlol
Autorise seulement certains membres de groupes à avoir accès via ssh à cette machine. AllowGroups et AllowUsers ont des directives équivalentes pour interdire l'accès à la machine. Sans surprise elles s'appellent « DenyUsers » et « DenyGroups ».
AllowGroups wheel admin
Sécurisation par clef Il vous appartient ici de décider ce que vous voulez faire.
Mais il est plus sûr de n'autoriser l'accès à la machine qu'aux utilisateurs en possession de cléfs ssh placées dans le fichier ~/.ssh/authorized_keys. Si c'est ce que vous voulez, positionnez cette option à "no".
PasswordAuthentication yes
Utilisation de clefs et raccourcis ssh
En général, désactiver toute forme d'autorisation dont vous n'avez pas réellement besoin (RhostsRSAAuthentication, HostbasedAuthentication, KerberosAuthentication, ...)
RhostsRSAAuthentication no HostbasedAuthentication no KerberosAuthentication no
Désactiver le protocole version 1, car il a des défauts de conception qui facilite le crack de mots de passe. Pour plus d'informations, lisez un article concernant les problèmes du protocole ssh ou le bulletin d'alerte Xforce.
Protocole 2
Ajoutez une bannière (elle sera récupérée du fichier) pour les utilisateurs se connectant au serveur ssh. Dans certains pays, envoyer un avertissement avant l'accès à un système est obligatoire pour avoir une protection légale.
La bannière par défaut se trouve dans /etc/modt
Vous pouvez aussi y mettre ce que vous voulez...
_,met$$$$$gg.
,g$$$$$$$$$$$$$$$P.
,g$$P"" """Y$$.".
,$$P' `$$$.
',$$P ,ggs. `$$b:
`d$$' ,$P"' . $$$
$$P d$' , $$P
$$: $$. - ,d$$'
$$; Y$b._ _,d$P' _, _, ,'`.
Y$$. `.`"Y$$$$P"' `$$' `$$' `. ,'
`$$b "-.__ $$ $$ `'
`Y$$b $$ $$ _, _
`Y$$. ,d$$$g$$ ,d$$$b. $$,d$$$b.`$$' g$$$$$b.`$$,d$$b.
`$$b. ,$P' `$$ ,$P' `Y$. $$$' `$$ $$ "' `$$ $$$' `$$
`Y$$b. $$' $$ $$' `$$ $$' $$ $$ ,ggggg$$ $$' $$
`"Y$b._ $$ $$ $$ggggg$$ $$ $$ $$ ,$P" $$ $$ $$
`"""" $$ ,$$ $$. $$ ,$P $$ $$' ,$$ $$ $$
`$g. ,$$$ `$$._ _., $$ _,g$P' $$ `$b. ,$$$ $$ $$
`Y$$P'$$. `Y$$$$P',$$$$P"' ,$$. `Y$$P'$$.$$. ,$$.
A des fins de simple contrôle il est fortement conseillé de laisser l’option suivante sur "yes"
Elle vous permet de vérifier très simplement le dernier "login"
PrintLastLog yes
Restriction par pam
Vous pouvez également restreindre l'accès au serveur ssh en utilisant pam_listfile ou pam_wheel dans le fichier de contrôle PAM.
Par exemple, vous pourriez bloquer tous les utilisateurs qui ne sont pas dans /etc/loginusers en ajoutant cette ligne à /etc/pam.d/ssh :
auth required pam_listfile.so sense=allow onerr=fail item=user file=/etc/loginusers
Liens externes
- (fr) Site Web d'OpenSSH
- (fr) Sécurisation de ssh
Lol 3 août 2011 à 03:01 (CDT)