GNU/Linux >> Linux Esercitazione >  >> Debian

Come configurare il server SFTP con Chroot in Debian 10

SFTP sta per Secure File Transfer Protocol / SSH File Transfer Protocol, è uno dei metodi più comuni utilizzati per trasferire file in modo sicuro su ssh dal nostro sistema locale al server remoto e viceversa. Il vantaggio principale di sftp è che non è necessario installare alcun pacchetto aggiuntivo eccetto "openssh-server ', nella maggior parte delle distribuzioni Linux il pacchetto 'openssh-server' è la parte dell'installazione predefinita. Un altro vantaggio di sftp è che possiamo consentire all'utente di utilizzare solo sftp e non ssh.

Recentemente è stato rilasciato Debian 10, nome in codice 'Buster', in questo articolo dimostreremo come configurare sftp con Chroot 'Jail' come ambiente in Debian 10 System. Qui l'ambiente simile a Chroot Jail significa che gli utenti non possono andare oltre le rispettive directory home o gli utenti non possono cambiare directory dalle loro directory home. Di seguito i dettagli del laboratorio:

  • OS =Debian 10
  • Indirizzo IP =192.168.56.151

Passiamo ai passaggi di configurazione SFTP,

Passo:1) Crea un gruppo per sftp usando il comando groupadd

Apri il terminale, crea un gruppo con un nome “sftp_users ” usando il comando groupadd sotto,

[email protected]:~# groupadd sftp_users

Passaggio:2) Aggiungi utenti al gruppo "sftp_users" e imposta i permessi

Nel caso in cui desideri creare un nuovo utente e desideri aggiungere quell'utente al gruppo "sftp_users", esegui il comando seguente,

Sintassi: # useradd -m -G sftp_users

Supponiamo che il nome utente sia "Jonathan"

[email protected]:~# useradd -m -G sftp_users jonathan

imposta la password usando il seguente comando chpasswd,

[email protected]:~# echo "jonathan:<enter_password>" | chpasswd

Nel caso in cui desideri aggiungere utenti esistenti al gruppo "sftp_users", quindi eseguire sotto il comando usermod, supponiamo che il nome utente già esistente sia "chris"

[email protected]:~# usermod -G sftp_users chris

Ora imposta le autorizzazioni richieste su Utenti,

[email protected]:~# chown root /home/jonathan /home/chris/

Crea una cartella di caricamento nella directory home dell'utente e imposta la proprietà corretta,

[email protected]:~# mkdir /home/jonathan/upload
[email protected]:~# mkdir /home/chris/upload
[email protected]:~# chown jonathan /home/jonathan/upload
[email protected]:~# chown chris /home/chris/upload

Nota: Utenti come Jonathan e Chris possono caricare file e directory per caricare le cartelle dai loro sistemi locali.

Fase:3) Modifica il file di configurazione sftp (/etc/ssh/sshd_config)

Come abbiamo già affermato, le operazioni sftp vengono eseguite su ssh, quindi il suo file di configurazione è "/etc/ssh/sshd_config “, Prima di apportare qualsiasi modifica suggerirei di eseguire prima il backup e poi modificare questo file e aggiungere il seguente contenuto,

[email protected]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
[email protected]:~# vim /etc/ssh/sshd_config
………
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
…………

Salva ed esci dal file.

Per apportare le modifiche precedenti all'effetto, riavvia il servizio ssh usando il seguente comando systemctl

[email protected]:~# systemctl restart sshd

Nel file "sshd_config" sopra abbiamo commentato la riga che inizia con "Subsystem" e aggiunto la nuova voce "Subsystem       sftp    internal-sftp" e nuove righe come,

"Abbina gruppo sftp_users" –> Significa che se un utente fa parte del gruppo "sftp_users", applica le regole menzionate di seguito a questa voce.

"CrootDierctor %h ” –> Significa che gli utenti possono cambiare le directory solo all'interno delle rispettive home directory, non possono andare oltre le loro home directory, o in altre parole possiamo dire che gli utenti non sono autorizzati a cambiare directory, avranno un ambiente simile a jai all'interno delle loro directory e possono 'non accedere a nessun altro utente e directory di sistema.

"ForceCommand interno-sftp ” –> Significa che gli utenti sono limitati al solo comando sftp.

Passaggio:4) Testare e verificare sftp

Accedi a qualsiasi altro sistema Linux che si trova sulla stessa rete del tuo server sftp e quindi prova a ssh server sftp tramite gli utenti che abbiamo mappato nel gruppo "sftp_users".

Password di
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]#

Sopra conferma che gli utenti non sono autorizzati a SSH , ora prova sftp usando i seguenti comandi,

[[email protected] ~]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

Proviamo a scaricare un file usando sftp 'get ' comando

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

L'output sopra conferma che siamo in grado di scaricare file dal nostro server sftp alla macchina locale e, a parte questo, abbiamo anche testato che gli utenti non possono cambiare directory.

Proviamo a caricare un file in "carica cartella ",

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

Ciò conferma che abbiamo caricato correttamente un file dal nostro sistema locale al server sftp.

Ora prova il server SFTP con lo strumento winscp, inserisci l'indirizzo IP del server sftp insieme alle credenziali dell'utente,

Fare clic su Accedi e quindi provare a scaricare e caricare file

Ora prova a caricare i file nella cartella di caricamento,

La finestra sopra conferma che anche il caricamento funziona correttamente, questo è tutto da questo articolo. Se questi passaggi ti aiutano a configurare il server SFTP con l'ambiente chroot in Debian 10, condividi il tuo feedback e commenti.


Debian
  1. Come installare e configurare VNC su Debian 9

  2. Come configurare il server FTP con VSFTPD su Debian 9

  3. Come configurare un server SFTP su Debian 11 Server

  4. Come configurare un firewall con CSF su Debian 9

  5. Come configurare un firewall con UFW su Debian 9

Come configurare server e client NTP su Debian 10

Come installare e configurare Apache Web Server con Virtual Host su Debian 10

Come configurare LAMP con Debian 11

Come configurare bind con Debian 11

Come configurare Samba Server con Debian 11

Come installare Nginx con PHP-FPM su Debian 11