Installare un server vsFTPd con utenti virtuali su MySQL: differenze tra le versioni

 
(11 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Lenny|Squeeze|Wheezy}}
{{Versioni compatibili|Lenny|Squeeze|Wheezy|Jessie|Stretch}}
== Introduzione ==
== Introduzione ==
Tra i vari server FTP disponibili in Debian, VSFTPD è a mio parere quello più snello, sicuro e prestazionale; inoltre, come ulteriore garanzia, è il server FTP scelto da Red Hat e consigliato da IBM.
Tra i vari server FTP disponibili in Debian, VSFTPD è a mio parere quello più snello, sicuro e prestazionale; inoltre, come ulteriore garanzia, è il server FTP scelto da Red Hat e consigliato da IBM.
Riga 11: Riga 11:


== Prerequisiti ==
== Prerequisiti ==
Dopo aver installato Apache ([[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]) e configurato i Virtual Host ([[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]) abbiamo adesso bisogno di permettere ai proprietari dei domini ospitati sui Virtual Host di accedere al loro spazio web via FTP senza causare danni agli altri Virtual Host e senza avere la possibilità di gironzolare per il nostro server.<br/>
Dopo aver installato Apache ([[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] oppure [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5 - Stretch]]) e configurato i Virtual Host ([[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]) abbiamo adesso bisogno di permettere ai proprietari dei domini ospitati sui Virtual Host di accedere al loro spazio web via FTP senza causare danni agli altri Virtual Host e senza avere la possibilità di gironzolare per il nostro server.<br/>
Supponiamo quindi di avere una situazione in cui vogliamo creare due utenti virtuali, senza accesso alla console, che possano ad esempio accedere via FTP solo alle directory del loro sito web.
Supponiamo quindi di avere una situazione in cui vogliamo creare due utenti virtuali, senza accesso alla console, che possano ad esempio accedere via FTP solo alle directory del loro sito web.
<br/>
<br/>
Riga 95: Riga 95:
listen_port=21
listen_port=21
connect_from_port_20=YES
connect_from_port_20=YES
# Abilito le porte passive
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=65000
pasv_addr_resolve=YES


# Abilito utenti locali e/o virtuali
# Abilito utenti locali e/o virtuali
local_enable=YES
local_enable=YES
local_umask=022
local_umask=022
##max_login_fails=3
max_login_fails=3
##max_per_ip=4
max_per_ip=4
# Senza il server sarebbe read-only
# Senza il server sarebbe read-only
write_enable=YES
write_enable=YES
Riga 111: Riga 117:


# Imposto il banner di benvenuto
# Imposto il banner di benvenuto
##ftpd_banner=EasyLAB Doc FTP Server
ftpd_banner=EasyLAB Doc FTP Server
#force_dot_files=yes
#force_dot_files=yes


# I file caricati hanno proprietario www-data
# I file caricati hanno proprietario www-data
#chown_uploads=YES
chown_uploads=YES
#chown_username=www-data
chown_username=www-data




Riga 125: Riga 131:
secure_chroot_dir=/var/run/vsftpd
secure_chroot_dir=/var/run/vsftpd
user_sub_token=$USER
user_sub_token=$USER
##allow_writeable_chroot=YES
local_root=/home/vsftpd/$USER
local_root=/home/vsftpd/$USER


Riga 143: Riga 148:
##################
##################


##log_ftp_protocol=YES
log_ftp_protocol=YES
##vsftpd_log_file=/var/log/vsftpd.log
vsftpd_log_file=/var/log/vsftpd.log
##dual_log_enable=YES
dual_log_enable=YES
xferlog_enable=YES
xferlog_enable=YES
##xferlog_std_format=YES
xferlog_std_format=YES
</pre>
</pre>
L'elenco delle direttive di VSFTPD con una spiegazione dettagliata del significato è presente sul sito ufficiale: [https://security.appspot.com/vsftpd/vsftpd_conf.html vsftpd.conf]
L'elenco delle direttive di VSFTPD con una spiegazione dettagliata del significato è presente sul sito ufficiale: [https://security.appspot.com/vsftpd/vsftpd_conf.html vsftpd.conf]
Riga 167: Riga 172:
# chown -R vsftpd:www-data /var/www/sitoweb
# chown -R vsftpd:www-data /var/www/sitoweb
</pre>
</pre>
{{Warningbox|Ricordarsi che da Debian Stretch 9 la directory root di Apache è diventata <tt>/var/www/html</tt>. Occorre tenerne conto quando si impostano i path degli utenti FTP}}


== Connessione al database MySQL ==
== Connessione al database MySQL ==
Riga 262: Riga 268:


# Permetto SSL v2
# Permetto SSL v2
ssl_sslv2=NO
ssl_sslv2=YES


# Permetto SSL v3
# Permetto SSL v3
ssl_sslv3=NO
ssl_sslv3=YES


# Disabilito SSL session reuse (da usare con WinSCP)
# Disabilito SSL session reuse (da usare con WinSCP)
Riga 276: Riga 282:
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
</pre>
</pre>
Con un riavvio del server:
<pre>
# /etc/init.d/vsftpd restart
</pre>
rendiamo attive le modifiche.
<br/>
Da adesso sarà possibile configurare il nostro client FTP per utilizzare sessioni crittate.<br>
Tramite uno script perl<sup>[[#Collegamenti esterni|[1]]]</sup> è possibile gestire facilmente le utenze.
Il software mantiene allineato il database con i relativi file di configurazione necessario per ogni utente.
== Collegamenti esterni ==
[1] [https://github.com/bogomips/syncFtp.pl script perl] <br/>


Da adesso sarà possibile configurare il nostro client FTP per utilizzare sessioni crittate.


== Bibliografia ==
== Bibliografia ==