Prova con questo manuale. Forse funzionerà per te.
Come farlo
Installa vsftpd e una libreria PAM
Modifica /etc/vsftpd.conf
e/etc/pam.d/vsftpd
Crea accout utente con directory personalizzate (in / var / www / ad esempio)
Impostare le directory con il corretto chmod
echown
Crea un utente amministratore con pieno accesso al server
- Installa
vsftpd
(Very Secure FTP Deamon) e libpam-pwdfile
per creare utenti virtuali
Volevo creare utenti FTP ma non volevo aggiungere utenti unix locali (nessun accesso alla shell, nessuna home directory e così via). Un PAM (Pluggable Authentication Modules) ti aiuterà a creare utenti virtuali.
sudo apt-get install vsftpd libpam-pwdfile
- modificare
vsftpd.conf
Per prima cosa devi eseguire il backup del file originale
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Quindi creane uno nuovo
sudo vim /etc/vsftpd.conf
Copia e incolla le seguenti righe. Il file deve contenere SOLO queste righe:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Registra utenti virtuali
Per registrare un utente che usi htpasswd
, quindi presumo che tu stia apache2
lavorando sul tuo server. Crea una vsftpd
cartella, quindi inserisci i file di configurazione.
sudo mkdir /etc/vsftpd
poi
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c significa che creeremo il file se non esiste ancora -d forza MD5, ne hai bisogno su Ubuntu 12.04, usalo sempre
Il comando richiederà una password.
Se vuoi aggiungere nuovi utenti in seguito:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Configura PAM in
/etc/pam.d/vsftpd
Ancora una volta, è necessario eseguire il backup del file originale
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
e crearne uno nuovo
sudo vim /etc/pam.d/vsftpd
Copia e incolla queste 2 righe (questo dovrebbe essere l'unico contenuto). Insisto solo su queste 2 righe, ho perso molto tempo a conservare gli originali e li ho appena aggiunti.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Crea un utente locale senza accesso alla shell
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Puoi verificare che sia stato creato con il comando id: id vsftpd. Definiamo l'utente con la shell / bin / false a causa del parametro check_shell (anche se non lo usi). Quando l'utente finale si collega al server FTP, verrà utilizzato per i diritti e la proprietà:
chmod
e chown
.
- Ricomincia
vsftpd
Il modo comune è usare init.d come tutti i demoni
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Crea directory
In base alla configurazione, tutti gli utenti verranno inseriti in questa cartella: / var / www / user1.
Devi crearli con diritti particolari: la cartella principale non può essere scrivibile!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Nota: l'utente non può creare file o cartelle nella directory principale.
In vsftpd.conf
questo chroot_local_user=YES
modo l'utente non può vedere nulla al di fuori della sua cartella. A lui, il server si presenta così:
Quindi esegui questi comandi:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
La /var/www/user1
cartella DEVE esistere o la connessione fallirà.
In questo momento puoi provare a connetterti con il tuo FTP
- Crea un utente amministratore per accedere all'intero server
Per creare un utente amministratore è necessario registrare un nuovo utente con htpasswd
.
Prima di farlo, ti consiglio di controllare nel /etc/ftpusers
file che definisce determinati utenti a cui non è consentito connettersi con ftp. Penso che sia solo per utenti locali e non utenti virtuali, ma nel caso in cui non scelga un nome contenuto in questo file.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Ora dobbiamo aggiungere una nuova linea in /etc/vsftpd.conf
chroot_list_enable=YES
Ciò significa che il tuo utente verrà inserito nella sua cartella (come jail) TRANNE gli utenti in / etc /
vsftpd.chroot_list
Creiamo questo file e aggiungiamo il nostro utente, il file è una semplice riga contenente "theadmin". Aggiungi un utente per riga. Ciò significa che NON è necessario creare una /var/www/theadmin
cartella, l'utente accederà e inizierà /home/vsftpd
.
Riavvia il server e il gioco è fatto!