Per consentire la funzionalità di ChrootDirectory in base all'utente, utilizza una configurazione sshd eseguita in modo condizionale (usando il "Match ") in sshd_config file. L'impostazione di ChrootDirectory su un gruppo specifico assicura che gli utenti di quel gruppo non possano uscire dalla loro home directory, assicurando a loro volta che nessun altro utente sia interessato.
1. Crea un gruppo per gli utenti che verranno sottoposti a chroot.
# groupadd sftp_group
2. Crea un utente per il gruppo SFTP e imposta la password.
# useradd sftp_test1
# passwd sftp_test1 Changing password for user sftp_test1. New password: Retype new password: passwd: all authentication tokens updated successfully.
3. Aggiungere l'utente sftp_test1 al gruppo sftp_group. Lascia che la shell dell'utente sia /bin/false poiché gli utenti dovrebbero essere autorizzati solo a fare sftp e non ssh/scp.
# usermod -g sftp_group -s /bin/false sftp_test1
# id sftp_test1 uid=1000(sftp_test1) gid=1001(sftp_test1) groups=1001(sftp_test1),1000(sftp_group)NOTA :gli utenti non in questo gruppo possono comunque accedere all'host tramite ssh e interagire normalmente con openssh.
4. Modificare la configurazione sshd per configurare sftp. Rimuovi il /usr/libexec/openssh/sftp-server line e aggiungi la riga internal-sftp come mostrato di seguito:
Rimuovi o cancella la riga:
# vi /etc/ssh/sshd_config Subsystem sftp /usr/libexec/openssh/sftp-server
aggiungi la riga seguente:
# vi /etc/ssh/sshd_config Subsystem sftp internal-sftp
5. Aggiungi il contenuto seguente alla fine del file /etc/ssh/sshd_config per aggiungere l'ambiente chroot sftp:
# vi /etc/ssh/sshd_config Match Group sftp_group X11Forwarding no AllowTcpForwarding no ChrootDirectory /home ForceCommand internal-sftp
5. Riavvia il servizio sshd per rendere effettiva la configurazione sftp.
# systemctl restart sshd
Verifica
1. Ora prova ad accedere al sistema con il servizio SSH e SFTP da altri client:
a. SSH
# ssh [email protected] The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established. ECDSA key fingerprint is 07:1c:34:30:f4:81:e1:e0:b3:13:30:b8:57:d9:d9:58. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts. [email protected]'s password: Could not chdir to home directory /home/sftp_test1: No such file or directory This service allows sftp connections only. Connection to x.x.x.x closed.
Come vedi sopra, la connessione è chiusa e non è consentito accedere a SSH.
# sftp [email protected] [email protected]'s password: Connected to x.x.x.x. sftp> pwd Remote working directory: / sftp> ls sftp_test1 sftp> cd /home Couldn't canonicalize: No such file or directory sftp>
Di conseguenza sopra sftp_test1 l'utente è connesso tramite SFTP e non può cambiare la directory a causa dell'ambiente chroot
3. Puoi anche testare la funzione SFTP-Server dal client Windows utilizzando i software "WinSCP" o "Filezilla".