Difference between revisions of "Very Secure FTP Daemon (Italiano)"

From ArchWiki
Jump to: navigation, search
(Allineamento a pagina internazionale)
m (Ho aggiornato la procedura di avvio e avvio automatico al boot con systemd visto che faceva ancora riferimento a rc.conf ecc.)
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:Networking (Italiano)]]
 
[[Category:Networking (Italiano)]]
[[Category:HOWTOs (Italiano)]]
+
[[cs:Very Secure FTP Daemon]]
{{i18n|Very Secure FTP Daemon}}
+
[[en:Very Secure FTP Daemon]]
{{Translateme}}
+
[[es:Very Secure FTP Daemon]]
 +
[[ru:Very Secure FTP Daemon]]
 +
[[zh-CN:Very Secure FTP Daemon]]
 +
'''vsftpd''' (Very Secure FTP Daemon) è un server FTP leggero, stabile e sicuro per sistemi UNIX-like.
  
'''vsftpd''' (Very Secure FTP Daemon) is a lightweight, stable and secure FTP server for UNIX-like systems.
+
== Installazione ==
 
+
{{Ic|vsftpd}} è incluso nel repository ufficiale. Basta installarlo con pacman:
== Installation ==
+
Vsftpd is included in the official repository. Simply install it with pacman:
+
 
  # pacman -S vsftpd
 
  # pacman -S vsftpd
  
The server can be started by using the script below:
+
Il server può essere avviato utilizzando il seguente comando:
  # /etc/rc.d/vsftpd start
+
  # systemctl start vsftpd.service
  
You can also add vsftpd to your daemon array in {{Filename|/etc/rc.conf}} if you want it to be started automatically at boot.
+
Inoltre se si vuole che venga avviato automaticamente al boot è necessario abilitarlo in questo modo:
 +
# systemctl enable vsftpd.service
  
See the xinetd section below for procedures to use vsftpd with xinetd.
+
Per usare {{Ic|vsftpd}} con {{Ic|xinetd}}, vedere la sezione sottostante per le procedure adatte.
  
== Configuration ==
+
== Configurazione ==
Most of the settings in vsftpd are done by editing the file {{Filename|/etc/vsftpd.conf}}. The file itself is well-documented, so this section only highlights some important changes you may want to modify. For all available options and documentation, one can man vsftpd.conf (5).
+
La maggior parte delle impostazioni in {{Ic|vsftpd}} sono fatte modificando il file {{ic|/etc/vsftpd.conf}}. Il file è di per se stesso ben documentato, per cui questa sezione mette in luce solo alcuni importanti cambiamenti che si potrebbe voler effettuare. Per tutte le opzioni disponibili e la documentazione, sfogliare {{Ic|man vsftpd.conf}} (5).
  
=== Enabling uploading ===
+
=== Abilitare l'upload ===
The {{Codeline|WRITE_ENABLE}} flag must be set to YES in {{Filename|/etc/vsftpd.conf}} in order to allow changes to the filesystem, such as uploading:
+
Il flag {{Ic|WRITE_ENABLE}} deve essere impostato su YES in {{ic|/etc/vsftpd.conf}} con il fine di consentire le modifiche al filesystem, come ad esempio il caricamento:
 
  write_enable=YES
 
  write_enable=YES
  
=== Local user logging ===
+
=== Accesso utenti locali ===
One must set the line to {{Filename|/etc/vsftpd.conf}} to allow users in {{Filename|/etc/passwd}} to login:
+
Bisogna impostare la seguente riga in {{ic|/etc/vsftpd.conf}} per consentire agli utenti membri in {{ic|/etc/passwd}} di accedere al sistema:
 
  local_enable=YES
 
  local_enable=YES
  
=== Anonymous logging ===
+
=== Accesso anonimi ===
The line in {{Filename|/etc/vsftpd.conf}} controls whether anonymous users can login:
+
La seguente riga in {{ic|/etc/vsftpd.conf}} controlla se gli utenti anonimi possono effettuare il login:
  anonymous_enable=YES # Allow anonymous login
+
  anonymous_enable=YES # Consentire l'accesso anonimo
  no_anon_password=YES # No password is required for an anonymous login
+
  no_anon_password=YES # Nessuna password è richiesta per un login anonimo
  anon_max_rate=30000  # Maximum transfer rate for an anonymous client in bytes per second
