Installazione server FTP ( demone VSFTPD ) su CentOS 6
In questo tutorial andremo a descrivere come installare un server FTP su CentOS 6.9.
Partiamo da una macchina virtuale preinstallata CentOS 6.9 (per l’installazione seguire questo articolo) ed aggiorniamo il sistema
yum update
installiamo il demone VSFTPD
yum install vsftpd vim
modifichiamo il file di configurazione del server FTP
vim /etc/vsftpd/vsftpd.conf
rendiamo sicuro il server FTP impostando le seguenti opzioni
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
l’ultima opzione serve a confinare l’utente che accede alla sola cartella di sua proprietà (in questo caso l’utente viene ingabbiato “jail”).
Avviamo il demone VSFTPD
service vsftpd start
impostiamo l’avvio al boot automatico
chkconfig vsftpd on
Adesso rendiamo sicuro il server FTP con alcune accortezze, attiviamo il modulo del kernel per tenere traccia delle connessioni ftp, in particolare
vim /etc/sysconfig/iptables-config
ed impostiamo la seguente direttiva
IPTABLES_MODULES="ip_conntrack_ftp"
e permettiamo attraverso il firewall (iptables), le connessioni sulla porta standard dell’FTP 20 e 21
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 20 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT
adesso impostiamo anche il SELINUX in modo da permettere scrittura sulla home directory
setsebool -P ftp_home_dir on
nel caso in cui si volesse montare una share NFS bisognerebbe impostare anche la seguente direttiva
setsebool -P allow_ftpd_use_nfs on
a questo punto possiamo aver un resoconto di cosa è permesso dal SELINUX
getsebool -a | grep ftp
avremo
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> on
ftp_home_dir –> on
ftpd_connect_db –> off
ftpd_use_fusefs –> off
ftpd_use_passive_mode –> off
httpd_enable_ftp_server –> off
tftp_anon_write –> off
tftp_use_cifs –> off
tftp_use_nfs –> off
reboot
Aggiungiamo un utente al sistema per test
useradd test
passwd test
Per rendere il sistema ancora più robusto è possibile vietare il login ssh agli utenti
vim /etc/passwd
test:x:502:502::/home/test:/sbin/nologin