Secure Shell (ssh)

 

Il s'agit d'une application remplaçant rlogin ou telnet. C'est aussi un protocole de communication sécurisé. Son intérêt étant de crypter les informations entre le serveur et le client sur lequel sont saisies les requètes.

Je parlerai ici surtout de la partie serveur de ssh. Un service est lancé pour permettre la communication réseau: sshd

 

Installation du paquet SSH

Pour linux, il existe OpenSSH (projet géré par l'equipe OpenBSD).

 

ssh existe côté serveur qui va permettre d'accepter les connexions de type SSH.

Sous Mageia:

urpmi openssh-server

Sous debian et dérivés

apt-get install ssh

Pour ubuntu

apt-get install openssh-server

 

Pour lancer le serveur:

/etc/rc.d/init.d/sshd start

systemctl enable sshd.service (pour arrêter au démarrage: systemctl disable sshd.service)

service start ssh

 

Il existe aussi la partie cliente qui va permettre de se connecter à une machine distante.

urpmi openssh-clients

ou

apt-get install openssh-client

La commande sera dans ce cas ssh adresse ou ssh adresse -l utilisateur.

Sous Windows, l'application putty permet de faire une connexion ssh. Il existe aussi mobaxterm pour les connexions XWindow

 

 

Fichier de configuration

Il existe un fichier de configuration pour le ssh. Il se trouve généralement sous /etc/ssh/sshd_config

Attentionsshd_config et non ssh_config qui provoquera des erreurs Bad configuration option:...

Ici ce serait Bad configuration option: PermitRootLogin

noteNe pas oublier de relancer le service si vous modifier le fichier de configuration:

Vérifiez aussi le syslog pour valider vos modifications.

 

service ssh restart (Debian, ubuntu, raspbian)

Sous Mandriva/Mageia:

/etc/init.d/ssh restart

Sous Debian

service ssh restart

 

Interdire la connexion à distance ssh en tant qu'utilisateur root

Si le service sshd (openssh) est activé pour permettre une connexion à distance sécurisée, il est primordiale d'interdire les connexions à distance en tant qu'utilisateur root. Ceci afin de limiter les risques qu'un hacker ne prenne le contrôle de votre machine Unix via ssh (brute force pour trouver le mot de passe).

Pour cela, il suffit d'ajouter dans le fichier /etc/ssh/sshd_config, la ligne suivante:

PermitRootLogin no

AttentionL'utilisation des commandes su ou sudo reste possible pour les utilisateurs autorisés à se connecter en ssh.

Vous pouvez compléter ce paramétrage avec DenyUsers et DenyGroups.

Autoriser la connexion à distance ssh en tant qu'utilisateur root

Il suffit d'ajouter (ou de décommanter la ligne commençant par #)

PermitRootLogin prohibit-password
puis, pour prendre en compte la modification: sudo service ssh restart

(Voir Interdire la connexion à distance ssh en tant qu'utilisateur root ci-dessus).

 

Limiter la connexion à distance à certains utilisateurs

Nous avons déjà vu qu'il était possible d'interdire certains utilisateurs de se logger à distance ou pas.

Sans être aussi radical, il sera possible de préciser au niveau ssh les utilisateurs autorisés à utiliser une connexion à distance.

AllowUsers permet de lister les utilisateurs autorisés, AllowGroups pour les groupes utilisés dans le fichier /etc/ssh/sshd_config

Il suffit d'indiquer la liste des utilisateurs/groupes avec espace comme séparateur.

AllowUsers toto titi tata

 

De même, DenyUsers ou DenyGroups pour indiquer la liste des utilisateurs/group interdit.

 

Exemple:

DenyUsers root
DenyGroups root

 

noteIl sera possible d'utiliser * pour remplacer une partie ou la totalité d'un mot.

noteUn utilisateur peut appartenir à plusieurs groupes (cf/ /etc/group). Si un utilisateur fait parti de l'un des groupes déclarés sous DenyGroups, alors l'utilisateur en question ne pourra tout simplement pas se connecter. /var/log/auth.log peut vous aider à résoudre des problèmes de connexions qui vous semblent inexpliqués.

 

Annexes

Voir sécurité pour le ssh sous Linux.