+
  anon_max_rate=30000  # Velocità massima di trasferimento per un client anonimo in byte al secondo
  
=== Chroot jail ===
+
=== Limitare navigabilità con chroot ===
One can set up a chroot environment which prevents the user from leaving its home directory. To enable this, add the following lines to {{Filename|/etc/vsftpd.conf}}:
+
Si può impostare un ambiente chroot che impedisce all'utente di lasciare la sua home directory. A tal fine, aggiungere le seguenti righe a {{ic|/etc/vsftpd.conf}}:
 
  chroot_list_enable=YES
 
  chroot_list_enable=YES
 
  chroot_list_file=/etc/vsftpd.chroot_list
 
  chroot_list_file=/etc/vsftpd.chroot_list
The {{Codeline|chroot_list_file}} variable specifies the file which contains users that are jailed.
+
La variabile {{Ic|chroot_list_file}} specifica il file che contiene le direttive per gli utenti da circoscrivere.
  
For a more restricted environment, one can specify the line:
+
Per una direttiva ancora più restrittiva, si può specificare la riga:
 
  chroot_local_user=YES
 
  chroot_local_user=YES
This will make local users jailed by default. In this case, the file specified by {{Codeline|chroot_list_file}} lists users that are '''not''' in a chroot jail.
+
In questo modo gli utenti locali rimarranno limitati in via predefinita, e il file specificato da {{Ic|chroot_list_file}} elenca gli utenti che '''non''' rientrano nell'area limitativa chroot.
  
=== Limiting user login ===
+
=== Limitare il login degli utenti ===
It's possible to prevent users from logging into the FTP server by adding two lines to {{Filename|/etc/vsftpd.conf}}:
+
È possibile impedire agli utenti di accedere al server FTP con l'aggiunta di due righe {{ic|/etc/vsftpd.conf}}:
 
  userlist_enable=YES
 
  userlist_enable=YES
 
  userlist_file=/etc/vsftpd.user_list
 
  userlist_file=/etc/vsftpd.user_list
{{Codeline|userlist_file}} now specifies the file which lists users that are not able to login.
+
{{Ic|userlist_file}} specifica ora il file che elenca gli utenti che non sono autorizzati ad effettuare il login.
 
+
Se si desidera consentire l'accesso solo ad alcuni utenti, aggiungere la riga:
If you only want to allow certain users to login, add the line:
+
 
  userlist_deny=NO
 
  userlist_deny=NO
The file specified by {{Codeline|userlist_file}} will now contain users that are able to login.
+
Il file specificato da {{Ic|userlist_file}} contiene ora gli utenti che sono autorizzati ad effettuare il login.
  
=== Limiting connections ===
+
=== Limitare le connessioni ===
One can limit the data transfer rate, number of clients and connections per IP for local users by adding the information in {{Filename|/etc/vsftpd.conf}}:
+
Si può limitare la velocità di trasferimento dati, il numero di client e connessioni per IP di utenti locali, aggiungendo le informazioni in {{ic|/etc/vsftpd.conf}}:
  local_max_rate=1000000 # Maximum data transfer rate in bytes per second
+
  local_max_rate=1000000 # Massima velocità di trasferimento dati in byte al secondo
  max_clients=50        # Maximum number of clients that may be connected
+
  max_clients=50        # Numero massimo di client che possono essere collegati
  max_per_ip=2          # Maximum connections per IP
+
  max_per_ip=2          # Numero massimo di connessioni per IP
  
=== Using xinetd ===
+
=== Utilizzo di xinetd ===
If you want to use vsftpd with xinetd, add the following lines to {{Filename|/etc/xinetd.d/vsftpd}}:
+
Se si vuole usare {{Ic|vsftpd}} con {{Ic|xinetd}}, aggiungere le seguenti righe a {{ic|/etc/xinetd.d/vsftpd}}:
 
<pre>
 
<pre>
 
service ftp
 
service ftp
Line 75: Line 76:
 
</pre>
 
</pre>
  
The option below should be set in {{Filename|/etc/vsftpd.conf}}:
+
L'opzione sottostante deve essere impostata in {{ic|/etc/vsftpd.conf}}:
 
  pam_service_name=ftp
 
  pam_service_name=ftp
  
