W . A . X . O
ncc-1701
LINUX - UNIX




SSH : CHROOT SFTP : SFTP sécurisé : sftp chrooté et sans accès à un shell

  • 1 - Créer un GROUP "sftponly"
    sudo groupadd sftponly

  • 2 - Créer un USER
  • Créer le répertoire de l'utilisateur qui sera chrooté:
  • Sans shell : mettre "/bin/false" comme shell, ce qui revient à n'autoriser aucun shell.
  • Ligne dans /etc/passwd : carnot-sftp:x:1006:1007::/home/sites-web/carnot-sftp:/bin/false
    sudo mkdir /home/sites-web/sftp-clients/sftp-client1
    sudo useradd -d /home/sites-web/sftp-clients/sftp-client1 -s /bin/false sftp-client1

  • 3 - Ajouter le USER dans le GROUP "sftponly" dans /etc/group
    sudo vi /etc/group
    sftponly:x:1007:sftp-client1

  • 4 - Modifier la configuration de SSHD
    sudo vi /etc/ssh/sshd_config

  • a) - changer "Subsystem sftp /usr/lib/openssh/sftp-server" en "Subsystem sftp internal-sftp"
    # override default of no subsystems
    #Subsystem sftp /usr/lib/openssh/sftp-server
    Subsystem sftp internal-sftp
    

  • b) - ajouter les lignes suivantes
    Match Group sftponly
    ChrootDirectory %h 
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
    
  • c) - Redémarrer le deamon OpenSSH
    sudo /etc/init.d/ssh restart

  • 5 - Configuration des droits du dossier ChRooté
    drwxr-xr-x  5 root       root     4.0K Oct 21 10:40 sftp-clients
    xxxxxxxxxxxx$ ls -lh sftp-clients
    total 8.0K
    drwxr-xr-x 2 sftp-client1 sftponly    4.0K Oct 21 10:40 sftp-client1
    

  • 6 - Accès SSFTP ChRooté
  • sftp -Pxxxx sftp-client1@www.machine.com
    benoit@sephiroth:~$ sftp -Pxxxx sftp-client1@www.machine.com
    sftp-client1@www.machine.com's password: 
    Connected to www.machine.com
    sftp> pwd
    Remote working directory: /
    sftp> ls
    fichiers
    

  • 7 - Accès SFTP non-CHROOTé
    benoit@sephiroth:~$ sftp -P2277 www.instituts-carnot.eu
    benoit@www.instituts-carnot.eu's password: 
    Connected to www.instituts-carnot.eu.
    sftp> pwd
    Remote working directory: /home/users/benoit