« Ssh » : différence entre les versions
m (→Restriction par pam : X11Forwarding) |
mAucun résumé des modifications |
||
Ligne 136 : | Ligne 136 : | ||
[[Utilisateur:Lol|Lol]] 3 août 2011 à 03:01 (CDT) | [[Utilisateur:Lol|Lol]] 3 août 2011 à 03:01 (CDT) | ||
[[Catégorie:Logiciels]] | [[Catégorie:Logiciels]] | ||
[[Catégorie:Serveurs]] |
Version du 28 octobre 2012 à 05:02
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
Faire du déport d'affichage
Il s'agit ici d'activer l'option X11Forwarding qui permet d'éxecuter à distance des applications graphiques et de les afficher localement. Assurez-vous que l'option ci-dessous est bien activée:
X11Forwarding yes
Le déport d'affichage nécessite une bonne connexion réseau (en effet le serveur envoie des images du serveur vers le client).
Le client se connecte avec l'option -X
$ ssh -X utilisateur@serveur
Cette option est activée par défaut, si vous n'en avez pas besoin (et pour des raisons de sécurité) pensez à la désactiver
X11Forwarding no
Liens externes
- (fr) Site Web d'OpenSSH
- (fr) Sécurisation de ssh
Lol 3 août 2011 à 03:01 (CDT)