Finally, add xinetd to your daemons line in {{Filename|/etc/rc.conf}}. You do not need to add vsftpd, as it will be called by xinetd whenever necessary.
+
Infine, aggiungere {{Ic|xinetd}} alla stringa demoni in {{ic|/etc/rc.conf}}. Non è necessario aggiungere {{Ic|vsftpd}}, poichè verrà chiamato da {{Ic|xinetd}} quando necessario.
  
If you get errors like this while connecting to the server:
+
In caso di errori del genere durante la connessione al server:
 
  500 OOPS: cap_set_proc
 
  500 OOPS: cap_set_proc
You need to add ''capability'' in MODULES= line in {{Filename|/etc/rc.conf}}.
+
Sarà necessario aggiungere il modulo ''capability'' nella stringa MODULES in {{ic|/etc/rc.conf}}.
  
While upgrading to version 2.1.0 you might get an error like this when connecting to the server from a client:
+
Durante l'aggiornamento alla versione 2.1.0 si potrebbe ottenere un errore come questo quando ci si connette al server da un client:
 
  500 OOPS: could not bind listening IPv4 socket
 
  500 OOPS: could not bind listening IPv4 socket
In earlier versions it has been enough to leave the following lines commented:
+
Nelle versioni precedenti era sufficiente lasciare le seguenti righe commentate:
 
  # Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
 
  # Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
 
  # listen=YES
 
  # listen=YES
In this newer version, and maybe future releases, it is necessary however to explicitly configure it to '''not''' run in a standalone mode, like this:
+
In questa nuova versione, e forse anche nelle prossime, è necessario configurare  esplicitamente come '''non''' eseguibile in modalità standalone, in questo modo:
 
  # Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
 
  # Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
 
  listen=NO
 
  listen=NO
  
=== Using SSL to Secure FTP  ===
+
=== Utilizzo di SSL per la sicurezza dell'FTP  ===
  
Generate an SSL Cert, e.g. like that:  
+
Generare un certificato SSL in questo modo:  
 
  # cd /etc/ssl/certs
 
  # cd /etc/ssl/certs
 
  # openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
 
  # openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
 
  # chmod 600 /etc/ssl/certs/vsftpd.pem
 
  # chmod 600 /etc/ssl/certs/vsftpd.pem
You will be asked alot of Questions about your Company etc., as your Certificate is not a trusted one it doesn't really matter what you fill in. You will use this for encryption! If you plan to use this in a matter of trust get one from a CA like thawte, verisign etc.  
+
Verranno fatte varie domande sulla propria azienda, ecc, ma dato che il proprio certificato non è noto, non importa cosa si risponde durante la compilazione; lo si utilizzerà solo per la crittografia! Se si prevede di doverlo utilizzare con garanzie di fiducia (trusted), meglio ottenerne uno da compagnie come Thawte, Verisign ecc.  
  
edit your configuration {{Filename|/etc/vsftpd.conf}}
+
modificare la configurazione in {{ic|/etc/vsftpd.conf}}
 
<pre>
 
<pre>
 
#this is important
 
#this is important
Line 129: Line 130:
 
</pre>
 
</pre>
  
== Tips and tricks ==
+
== Suggerimenti ==
=== PAM with virtual users ===
+
=== PAM con utenti virtuali ===
Using virtual users has the advantage of not requiring a real login account on the system. Keeping the environment in a container is of course a more secure option.
+
L'utilizzo di utenti virtuali ha il vantaggio di non richiedere un vero account per il login sul sistema. Mantenere l'ambiente in un contenitore è naturalmente una scelta più sicura.
  
A virtual users database has to be created by first making a simple text file like this:
+
Un database virtuale degli utenti deve essere creato facendo prima di tutto un semplice file di testo come questo:
  user1
+
  utente1
 
  password1
 
  password1
  user2
+
  utente2
 
  password2
 
  password2
Include as many virtual users as you wish according to the structure in the example. Save it as logins.txt; the file name does not have any significance. Next step depends on Berkeley database system, which is included in the core system of Arch. As root create the actual database with the help of the logins.txt file, or what you chose to call it:
+
Includere quanti utenti virtuali si preferisca, secondo la struttura nell'esempio. Salvarlo come {{ic|logins.txt}}; il nome del file non ha alcun significato. Il passo successivo dipende dal sistema database Berkeley, che è incluso nel sistema principale di Arch. Come root creare il database effettivo con l'aiuto del file {{ic|logins.txt}}, o come è stato chiamato:
 
  # db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
 
  # db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
