GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il server SFTP Chroot in Linux

Ci sono alcuni scenari dove l'amministratore di sistema vuole che solo pochi utenti possano trasferire file su Linux box ma nessun ssh . Possiamo raggiungere questo obiettivo impostando SFTP in ambiente chroot.

Sfondo di SFTP e chroot :

SFTP sta per protocollo di trasferimento file SSH o Protocollo di trasferimento file sicuro . SFTP fornisce accesso ai file, trasferimento file e funzionalità di gestione dei file su qualsiasi flusso di dati affidabile. Quando configuriamo SFTP in ambiente chroot , solo gli utenti consentiti saranno limitati alla loro home directory , oppure possiamo dire che gli utenti autorizzati saranno in carcere come un ambiente in cui non possono nemmeno cambiare la loro directory.

Nell'articolo configureremo il server SFTP Chroot su RHEL &CentOS sistema . Abbiamo un utente "Jack ' , questo utente potrà trasferire file su Linux box ma nessun accesso ssh.

Passaggio:1) Crea un gruppo

Crea il gruppo sftp_users usando il comando groupadd,

[[email protected] ~]# groupadd  sftp_users

Passaggio:2) Assegna il gruppo secondario (sftp_users) all'utente

Se gli utenti non esistono sul sistema, usa il comando seguente per crearlo,

[[email protected] ~]# useradd  -G sftp_users -s /sbin/nologin  jack
[[email protected] ~]# passwd jack

Per utenti già esistenti , usa il comando usermod sotto:

[[email protected] ~]# usermod –G sftp_users -s /sbin/nologin  jack

Nota: Se desideri modificare la home directory predefinita di utenti , quindi utilizza '-d' opzione nel comando useradd e usermod  e imposta le autorizzazioni corrette.

Fase :3) Ora modifica il file di configurazione “/etc/ssh/sshd_config”

Modifica sshd_config usando il tuo editor preferito,

# vi /etc/ssh/sshd_config

#comment out the below line and add a line like below
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# add Below lines at the end of file
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp

Dove :

Abbina sftp_users al gruppo – Ciò indica che le seguenti righe verranno abbinate solo per gli utenti che appartengono al gruppo sftp_users
CrootDirectory %h – Questo è il percorso (home directory dell'utente predefinito) che verrà utilizzato per chroot dopo l'autenticazione dell'utente. Quindi, per Jack, questo sarà /home/jack.
ForceCommand internal-sftp – Questo forza l'esecuzione di internal-sftp e ignora qualsiasi comando menzionato nel file ~/.ssh/rc.

Dopo aver apportato le modifiche precedenti, riavvia il servizio ssh usando il seguente comando,

[[email protected] ~] # systemctl restart sshd

Passaggio:4) Imposta i permessi richiesti sulla home directory dell'utente

Come nella nostra dimostrazione, stiamo usando jack user come utente sftp, quindi esegui i seguenti comandi per impostare i permessi richiesti sulla sua home directory,

[[email protected] ~]# chmod 755 /home/jack
[[email protected] ~]# chown root /home/jack
[[email protected] ~]# chgrp -R sftp_users /home/jack

Se vuoi che l'utente jack dovrebbe essere autorizzato a caricare file , quindi crea una cartella di caricamento con le autorizzazioni seguenti ,

[[email protected] jack]# mkdir /home/jack/upload
[[email protected] jack]# chown jack. /home/jack upload/

Se selinux è abilitato sul tuo sistema, esegui il seguente comando per impostare le regole di selinux, 

[[email protected] ~] setsebool -P ssh_chroot_full_access on

Passaggio :5)  Prova il server Sftp

Prima prova ad accedere al sistema usando ssh tramite jack user,

Come possiamo vedere nell'output sopra, l'utente jack può ssh.

Ora proviamo ad accedere usando sftp,

Come puoi vedere sopra, l'utente jack ha effettuato l'accesso tramite SFTP e ma non può cambiare la directory a causa dell'ambiente chroot.

Ora esegui il caricamento e il download test come mostrato di seguito:

Come possiamo vedere sopra, sia il caricamento che il download funzionano bene per l'utente jack. Questa è la conclusione dell'articolo, sei il benvenuto a condividere il tuo feedback e commenti nelle sezioni commenti qui sotto.

Leggi anche Come configurare il server SFTP con Chroot in Debian 10


Linux
  1. Come configurare le jail chroot di Linux

  2. Come lavorare con il client SFTP in Linux – 10 comandi sftp

  3. Come configurare un server SFTP su Arch Linux

  4. Come installare e configurare server e client NTP Linux

  5. Come configurare il server VNC su Oracle Linux 6

Come installare e configurare un server NFS su un sistema Linux

Come installare e configurare il server Apache SVN su desktop Linux

Come eseguire l'SSH sul server tramite Linux

Come configurare NGINX su un server CentOS 7

Come installare e configurare il server Web Apache su Oracle Linux 8

Come installare e configurare il server DNS in Linux