Introduzione
L'amministratore di sistema può dare ai propri utenti la possibilità di caricare in modo sicuro i file sul server. Il modo più comune per farlo è consentire i trasferimenti di file tramite Secure File Transfer Protocol (SFTP). Per impostazione predefinita, gli utenti SSH sono in grado di visualizzare tutti i file del server.
In questa guida vedremo come creare un utente e bloccarlo (jail) in una cartella (directory) da noi scelta.
Potrebbe essere utile creare un utente con accesso al web server Apache2 senza dargli la possiblità di salire di livello, quindi di navigare tra i file del server.
Vediamo come fare.
Prerequisiti
Installazione di Apache2. oppure di Nginx.
Configurare OpenSSH
Per limitare ad un nuovo utente dobbiamo effettuare delle modifiche nel file di configurazione dell'SSH.
Apriamo il seguente file:
sudo nano /etc/ssh/sshd_config
Cerchiamo la riga Subsystem sftp e modifichiamola nel seguente modo:
Subsystem sftp internal-sftp
Aggiungiamo alla fine del file le seguenti righe:
Match Group jail_user
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Salvare e chiudere il file.
Riavviare il servizio SSH (OpenSSH)
sudo service ssh restart
Creare un nuovo utente
Per creare un nuovo utente da terminale dare questo comando:
sudo useradd ftpuser
Se non viene richiesta dal comando precedente, creare una password per il nuovo utente:
sudo passwd ftpuser
Creare un nuovo gruppo e gestire i permessi
Creare un gruppo di sistema per gli utenti a cui si desidera limitare all'accesso SFTP:
sudo addgroup --system jail_user
Modificare adesso l'account utente che si desidera limitare.
Tieni presente che ciò impedirà a questi utenti di accedere a una sessione shell remota.
Aggiungere il nuovo utente al gruppo appena creato:
sudo usermod -G jail_user ftpuser
Accertiamoci che i permessi del webserver di Apache siano corretti:
sudo chown root:root /var/www
sudo chmod 755 /var/www
Modificare i permessi dei file nella cartella principale di Apache:
cd /var/www
sudo chown ftpuser:jail_user *
È possibile dare gli accessi completi all'utente appena creato con il seguente comando:
sudo adduser ftpuser www-data
sudo chown -R www-data:www-data /var/www/html
sudo setfacl -R -m u:ftpuser:rwx /var/www/html
Il primo comando aggiungerà l'utente nel gruppo www-data, il secondo cambierà il proprietario di tutte le directory e file del seguente percorso /var/www/html ed il terzo abiliterà i permessi di scrittura.
Adesso è possibile accedere con il nuovo utente tramite SFTP direttamente nella directory scelta senza la possibilità di salire di livello tra le cartelle.
La configurazione è terminata.