Chroot Ssh avec le protocole Sftp
La directive Match est implantée dans OpenSsh depuis la version 4.4.
Création ou modification des comptes utilisateurs
Pour chrooter en Ssh les utilisateurs d’un serveur Linux, vous devez créer ou modifier le compte d’un utilisateur de manière à ce qu’il ne puisse pas se connecter en mode shell, en le rattachant à un groupe d’utilisateurs chrootés :
- Création du groupe sftpusers :
groupadd sftpusers
- Création de l’utilisateur user :
useradd -G sftpusers -s /bin/false user –password ‘mdp’
- Modification de l’utilisateur user :
usermod -G sftpusers -s /bin/false user
Changez le propriétaire et les droits du répertoire Home de l’utilisateur
- Changement de propriétaire :
chow root:root /home/user -R
- Changement des droits :
chmod 755 /home/user -R
Création des droits en écriture sur le répertoire www
Si ce répertoire www est réservé à un hébergement pris en charge par le serveur Apache de votre distribution Linux, ajoutez l’utilisateur, pour CentOS, au groupe apache :
usermod -G apache user
.
- Création du répertoire :
mkdir /home/user/www
- Changement de propriétaire :
chown user:apache /home/user/www -R
- Changement de droits :
chmod 770 /home/user/www -R
Modification du fichier /etc/ssh/sshd_config
Vous devez modifier le fichier /etc/sshd/sshd_config comme suit :
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# Example of overriding settings on a per-user basis
#Match User anonymous
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
# ForceCommand cvs server
Match
Redémarrez le service SSHD
Dernière étape :
service sshd restart
ou
/etc/init.d/sshd restart
Vous pouvez tester avec WinSCP.