Protocole SSH
Installation d'OpenSSH
Sur une Debian GNU/Linux : aptitude install ssh
...
Quelle que soit la distribution Linux utilisé, le fichier de configuration se trouve dans le répertoire /etc/ssh et se nomme sshd_config.
Utilisation de SSH
SSH est très facile à utiliser :
- Connexion à distance vers le serveur
ssh server.domaine.com
oussh adresse_ip
est la méthode de base.Dans ce cas, si la connexion se fait, il vous sera demandé votre nom d'utilisateur sur ce serveur, et le mot de passe correspondant.
ssh votre_nom_user@server.domaine.com
oussh -l votre_nom_user server.domaine.com
est la manière de spécifier explicitement votre nom d'utilisateur.Dans ce cas, dès la connexion établie, il ne vous sera demandé plus que le mot de passe correspondant à votre identifiant utilisateur.
- Exécution de commandes à distance
Il suffit d'établir une connexion avec la commande à lancer :
ssh votre_nom_user@server.domaine.com date
Précisemment, cette commande interroge le serveur pour connaître ses date et heure.
- Copie de fichier à distance
C'est la commande
scp
, tout autant sécurisée, qui le permet aussi simplement.scp monfichier votre_nom_user@server.domaine.com:/~/
enverra le fichier dans votre répertoire personnel sur le serveur en question.scp votre_nom_user@server.domaine.com:/~/monfichier monfichier
ira chercher sur le serveur votre fichier et le déposera dans votre répertoire en cours.Pour faire une copie récursive d'un répertoire :
ssh -r /votre_rep votre_nom_user@server.domaine.com:/~/
- Transfert ftp
Le transfert de fichiers par ftp, de manière sécurisé est aussi possible...
Utilisez la commande suivante :
sftp votre_nom_user@server.domaine.com
Certains clients ftp graphique acceptent ce mode de connexion, il suffit de choisir le mode de connexion sftp over SSH2.
Authentification sécurisé par SSH
Configuration du service
OpenSSH permet des méthodes diverses d'authentification, et ce en fonction de la politique de sécurité privilégiée.
-1- Une des premières choses à faire est d'interdire l'accès au compte root, afin de ne pas "tenter le diable" :
Il faut donc modifier la ligne PermitRootLogin en lui donnant la valeur no.
-2- Forcer la sécurité sur la deuxième version du protocole est à envisager sérieusement ;
par la modification de la ligne Protocol en lui donnant la valeur 2 (version de protocole plus sécurisée)
-3- Créer l'authentification par mot de passe, et interdire les mots de passe vides.
Donc s'assurer que la ligne PasswdAuthentication soit à yes et que PermitEmptypasswords soit à no.
-4- Encourager l'authentification par clé publique est à promouvoir ; car une clé appartient à un utilisateur et un seul...
Cela signifie positionner la ligne PubkeyAuthentication à yes et supprimer le symbole dièze devant la ligne AutorizedKeysFile.
-5- Pour finir par supprimer les protocoles moins sécurisés :
ce qui signifie d'imposer aux lignes RSAAuthentication, RhostsAuthentication,
RhostsRSAAuthentication et HostbasedAuthentication la valeur no
et d'ignorer IgnoreRhosts par yes, si elles sont présentes dans le fichier !
-6- Pour information, il est possible de manière rudimentaire et exclusive de spécifier les autorisations uniquement à certains utilisateurs ou à un groupe d'utilisateurs.
On se servira pour cela des directives AllowUsers et AllowGroups que l'on ajoutera au fichier de configuration.
Une fois le fichier sshd_config modifié, pensez donc à (re)démarrer le service :
/etc/init.d/sshd restart
ou service ssh restart
Usage de clé publique
L'usage de clé publique ayant été notifié dans le fichier de configuration et aux utilisateurs,
il est possible de les créer par la commande suivante ssh-keygen
.
ssh-keygen -t rsa -b 1024
ou ssh-keygen -t dsa -b 1024
, respectivement pour créer une clé selon la technique de chiffrement RSA ou DSA, en 1024 bits.
Lors de la génération de celle-ci, il vous sera demandé de taper une passphrase que vous choisirez consciencieusement.
Dans un cas, comme dans l'autre, cela crée une clé privée et une clé publique dans votre répertoire personnel /$HOME/.ssh/ ;
pour les clés RSA, ce sont les fichiers id_rsa et id_rsa.pub, et réciproquement pour les clés DSA id_dsa et id_dsa.pub.
Veillez à ne jamais fournir la clé privée, et ce sous aucun prêtexte. Votre sécurité en dépend fortement !
Une fois, vos clés générées, copiez votre clé publique sur le serveur :
scp -p .ssh/id_rsa.pub votre_nom_user@server.domaine.com:/~/.ssh/authorized_keys
Ensuite on va garder en mémoire la passphrase dans notre ordinateur afin de ne pas être obligé de la taper à chaque fois :
eval `ssh-agent`
ssh-add
Pour la dernière fois, il va vous être demandé de taper votre passphrase, faites-le.
Lors de vos prochaines connexions en SSH sur le serveur, il ne vous restera plus ... qu'à travailler !
Création de Tunnel
Pour créer un tunnel de connexion ssh, qui permette d'encapsuler d'autres protocoles, il vous faut vous l'eacute;crire ainsi :
ssh -L numero_port_encapsulé:adresse_ip_local:numero_port_routé adresse_ip_server
L'option -L indique l'exécution locale ; l'option -R indique un 'remote'.
Tunnel X
Pour créer un tunnel graphique X-Windows, il faut d'abord vérifier que l'option X11 Forwarding soit à yes dans le fichier /etc/ssh/sshd_config.
Cela étant fait, il ne vous reste plus qu'à vous connecter à votre hote distant :
ssh -X nom_machine.nom_domaine.tld
Il est possible de lancer en même temps une application :
ssh -X nom_machine.nom_domaine.tld nom_logiciel &
<<| Page : Linux : securite : ssh : |