giovedì 19 settembre 2013

Aggiungere utenti reali FTP (vsftpd) Ubuntu server

Per utilizzare il servizio FTP (vsftpd) su un server remoto con sistema operativo Ubuntu 13.4 su una macchina Amazon EC2 ho dovuto utilizzare la chiave .pem che ho creato in fase di installazione.

Questo non sempre mi va bene, per diversi motivi, quindi ho deciso di creare un semplice utente che può utilizzare il normale protocollo FTP collegandosi al server e autenticandosi semplicmeente con una password. Oltre a questo ho voluto fare in modo che, ogni volta che mi collego utilizzando questo utente, vengo portato direttamente alla cartella /var/www e non alla cartella /.

Tutto questo fondamentalmente perchè sono pigro.

Per fare un lavoro del genere si possono creare utenti reali del sistema o utenti virtuali. Sinceramente per le mie esigenze ho trovato molto più veloci e pratico creare utenti reali.

La prima cosa da fare per poter utilizzare un utente reale per accedere al server tramite protocollo ftp è abilitare questa funzione tramite il file di configurazione di vsftp.

Quindi basta editare il file vsftpd.conf

#sudo nano /etc/vsftpd.conf

E' importante cercare le righe con le stringhe:

#local_enable=YES
#write_enable=YES

e decommentarle cancellando il cancelletto dall'inizio della riga.

Per rendere effettive le modifiche bisogna riavviare il servizio

    #sudo /etc/init.d/vsftpd restart

Una volta fatto questo non ci rimane che creare gli utenti che desideriamo, nel mio caso uno solo.

#sudo useradd -d /var/www/ nomeutente

#sudo passwd nomeutente

Con il primo comando creo l'utente e gli assegno la cartella personale, cioè la cartella nella quale mi troverò nel momento in cui utilizzerò l'utente per accedere al server tramite FTP.
Se non si utilizza l'opzione -d all'utente verrà assegnata una cartella di default con il proprio nome all'interno della cartella home.
Per controllare questi parametri si può leggere il file passwd.

    #sudo nano /etc/passwd

Alla fine del file dovrebbe esserci il nuovo utente creato e l'indirizzo della cartella personale.

Io ho scelto la cartella /var/www perchè utilizzo lo stesso utente per gestire tutti i siti che si trovano sul server, ma se si vuole differenziare è possibile assegnare un indirizzo diverso, ad esempio /var/www/nomesito/

A questo punto dovrebbe essere possibile utilizzare il nuovo utente per accedere tramite protocollo FTP, io utilizzo filezilla.

E' molto utile limitare l'accesso al file system per gli utenti che utilizzano l'ftp.
Per limitare l'accesso esclusivamente alla propria cartella personale bisogna modificare ulteriormente il file di configurazione del servizio FTP.


    #sudo nano /etc/vsftpd.conf

questa volta bisogna cercare e decommentare la stringa

    #chroot_local_user=YES

A questo punto è necessario riavviare ancora una volta il servizio.

    #sudo /etc/init.d/vsftpd restart


                 /---------------------------------------------------------------------/

Se si vuole bloccare l'accesso FTP a un particolare utente è possibile inserire il nome utente al file /etc/ftpusers.

                 /---------------------------------------------------------------------/

Può capitare di fare un po' di casino con i permessi delle cartelle o dei files.
Se non si hanno permessi di scrittura è necessario modificarli oppure cambiare il proprietario o il gruppo di una cartella.

Se si vuole cambiare ricorsivamente l'utente proprietario di una cartella:

    #sudo chown -R numeutente nomecartella/

Se si vuole cambiare ricorsivamente il gruppo proprietario di una cartella:

    #sudo chgrp -R nomegruppo nomecartella/

Se si vogliono modificare i permessi di una cartella:


    #sudo chmod -R 755 nomecartella/

Se si vuole aggiungere un utente a un gruppo:

    #sudo adduser nomeutente nomegruppo

Per controllare quali permessi e proprietari abbia una cartella o un file:

    #ls -la cartellasuperiore/


Questi comandi dovrebbero essere sufficienti per fare tutto quello che serve.



/------------------------------------------------------------------------------------------/

UPDATE 14/10/2014

Mi è capitato di installare vsftpd su digitalocean, non sono riuscito a collegarmi tramite ftp finchè non ho aggiunto questa stringa al file di configurazione

    allow_writeable_chroot=YES

Nessun commento:

Posta un commento