It is recommended to restrict permissions for the now created {{Filename|vsftpd_login.db}} file:
+
Si raccomanda di limitare le autorizzazioni per l'ormai creato file {{ic|vsftpd_login.db}}:
 
  # chmod 600 /etc/vsftpd_login.db
 
  # chmod 600 /etc/vsftpd_login.db
{{Warning|Be aware that stocking passwords in plain text is not safe. Don't forget to remove your temporary file with {{codeline|rm logins.txt}}.}}
+
{{Warning|Fare attenzione sul fatto che conservare password in file di testo normale non è sicuro. Non dimenticare quindi di rimuovere il file temporaneo con {{Ic|rm logins.txt}}.}}
PAM should now be set to make use of vsftpd_login.db. To make PAM check for user authentication create a file named ftp in the {{Filename|/etc/pam.d/}} directory with the following information:
+
PAM dovrebbe ora essere impostato per poter utilizzare vsftpd_login.db. Per fare in modo che PAM controlli l'autenticazione utente, creare un file chiamato ftp nella cartella {{ic|/etc/pam.d/}} con le seguenti informazioni:
 
  auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash  
 
  auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash  
 
  account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
 
  account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
{{Note|We use /etc/vsftpd_login without .db extension in PAM-config!}}
+
{{Note|Si usi /etc/vsftpd_login senza l'estensione .db nella configurazione di PAM!}}
Now it is time to create a home for the virtual users. In the example {{Filename|/srv/ftp}} is decided to host data for virtual users, which also reflects the default directory structure of Arch. First create the general user virtual and make {{Filename|/srv/ftp}} its home:
+
Ora è il momento di creare una home per gli utenti virtuali. Nell'esempio {{ic|/srv/ftp}} è adibito ad ospitare i dati degli utenti virtuali, concetto che riflette anche la struttura delle directory di default di Arch. Per prima cosa creare l'utente virtuale generale e fare di {{ic|/srv/ftp}} la sua home:
 
  # useradd -d /srv/ftp virtual
 
  # useradd -d /srv/ftp virtual
Make virtual the owner:
+
Rendere virtuale il proprietario:
 
  # chown virtual:virtual /srv/ftp
 
  # chown virtual:virtual /srv/ftp
Configure vsftpd to use the created environment by editing /etc/vsftpd.conf. These are the necessary settings to make vsftpd restrict access to virtual users, by user-name and password, and restrict their access to the specified area {{Filename|/srv/ftp}}:
+
configurare vsftpd per utilizzare l'ambiente creato modificando {{ic|/etc/vsftpd.conf}}. Queste sono le impostazioni necessarie per ottenere che {{Ic|vsftpd}} limiti l'accesso agli utenti virtuali, attraverso nomi utente e password, e circoscriva il loro accesso alla zona specificata {{ic|/srv/ftp}}:
 
  anonymous_enable=NO
 
  anonymous_enable=NO
 
  local_enable=YES
 
  local_enable=YES
Line 158: Line 159:
 
  guest_username=virtual
 
  guest_username=virtual
 
  virtual_use_local_privs=YES
 
  virtual_use_local_privs=YES
If the xinetd method is used start the service. You should now only be allowed to login by user-name and password according to the made database.
+
Se viene utilizzato il metodo {{Ic|xinetd}}, avviare il servizio. Ora si dovrebbe essere autorizzati solo al login con nome utente e password in base al database creato.
  
==== Adding private folders for the virtual users ====
+
==== Aggiungere cartelle private per gli utenti virtuali ====
First create directories for users:
+
Innanzitutto creare le directory per gli utenti:
 
  # mkdir /srv/ftp/user1
 
  # mkdir /srv/ftp/user1
 
  # mkdir /srv/ftp/user2
 
  # mkdir /srv/ftp/user2
 
  # chown virtual:virtual /srv/ftp/user?/
 
  # chown virtual:virtual /srv/ftp/user?/
  
Then, add the following lines to {{Filename|/etc/vsftpd.conf}}:
+
Quindi, aggiungere le seguenti righe a {{ic|/etc/vsftpd.conf}}:
 
  local_root=/srv/ftp/$USER
 
  local_root=/srv/ftp/$USER
 
  user_sub_token=$USER
 
  user_sub_token=$USER
  
== More resources ==
+
== Ulteriori risorse ==
 
* [http://vsftpd.beasts.org/ vsftpd official homepage]
 
* [http://vsftpd.beasts.org/ vsftpd official homepage]
 
* [http://vsftpd.beasts.org/vsftpd_conf.html vsftpd.conf man page]
 
* [http://vsftpd.beasts.org/vsftpd_conf.html vsftpd.conf man page]

Revision as of 21:06, 11 December 2013

vsftpd (Very Secure FTP Daemon) è un server FTP leggero, stabile e sicuro per sistemi UNIX-like.

Installazione

vsftpd è incluso nel repository ufficiale. Basta installarlo con pacman:

# pacman -S vsftpd

Il server può essere avviato utilizzando il seguente comando:

# systemctl start vsftpd.service

Inoltre se si vuole che venga avviato automaticamente al boot è necessario abilitarlo in questo modo:

# systemctl enable vsftpd.service

Per usare vsftpd con xinetd, vedere la sezione sottostante per le procedure adatte.

Configurazione

La maggior parte delle impostazioni in vsftpd sono fatte modificando il file /etc/vsftpd.conf. Il file è di per se stesso ben documentato, per cui questa sezione mette in luce solo alcuni importanti cambiamenti che si potrebbe voler effettuare. Per tutte le opzioni disponibili e la documentazione, sfogliare man vsftpd.conf (5).

Abilitare l'upload

Il flag WRITE_ENABLE deve essere impostato su YES in /etc/vsftpd.conf con il fine di consentire le modifiche al filesystem, come ad esempio il caricamento:

write_enable=YES

Accesso utenti locali

Bisogna impostare la seguente riga in /etc/vsftpd.conf per consentire agli utenti membri in /etc/passwd di accedere al sistema:

local_enable=YES

Accesso anonimi

La seguente riga in /etc/vsftpd.conf controlla se gli utenti anonimi possono effettuare il login:

anonymous_enable=YES # Consentire l'accesso anonimo
no_anon_password=YES # Nessuna password è richiesta per un login anonimo
anon_max_rate=30000  # Velocità massima di trasferimento per un client anonimo in byte al secondo

Limitare navigabilità con chroot

Si può impostare un ambiente chroot che impedisce all'utente di lasciare la sua home directory. A tal fine, aggiungere le seguenti righe a /etc/vsftpd.conf:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

La variabile chroot_list_file specifica il file che contiene le direttive per gli utenti da circoscrivere.

Per una direttiva ancora più restrittiva, si può specificare la riga:

chroot_local_user=YES

In questo modo gli utenti locali rimarranno limitati in via predefinita, e il file specificato da chroot_list_file elenca gli utenti che non rientrano nell'area limitativa chroot.

Limitare il login degli utenti

È possibile impedire agli utenti di accedere al server FTP con l'aggiunta di due righe /etc/vsftpd.conf:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

userlist_file specifica ora il file che elenca gli utenti che non sono autorizzati ad effettuare il login. Se si desidera consentire l'accesso solo ad alcuni utenti, aggiungere la riga:

userlist_deny=NO

Il file specificato da userlist_file contiene ora gli utenti che sono autorizzati ad effettuare il login.

Limitare le connessioni

Si può limitare la velocità di trasferimento dati, il numero di client e connessioni per IP di utenti locali, aggiungendo le informazioni in /etc/vsftpd.conf:

local_max_rate=1000000 # Massima velocità di trasferimento dati in byte al secondo
max_clients=50         # Numero massimo di client che possono essere collegati
max_per_ip=2           # Numero massimo di connessioni per IP

Utilizzo di xinetd

Se si vuole usare vsftpd con xinetd, aggiungere le seguenti righe a /etc/xinetd.d/vsftpd:

service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
        disable                 = no
}

L'opzione sottostante deve essere impostata in /etc/vsftpd.conf:

pam_service_name=ftp

Infine, aggiungere xinetd alla stringa demoni in /etc/rc.conf. Non è necessario aggiungere vsftpd, poichè verrà chiamato da xinetd quando necessario.

In caso di errori del genere durante la connessione al server:

500 OOPS: cap_set_proc

Sarà necessario aggiungere il modulo capability nella stringa MODULES in /etc/rc.conf.

Durante l'aggiornamento alla versione 2.1.0 si potrebbe ottenere un errore come questo quando ci si connette al server da un client:

500 OOPS: could not bind listening IPv4 socket

Nelle versioni precedenti era sufficiente lasciare le seguenti righe commentate:

# Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
# listen=YES

In questa nuova versione, e forse anche nelle prossime, è necessario configurare esplicitamente come non eseguibile in modalità standalone, in questo modo:

# Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
listen=NO

Utilizzo di SSL per la sicurezza dell'FTP

Generare un certificato SSL in questo modo:

# cd /etc/ssl/certs
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
# chmod 600 /etc/ssl/certs/vsftpd.pem

Verranno fatte varie domande sulla propria azienda, ecc, ma dato che il proprio certificato non è noto, non importa cosa si risponde durante la compilazione; lo si utilizzerà solo per la crittografia! Se si prevede di doverlo utilizzare con garanzie di fiducia (trusted), meglio ottenerne uno da compagnie come Thawte, Verisign ecc.

modificare la configurazione in /etc/vsftpd.conf

#this is important
ssl_enable=YES

#choose what you like, if you accept anon-connections
# you may want to enable this
# allow_anon_ssl=NO

#choose what you like,
# it's a matter of performance i guess
# force_local_data_ssl=NO

#choose what you like
force_local_logins_ssl=YES

#you should at least enable this if you enable ssl...
ssl_tlsv1=YES
#choose what you like
ssl_sslv2=YES
#choose what you like
ssl_sslv3=YES
#give the correct path to your currently generated *.pem file
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#the *.pem file contains both the key and cert
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

Suggerimenti

PAM con utenti virtuali

L'utilizzo di utenti virtuali ha il vantaggio di non richiedere un vero account per il login sul sistema. Mantenere l'ambiente in un contenitore è naturalmente una scelta più sicura.

Un database virtuale degli utenti deve essere creato facendo prima di tutto un semplice file di testo come questo:

utente1
password1
utente2
password2

Includere quanti utenti virtuali si preferisca, secondo la struttura nell'esempio. Salvarlo come logins.txt; il nome del file non ha alcun significato. Il passo successivo dipende dal sistema database Berkeley, che è incluso nel sistema principale di Arch. Come root creare il database effettivo con l'aiuto del file logins.txt, o come è stato chiamato:

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

Si raccomanda di limitare le autorizzazioni per l'ormai creato file vsftpd_login.db:

# chmod 600 /etc/vsftpd_login.db
Warning: Fare attenzione sul fatto che conservare password in file di testo normale non è sicuro. Non dimenticare quindi di rimuovere il file temporaneo con rm logins.txt.

PAM dovrebbe ora essere impostato per poter utilizzare vsftpd_login.db. Per fare in modo che PAM controlli l'autenticazione utente, creare un file chiamato ftp nella cartella /etc/pam.d/ con le seguenti informazioni:

auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash 
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
Note: Si usi /etc/vsftpd_login senza l'estensione .db nella configurazione di PAM!

Ora è il momento di creare una home per gli utenti virtuali. Nell'esempio /srv/ftp è adibito ad ospitare i dati degli utenti virtuali, concetto che riflette anche la struttura delle directory di default di Arch. Per prima cosa creare l'utente virtuale generale e fare di /srv/ftp la sua home:

# useradd -d /srv/ftp virtual

Rendere virtuale il proprietario:

# chown virtual:virtual /srv/ftp

configurare vsftpd per utilizzare l'ambiente creato modificando /etc/vsftpd.conf. Queste sono le impostazioni necessarie per ottenere che vsftpd limiti l'accesso agli utenti virtuali, attraverso nomi utente e password, e circoscriva il loro accesso alla zona specificata /srv/ftp:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES

Se viene utilizzato il metodo xinetd, avviare il servizio. Ora si dovrebbe essere autorizzati solo al login con nome utente e password in base al database creato.

Aggiungere cartelle private per gli utenti virtuali

Innanzitutto creare le directory per gli utenti:

# mkdir /srv/ftp/user1
# mkdir /srv/ftp/user2
# chown virtual:virtual /srv/ftp/user?/

Quindi, aggiungere le seguenti righe a /etc/vsftpd.conf:

local_root=/srv/ftp/$USER
user_sub_token=$USER

Ulteriori risorse