SSH signifie Secure SHell. C'est un protocole qui permet de faire des connexions sécurisées (i.e. cryptées) entre un serveur et un client SSH. Nous allons utiliser le programme OpenSSH, qui est la version libre du client et du serveur SSH.
avoir un serveur SSH à jour au niveau de la sécurité, ce qui doit être le cas si vous faites consciencieusement les mises à jour de sécurité en suivant la procédure Debian, comme expliqué au chapitre Le réseau et la sécurité ;
que les mots de passes de TOUS les utilisateurs soient suffisamment complexes pour résister à une attaque en force brute ;
surveiller les connexions en lisant régulièrement le fichier de log /var/log/auth.log.
Par exemple, la phrase "Linux, moi j'y comprends rien de rien !" donne le mot de passe Lmjycr2r!
Les mots de passes des utilisateurs sont stockés dans le fichier /etc/shadow. Seul l'utilisateur root peut lire ce fichier. Pour tester la complexité des mots de passes, le root peut donc installer le programme john et le lancer sur le fichier /etc/shadow :
# apt-get install john # john /etc/shadow |
Quand john a trouvé un mot de passe, il l'affiche avec le login associée.
Attention, john utilisera le processeur à 100 % ! Il est donc conseillé de lui donner un priorité faible (commande nice ou renice) si la machine doit être utilisée pendant ce temps. Plus le nombre d'utilisateurs est grand, plus il faudra laisser tourner john longtemps pour que le test soit significatif.
Pour plus d'informations sur la cryptographie, je vous conseille la lecture du dossier consacré à ce sujet par le magazine pour la science dans son hors-série de Juillet-Octobre 2002.
Le client et le serveur SSH sont dans le même package ssh. Ce package est installé dès la première utilisation de dselect. Si vous avez bien respecté nos consignes lors de la procédure d'installation (chapitre Les packages) vous n'avez pas activé le serveur SSH.
Maintenant que votre système est à jour niveau sécurité, vous pouvez activer le serveur SSH, si vous le souhaitez. Pour cela, supprimez le fichier /etc/ssh/sshd_not_to_be_run et lancer SSH :
# rm /etc/ssh/sshd_not_to_be_run # /etc/init.d/ssh start Starting OpenBSD Secure Shell server: sshd. |
Nous allons vous commenter les lignes les plus importantes de ce fichier de configuration :
Port 22 |
Protocol 2 |
Protocol 2,1 |
PermitRootLogin yes |
X11Forwarding yes |
Signifie que vous allez pouvoir travailler en export display par SSH. Ce sera expliqué plus tard, dans la troisième partie de cette formation Faire de l'export display.
Si vous avez modifié le fichier de configuration du serveur, il faut lui dire de relire son fichier de configuration :
# /etc/init.d/ssh reload Reloading OpenBSD Secure Shell server's configuration. |
C'est la méthode la plus simple. Depuis la machine cliente, tapez :
% ssh login@nom_DNS_du_serveur_SSH |
Pour générer un couple de clés DSA, tapez :
% ssh-keygen -t dsa |
![]() | Vous pouvez à tout moment changer la pass phrase qui protège votre clé privée avec la commande ssh-keygen -p. |
% ssh-copy-id -i ~/.ssh/id_dsa.pub login@nom_DNS_du_serveur |
Le transfert de fichiers par SSH est possible de deux façons :
avec scp (comme Ssh CoPy), qui s'utilise la même manière que la commande cp ;
avec yafc, dont je vous avais déjà parlé au chapitre Le Web et le FTP en console pour les transferts de fichiers par FTP.
Encore une fois, vous pouvez utiliser la méthode d'autentification par mot de passe ou par clés, l'utilisation est la même.
Pour illustrer la syntaxe, je vais donner quelques exemples :
% scp test1.txt toto@ordi1.exemple.org: |
% scp toto@ordi2.exemple.org:test2.txt . |
% scp toto@ordi2.exemple.org:/usr/local/*.txt test-scp |
% scp -r test-scp toto@ordi1.exemple.org:incoming |
Je vous avais déjà parlé d'utilisation de yafc comme client FTP dans la section Le FTP en console. Mais ce que je ne vous avais pas dit, c'est que yafc sait aussi transférer des fichiers par SSH !
Pour l'installation et la configuration de yafc, reportez-vous à la section Le FTP en console.
Pour se connecter par SSH en utilisateur toto sur le serveur ordi1.exemple.org :
% yafc ssh://toto@ordi1.exemple.org |
Ensuite, les commandes sont exactement les mêmes que lors de l'utilisation de yafc comme client FTP !
gFTP, dont l'installation est expliquée à la fin du chapitre Le Web, le mail et les news en mode graphique fait également office de client SFTP.
Lançez gFTP avec la commande gftp. Ensuite, allez dans le menu FTP / Options, sélectionnez l'onglet SSH, mettez le paramètre Chemin sftp-server SSH2 à /usr/lib/ et cliquez sur Enregistrez.
Pour vous connecter, entrez le nom DNS du serveur ainsi que le login et le mot de passe, sélectionnez SSH2 à la place de FTP dans la liste déroulante et tapez Entrée.
Dans une console, ouvrez un screen avec ssh-agent en tâche de fond :
% ssh-agent screen |
Puis donnez votre clé à l'agent :
% ssh-add |
Démarrez le serveur graphique avec la commande :
% ssh-agent startx |
Puis ouvrez un xterm et tapez :
% ssh-add |
% ssh -L 2012:serveur.exemple.org:80 toto@serveur.exemple.org |
% w3m http://localhost:2012 |
Le client Telnet se trouve dans le package telnet. Ce package est installé par défaut.
Le serveur Telnet se trouve dans le package telnetd. Il n'y a aucune configuration à faire.
Pour se connecter à un serveur Telnet, tapez :
% telnet nom_DNS_du_serveur_telnet |
et ensuite rentrez votre login et votre mot de passe quand il vous le demande.
Précédent | Sommaire | Suivant |
Debian GNU/Linux en réseau | Niveau supérieur | Faire de l'export display |