Non fornisco supporto su questa discussione.
Questa discussione ha il solo scopo di suggerire all'utente "inesperto" una strada molto veloce per l'installazione e configurazione del servizio VSFTPD: questo è solo un modo! Vengono fatte assunzioni forti, viene calcata la mano all'utente "inesperto". Altre scelte potrebbero essere fatte sulla base delle proprie necessità.
Per qualsiasi correzione, osservazione, suggerimento o altro inerente questa discussione, cortesemente, mandatemi un messaggio in privato.
Happy Linux
Di seguito verrà trattata la configurazione del servizio VSFTPD per l'utilizzo con utente ANONYMOUS e con gli UTENTI DI SISTEMA.
Sul PC SERVER installiamo il pacchetto vsftpd
Codice: Seleziona tutto
sudo apt install vsftpd
Codice: Seleziona tutto
cat /etc/passwd | grep ftp
ls -ld /srv/ftp
Codice: Seleziona tutto
sudo mkdir -p /var/ftp/anonymous
Codice: Seleziona tutto
sudo chown ftp:ftp /var/ftp/anonymous
Codice: Seleziona tutto
sudo usermod --home=/var/ftp/anonymous ftp
Codice: Seleziona tutto
cat /etc/passwd | grep ftp
ls -ld /var/ftp/anonymous
Codice: Seleziona tutto
sudo rmdir /srv/ftp
Codice: Seleziona tutto
sudo usermod --shell=/usr/sbin/nologin ftp
Codice: Seleziona tutto
cat /etc/passwd | grep ftp
Per abilitare l'accesso FTP degli utenti ftp (anonymous) e ftpuser (vedi dopo), entrambi con shell disabilitata, dobbiamo aggiungere nel file /etc/shells la linea:
Codice: Seleziona tutto
/usr/sbin/nologin
Creiamo le cartelle per il download e upload anonimo, rispettivamente di sola lettura e di lettura / scrittura:
Codice: Seleziona tutto
sudo mkdir -p /var/ftp/anonymous/downloads
Codice: Seleziona tutto
sudo chmod 555 /var/ftp/anonymous/downloads
Codice: Seleziona tutto
sudo mkdir -p /var/ftp/anonymous/uploads
Codice: Seleziona tutto
sudo chmod 755 /var/ftp/anonymous/uploads
Codice: Seleziona tutto
sudo chmod 555 /var/ftp/anonymous
Codice: Seleziona tutto
sudo chown -R ftp:ftp /var/ftp/anonymous
Creiamo l'utente di sistema ftpuser (con shell disabilitata) da usare per le sessioni FTP autenticate
Codice: Seleziona tutto
sudo adduser --home=/var/ftp/ftpuser --shell=/usr/sbin/nologin ftpuser
Codice: Seleziona tutto
cat /etc/passwd | grep ftp
ls -ld /var/ftp/ftpuser
Codice: Seleziona tutto
sudo mkdir -p /var/ftp/ftpuser/downloads
Codice: Seleziona tutto
sudo chmod 555 /var/ftp/ftpuser/downloads
Codice: Seleziona tutto
sudo mkdir -p /var/ftp/ftpuser/uploads
Codice: Seleziona tutto
sudo chmod 755 /var/ftp/ftpuser/uploads
Codice: Seleziona tutto
sudo chmod 555 /var/ftp/ftpuser
Codice: Seleziona tutto
sudo chown -R ftpuser:ftpuser /var/ftp/ftpuser
Personalizziamo i file di configurazione /etc/vsftpd.conf e /etc/vsftpd.userlist
/etc/vsftpd.conf
Codice: Seleziona tutto
# Generale
listen=YES
# listen_port=2121
ftpd_banner=Welcome to PINCOPALLINO FTP Server
max_clients=10
download_enable=YES
write_enable=YES
file_open_mode=0666
use_localtime=YES
# FTP Passivo
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65535
connect_from_port_20=NO
# FTP Attivo
# pasv_enable=NO
# connect_from_port_20=YES
# Logging
syslog_enable=NO
vsftpd_log_file=/var/log/vsftpd.log
dual_log_enable=NO
xferlog_enable=YES
# Logging completo
# xferlog_std_format=NO
# log_ftp_protocol=YES
# FTP Anonimo
chown_uploads=YES
chown_username=ftp
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_root=/var/ftp/anonymous
anon_umask=0022
anon_max_rate=0
# Utenti Locali
local_enable=YES
chroot_local_user=YES
# Se abilitato in fase di compilazione dell'applicazione,
# è possibile per far accedere in lettura/scrittura gli utenti locali alle rispettive Home FTP sbloccando l'opzione indicata di seguito
# allow_writeable_chroot=YES
local_umask=0022
local_max_rate=0
# Per abilitare solo gli utenti specificati
# userlist_enable deve avere lo stesso valore di local_enable
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
# Personalizzazioni di Debian
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Codice: Seleziona tutto
# Utente anonimo
anonymous
# Utente autenticato
ftpuser
Riavviamo il servizio VSFTPD
Codice: Seleziona tutto
sudo systemctl restart vsftpd.service
Codice: Seleziona tutto
systemctl status vsftpd.service
Codice: Seleziona tutto
sudo ss -tlnp | grep ftp