matt@martine2.difi.unipi.it
Copyright © 2001 par Matteo Dell'Omodarme
Concentrons-nous sur sftp et scp.
Le premier (sftp - en anglais, protocole de transfert de fichier sécurisé) est un client à la mode ftp utilisé pour transférer des fichiers à travers le réseau. Il n'utilise pas de daemon FTP (ftpd ou wu-ftpd) pour les connexions, ce qui permet une amélioration significative de la sécurité du système. En fait, en surveillant les fichiers journaux de nos systèmes, nous avons noté que 80% des attaques du mois dernier étaient lancées contre le daemon ftpd. L'utilisation de sftp empêche tous ces essais puisqu'elle permet d'arrêter le daemon wu-ftpd potentiellement dangereux.
La seconde (scp - en anglais, copie sécurisée) est employée pour copier des fichiers à travers le réseau de façon sécurisée. C'est un remplacement pour la peu sûre commande rcp.
sftp et scp n'exigent aucun daemon dédié puisque les deux programmes sont liés au serveur sshd. Afin d'utiliser sftp et scp vous devez insérer la ligne suivante dans le fichier de configuration /etc/ssh2/sshd2_config :
subsystem-sftp sftp-server |
sftp utilise SSH2 pour ses connexions, le transport du fichier bénéficiant ainsi de la meilleure sécurité possible. Il y a deux avantages à utiliser sftp au lieu de ftp :
Les mots de passe ne sont jamais transférés en clair, empêchant n'importe quelle attaque de type écoute passive.
Les données sont chiffrées pendant le transfert, rendant difficile l'espionnage ou la modification de la connexion.
sftp mom_nom@serveur1 |
Quand sftp2 est prêt à accepter des commandes utilisateur, il envoie une invite sftp>. Vous trouverez dans la page de manuel de sftp une liste complète des commandes que l'utilisateur peut utiliser, avec parmi elles :
quit | Quitte l'application |
cd {répertoire} | Change le répertoire de travail courant distant |
lcd {répertoire} | Change le répertoire de travail courant local |
ls [-R] [-l] fichier... | Renvoie la liste des fichiers disponibles sur le serveur. Si l'argument est un répertoire, son contenu est renvoyé. Quand l'option -R est spécifiée, l'arborescence est renvoyée récursivement (par défaut, les sous-répertoires des répertoires en argument ne sont pas visités.) Quand l'option -l est indiquée, les permissions, propriétaires, tailles et heures de modifications de fichier sont aussi montrées. Quand aucun argument n'est spécifié, le contenu du répertoire courant est renvoyé. Les options -R et -l sont mutuellement incompatibles. |
lls [-R] [-l] fichier... | idem ls, mais sur les fichiers et répertoires locaux. |
get fichier... | Transfère les fichiers indiqués spécifiés du serveur vers le client. Les répertoires sont récursivement copiés avec leur contenu. |
put fichier... | Transfère les fichiers indiqués spécifiés du client vers le serveur. Les répertoires sont récursivement copiés avec leur contenu. |
mkdir répertoire... | Essaye de créer le répertoire dont le nom est indiqué en argument |
rmdir répertoire... | Essaye de détruire le répertoire dont le nom est indiqué en argument |
Puisque sftp utilise des techniques de chiffrement, il existe un inconvénent : la connexion est plus lente (d'un facteur de 2 ou 3 au vu de mon expérience), mais ce point est d'un intérêt marginal considérant les grands avantages de sécurité apportés.
Dans un essai conduit sur notre réseau local, un renifleur de réseau pouvait récupérer une moyenne de 4 mots de passe à l'heure sur les connexions FTP. La mise en oeuvre de sftp en tant que protocole standard pour le transfert de fichier à travers le réseau a pu éliminer ce problème de sécurité.
scp2 (copie sécurisée) est utilisé pour copier des fichiers à travers le réseau de manière sécurisée. Il utilise SSH2 pour le transfert des données : il utilise la même authentification et fournit la même sécurité que SSH2.
C'est probablement la manière la plus simple de copier un fichier sur une machine à distance. Supposons que vous voulez copier le fichier nom_fichier contenu dans le répertoire rep_local au répertoire rep_distant de votre compte mon_nom du serveur serveur1. En utilisant scp, vous pouvez taper la ligne de commande :
scp rep_local/nom_fichier mon_nom@serveur1:rep_distant |
La commande :
scp rep_local/* mon_nom@serveur1:rep_distant |
La commande:
scp mon_nom@serveur1:rep_distant/nom_fichier . |
scp supporte bon nombre d'options et permet des copies entre deux systèmes distants comme dans l'exemple suivant :
scp mon_nom@serveur1:rep_distant/nom_fichier mon_nom@serveur2:autre_rep |
Voyez la page de manuel pour une présentation complète.
Évidemment, en utilisant scp, vous devez connaître l'arborescence exacte des répertoires de la machine distante, si bien que dans la pratique sftp est souvent préféré[1].
[1] | NdT : disons plutôt que scp sera utilisé pour lancer des transferts programmés avec cron, par exemple, et que sftp sera utilisé en mode interactif. |
Suivant | ||
Gestion des clés de SSH |