GNU/Linux >> Linux Esercitazione >  >> Linux

CentOS / RHEL:come impostare SFTP su Chroot Jail solo per un gruppo specifico

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.

b. SFTP

# 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".


Linux
  1. CentOS / RHEL 7:come disabilitare IPv6 solo su un'interfaccia specifica

  2. CentOS / RHEL 7:come aggiungere un parametro del kernel solo a un kernel specifico

  3. CentOS / RHEL 7:come abilitare telnet per un gruppo di utenti

  4. Come abilitare la registrazione SFTP senza chroot in CentOS/RHEL

  5. Come impostare children-max per il servizio udev in CentOS/RHEL 7

Come configurare SSH su CentOS e RHEL

CentOS / RHEL:come eliminare un gruppo di volumi in LVM

CentOS / RHEL:come impostare la jail chroot per vsftp solo per utenti specifici

CentOS / RHEL:come impostare la jail chroot per vsftp per tutti gli utenti

CentOS / RHEL:come configurare SFTP chroot jail

Come posso creare un utente solo per sftp?