| Qui est en ligne ? |
| Il y a : 25 utilisateurs en ligne, consultez le détail |
Forum » Documentation Linux » SFTP : Transfert de fichiers sécurisé |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 01-05-2005 à 16:28:59 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 04-07-2003 Nombre de messages : 180 |
Le sftp est une amélioration du ftp qui fonctionne au-dessus d'un tunnel ssh. Pour que ça fonctionne il faut que le PC distant ait installé sftp-server et que le PC local dispose de la commande sftp. Ce qu'il faut savoir c'est que quand vous lancez une connexion sftp, une connexion ssh est initiée sur le serveur et c'est elle qui lance sftp-server. De plus, comme sftp-server est lancé depuis ssh, aucun privilège root n'est requis. Notez également qu'en sftp, toutes les commandes habituelles de ftp sont acceptées. 1. Installation des logiciels nécessaires1.1 Installation d'OpenSSHSur la machine cliente et sur la machine serveur installez SSH comme indiqué ICI 1.2 Installation de rsshrssh est un shell restreint qui s'utilise avec OpenSSH et permet de faire uniquement du scp ou du sftp.
Téléchargez les sources et installez-les comme suite :
$ tar -xzvf /où_est/rssh-xxx.tar.gz $ cd rssh-xxx/ $ ./configure --prefix=/usr --sysconfdir=/etc $ make $ su # make 2. Configuration du serveur2.1 Fichier de configurationEditez le fichier /etc/shells et assurez-vous d'avoir la ligne suivante :
/usr/bin/rssh Nettoyez votre fichier /etc/rssh.conf comme suite :
# cd /etc/ # mv rssh.conf rssh.conf.old # sed /^#/d rssh.conf.old > rssh.conf Maintenant éditez-le avec votre éditeur favori et assurez-vous qu'il ressemble à ceci : logfacility = LOG_USER allowsftp umask = 022 2.2 Chroot de l'environnementCette partie concerne les personnes qui souhaitent chrooter leurs utilisateurs. Si ce n'est pas votre cas, passez au 2.3. Le chroot est une technique qui permet de déplacer la racine du système pour enfermer l'utilisateur dans un dossier. Dans notre cas ce sera "/home". L'avantage de cette technique est que toutes les actions des utilisateurs du sftp n'auront d'impact que sur cet univers clos. Mais pour que ça fonctionne il faut que tout ce dont auront besoin les utilisateurs soit accessible dans cet univers. Préparons maintenant le chroot en copiant les exécutables dont auront besoin les utilisateurs du sftp dans le dossier "/home".
# cd /home # mkdir -p usr/bin # cp /usr/bin/sftp usr/bin # cp /usr/bin/scp usr/bin # cp /usr/bin/rssh usr/bin # mkdir -p usr/libexec # cp /usr/libexec/rssh_chroot_helper usr/libexec # cp /usr/libexec/sftp-server usr/libexec # mkdir lib # mkdir usr/lib Les exécutables peuvent ne pas être à ces endroits chez vous, alors adaptez ! Déterminons maintenant les dépendances de sftp :
# ldd /usr/bin/sftp Vous devrez avoir quelque chose comme ceci (il peut y avoir des variations) :
linux-gate.so.1 => (0xffffe000) libresolv.so.2 => /lib/libresolv.so.2 (0x4002d000) libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x40041000) libutil.so.1 => /lib/libutil.so.1 (0x40140000) libz.so.1 => /usr/lib/libz.so.1 (0x40144000) libnsl.so.1 => /lib/libnsl.so.1 (0x40155000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4016b000) libc.so.6 => /lib/libc.so.6 (0x40199000) libdl.so.2 => /lib/libdl.so.2 (0x402b7000) /lib/ld-linux.so.2 (0x40000000) Vous devez copier les dépendances qui sont dans /lib dans /home/lib et celles de /usr/lib dans /home/usr/lib en respectant l'arborescence. Un exemple :
# cd /home # cp /lib/libresolv.so.2 lib/ Quand vous aurez, fini vous devrez taper :
# ldd /usr/bin/rssh # ldd /usr/libexec/rssh_chroot_helper # ldd /usr/libexec/sftp-servers # ldd /usr/bin/scp et copier toutes les dépendances correspondantes dans /home, comme vous l'avez fait pour /usr/bin/sftp. Finissez en ajoutant la ligne : chrootpath="/home" à la fin du fichier /etc/rssh.conf. 2.3 Gestion des utilisateursCréez maintenant les utilisateurs autorisés à faire du sftp et autorisés à ne faire que du sftp. Pour fixer les idées, je vais créer l'utilisateur toto et lui attribuer comme dossier personnel /home/toto :
# adduser --home /home/toto --shell /usr/bin/rssh toto Vérifier que l'utilisateur toto a bien rssh comme shell :
# su - toto Vous devriez avoir quelque chose comme ça :
This account is restricted to sftp only. If you believe this is in error, please contact your system administrator 3. Connexion au serveur sftpVous pouvez tester en local :
$ sftp toto@localhost Après avoir entrer le mot de passe, vous devriez obtenir ceci :
sftp> Et tester en réseau :
$ sftp toto@IP_du_Serveur Si vous obtenez l'invite sftp> , c'est gagné ! sinon vérifiez que vous avez bien copié toutes les dépendances dans l'environnement de chroot. Si vous ne souhaitez plus utiliser l'environnement chrooté, il suffit d'enlever la ligne : chrootpath="/home" du fichier /etc/rssh.conf. 4. Utilisation de sftpPour vous connecter, à un PC distant, il suffit de taper :
$ sftp toto@IP_du_Serveur Une fois connecté :
Quelques commandes utiles :
Attention : Pour ceux qui ont une allergie chronique au mode console et qui frise l'embolie cérébrale quand ils entendent les mots lignes de commandes, il existe des logiciels avec GUI qui gèrent le sftp, par exemple GFTP ou LFTP alors plus d'excuses. --Message édité par TrustRobot le 01-05-2005 à 16:28:59-- |
| Page : [1] |
Forum » Documentation Linux » SFTP : Transfert de fichiers sécurisé |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages
