« Serveur sftp +rssh+chroot » : différence entre les versions

Aller à la navigation Aller à la recherche
m
aucun résumé des modifications
mAucun résumé des modifications
Ligne 10 : Ligne 10 :
On va tout simplement les installer avec aptitude, qui s'occupera d'installer les dépendances :  
On va tout simplement les installer avec aptitude, qui s'occupera d'installer les dépendances :  


  #aptitude install openssh-server rssh  
  # aptitude install openssh-server rssh  


=== Configuration du serveur ssh  ===
=== Configuration du serveur ssh  ===
Ligne 76 : Ligne 76 :
Nous allons "chrooter" nos futurs utilisateurs du serveur sftp dans un dossier, nous nous servirons dans notre cas de /home/sftp:<br>  
Nous allons "chrooter" nos futurs utilisateurs du serveur sftp dans un dossier, nous nous servirons dans notre cas de /home/sftp:<br>  


  #mkdir /home/sftp
  # mkdir /home/sftp


L'intérêt est que ces utilisateurs verront /home/sftp comme racine, et ne pourront agir que dans celui-là (et uniquement avec les commandes fournies par sftp, étant donné qu'on leur donnera comme shell rssh).<br>  
L'intérêt est que ces utilisateurs verront /home/sftp comme racine, et ne pourront agir que dans celui-là (et uniquement avec les commandes fournies par sftp, étant donné qu'on leur donnera comme shell rssh).<br>  
Ligne 84 : Ligne 84 :
Il va donc falloir installer dans le chroot la commande sftp et ses dépendances, ainsi que sftp-server.<br> On va, pour ce faire, utiliser le script copie_binaire :  
Il va donc falloir installer dans le chroot la commande sftp et ses dépendances, ainsi que sftp-server.<br> On va, pour ce faire, utiliser le script copie_binaire :  


#!/bin/bash
<code bash>
install -D $1 $2$1
#!/bin/bash
for i in `ldd $1 | grep -o '/[^[:space:]]*'`; do  
install -D $1 $2$1
        if [&nbsp;! -e $2$i ]; then install -D $i $2$i; fi
for i in `ldd $1 | grep -o '/[^[:space:]]*'`; do  
done
      if [&nbsp;! -e $2$i ]; then install -D $i $2$i; fi
done
</code>


Ce script permet de copier un binaire et ses dépendances (et permet d'éviter de tout faire avec ldd et cp "à la main").<br>
Ce script permet de copier un binaire et ses dépendances (et permet d'éviter de tout faire avec ldd et cp "à la main").<br>
Ligne 97 : Ligne 99 :
Copions donc sftp et ses dépendances de la manière suivante :  
Copions donc sftp et ses dépendances de la manière suivante :  


  #./copie_binaire /usr/bin/sftp /home/sftp
  # ./copie_binaire /usr/bin/sftp /home/sftp


Voilà, sftp et ses dépendances sont dans /home/sftp (plus précisément dans /home/sftp/usr et /home/sftp/lib).<br>
Voilà, sftp et ses dépendances sont dans /home/sftp (plus précisément dans /home/sftp/usr et /home/sftp/lib).<br>
Il faut en plus copier libnss-file.so.2 :  
Il faut en plus copier libnss-file.so.2 :  


  #cp /lib/libnss-file.so.2 /home/sftp/lib
  # cp /lib/libnss_files.so.2 /home/sftp/lib
   
   
Excepté si vous êtes sur une lenny/i386 , il faut en plus copier /usr/lib/openssh/sftp-server dans le chroot (a faire donc si vous êtes sur lenny/amd64 ou squeeze):
Excepté si vous êtes sur une lenny/i386 , il faut en plus copier /usr/lib/openssh/sftp-server dans le chroot (a faire donc si vous êtes sur lenny/amd64 ou squeeze):
Ligne 113 : Ligne 115 :
Pour le bon fonctionnement de sftp, il est nécessaire d'avoir un dev/null dans le chroot :  
Pour le bon fonctionnement de sftp, il est nécessaire d'avoir un dev/null dans le chroot :  


  #mknod dev/null c 1 3  chmod 666 dev/null
# cd /home/sftp
# mkdir dev
  # mknod dev/null c 1 3
  # chmod 666 dev/null


* Placer le setuid sur le rssh_chroot_helper
* Placer le setuid sur le rssh_chroot_helper


  #chmod u+s /usr/lib/rssh/rssh_chroot_helper
  # chmod u+s /usr/lib/rssh/rssh_chroot_helper


* Ajouter ligne chrootpath /home/sftp dans rssh.conf
* Ajouter ligne chrootpath /home/sftp dans rssh.conf


  # echo 'chrootpath = "/home/sftp"' &gt;&gt; /etc/rssh.conf
  # echo 'chrootpath = "/home/sftp"' >> /etc/rssh.conf


Bon, le chroot est prêt, ne manquent plus que les clients...
Bon, le chroot est prêt, ne manquent plus que les clients...
Ligne 129 : Ligne 134 :
* créons l'utilisateur machin, futur client de notre serveur (en n'oubliant pas de lui donner comme shell rssh)
* créons l'utilisateur machin, futur client de notre serveur (en n'oubliant pas de lui donner comme shell rssh)


  #adduser machin --shell /usr/bin/rssh
  # adduser machin --shell /usr/bin/rssh


On vous demande un mot de passe pour cet utilisateur, mettez-en un "béton", sinon tout ce qui est fait côté "sécu" ne sert à rien.  
On vous demande un mot de passe pour cet utilisateur, mettez-en un "béton", sinon tout ce qui est fait côté "sécu" ne sert à rien.  
Ligne 135 : Ligne 140 :
* ajoutons cet utilisateur dans le fichier passwd du chroot
* ajoutons cet utilisateur dans le fichier passwd du chroot


  #mkdir /home/sftp/etc
  # mkdir /home/sftp/etc
  #grep '^machin:' /etc/passwd >> /home/sftp/etc/passwd
  # grep '^machin:' /etc/passwd >> /home/sftp/etc/passwd


* Déclarons le comme utilisateur autorisé dans /etc/ssh/sshd_config:
* Déclarons le comme utilisateur autorisé dans /etc/ssh/sshd_config:
Administrators, autoreview, Vérificateurs d’utilisateurs, checkuser-log, editor, reviewer, usersnoop
3 321

modifications

Menu de navigation