« SFTP & RSSH : Créer un serveur de fichiers sécurisé » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
mAucun résumé des modifications
Ligne 49 : Ligne 49 :


On télécharge le fichier mkdep, puis on lui attribue le droit d'exécution :
On télécharge le fichier mkdep, puis on lui attribue le droit d'exécution :
<div style="script">$ wget http://jeannedarc001.free.fr/files/mkdep<br>$ chmod +r mkdep</div>
<div class="code">$ wget <nowiki>http://jeannedarc001.free.fr/files/mkdep</nowiki><br>$ chmod +x mkdep</div>
''Ce script provient de cette [http://www.genco.gen.tc/gentoo_chroot_apache2.html page]. J'ai modifié le script pour le rendre plus accessible en ligne de commande''
''Ce script provient de cette [http://www.genco.gen.tc/gentoo_chroot_apache2.html page]. J'ai modifié le script pour le rendre plus accessible en ligne de commande.''<br><br>
mkdep permet de copier automatiquement un fichier donné ainsi que ses librairies dans le dossier chrooté cible :
<code multi> ./mkdep <nowiki><fichier à copier> <dossier chrooté></nowiki></code>

Version du 17 mai 2007 à 12:04

Le SFTP permet de transfèrer des fichiers par une connexion sécurisée utilisant le protocole SSH. SFTP peut effectuer les mêmes opérations que FTP. Il est important de noter que le SFTP n'est pas une simple connexion FTP passant par un tunnel SSH. 2 commandes sont utilisées : sftp du côté client, et sftp-server du côté du serveur. RSSH est un shell qui va faciliter et sécuriser d'avantage l'utilisation du SFTP.


Installation des logiciels

Installation de OpenSSH

OpenSSH est installé nativement sur les principales distributions Linux. Il doit être installé sur la machine cliente et serveur. Si vous n'avez aucune idée de ce qu'est le SSH, lisez préalablement cet article : Reseau-secu-ssh. Si OpenSSH n'est pas installé sur votre ordinateur, lisez cet article : SSH2 Rapellons que OpenSSH embarque sftp-server (commande serveur) et sftp (commande cliente).

Installation de RSSH

Rssh est un shell restreint qui va sécuriser et faciliter l'utilisation du SFTP. Grâce à RSSH, l'utilisateur distant pourra uniquement échanger, supprimer, modifier des fichiers : il ne pourra executer de commandes à distance, susceptibles d'exploiter des failles de sécurité.

  • Sur Mandriva :
    # urpmi rssh
  • Sur Debian :
    # apt-get install rssh

Pour les autres, téléchargez les sources disponibles ici pour compilez-les :

$ tar -fvzx rssh-xxx.tar.gz
$ cd rssh-xxx
$ ./configure --orefix=/usr --sysconfdir=/etc
$ make
$ su
# make install


Configuration du serveur

Configuration de rssh

Rssh est un shell (restreint). Il faut donc s'assurer qu'il soit présent dans le fichier /etc/shells :

$ cat /etc/shells

Si il n'est pas présent, ajouter la ligne suivante au fichier à l'aide de votre éditeur de texte favori :
/usr/bin/rssh Il faut maintenant éditer le fichier de configuration de rssh :

On déplace le fichier de configuration présent, puis on en créé un vide :

# mv /etc/rssh.conf /etc/rssh.conf.old
# touch /etc/rssh.conf

On édite le nouveau fichier /etc/rssh.conf en le remplissant comme ceci : logfacility = LOG_USER allowsftp umask = 022 Maintenant, le shell rssh se limitera à l'utilisation du sftp.


Chroot de la connexion SFTP

Cette partie s'adresse à ceux qui veulent chrooté la connexion SFTP. Pour les autres, passez directement à l'étape suivante. Le Chroot permettra ici de restreindre l'accès d'un utilisateur (pour en savoir plus, lisez le préambule de l'article Admin-admin env-chroot). Par exemple, on décide de chrooter un utilisateur dans /home : cet utilisateur verra /home comme son répertoire racine, et ne pourra aller au-delà. L'inconvénient de cette manière, c'est que tout les fichiers nécessaires doivent être inclus dans le dossier chrooté.

Préparation du dossier chrooté

Ici, on chrootera l'utilisateur dans le répertoire /home. Si vous vous êtes déjà familiariser avec le chroot, vous savez qu'il faut non seulement copier les executables nécessaires, mais en plus les librairies qui correspondent, ce qui devient un travail fastidieux ... . Voici les executables à copier : sftp, scp, rssh, rssh_root_helper, sftp-server. Ca fait beaucoup ... et pour vous faire gagner du temps, nous allons utiliser un script qui nous permettra d'automatiser la tâche ! Placez-vous dans le répertoire /home.

On télécharge le fichier mkdep, puis on lui attribue le droit d'exécution :

$ wget http://jeannedarc001.free.fr/files/mkdep
$ chmod +x mkdep

Ce script provient de cette page. J'ai modifié le script pour le rendre plus accessible en ligne de commande.

mkdep permet de copier automatiquement un fichier donné ainsi que ses librairies dans le dossier chrooté cible : ./mkdep <fichier à copier> <dossier chrooté>