In questa breve configurazione installeremo il server di file FTP su Linux RHEL7 usando vsftpd. Ci atterremo alla configurazione vsftpd predefinita che consente agli account utente sul nostro sistema Linux RHEL7 esistente di accedere tramite FTP da una posizione remota, elencare e trasferire file. Cominciamo dall'installazione:
Per installare il server FTP su Redhat 7 Linux possiamo usare sia tftp-server
o vsftpd
demone. In questa guida utilizziamo vsftpd
:
[root@rhel7 ~]# yum install vsftpd
Successivamente, possiamo avviare il vsftpd
servizio utilizzando un service
comando:
[root@rhel7 ~]# service vsftpd start Redirecting to /bin/systemctl start vsftpd.service
Per rendere persistente l'avvio del servizio FTP dopo il riavvio del sistema, utilizzare:
[root@rhel7 ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
Verifica se porta 21
è aperto. Non preoccuparti se l'IPv4 di questa porta non è aperto come bind IPv6.
[root@rhel7 ~]# netstat -tanp | grep LISTEN
Dobbiamo anche aprire la porta del firewall, altrimenti vedremo un seguente messaggio di errore quando tenteremo di connetterci:
ftp: connect: No route to host ftp>
Per aprire una porta 21 su Redhat 7 linux usa i seguenti comandi linux. La porta che rimaniamo aperta al pubblico anche dopo il riavvio del sistema:
[root@rhel7 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent success [root@rhel7 ~]# firewall-cmd --reload success
A questo punto dovremmo essere in grado di connetterci da un host remoto in cui l'indirizzo IP del nostro servizio FTP è 10.1.1.110
:
$ ftp 10.1.1.110 Connected to 10.1.1.110 (10.1.1.110). 220 (vsFTPd 3.0.2) Name (10.1.1.110:lrendek): rhel7 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
La prossima configurazione che dobbiamo eseguire è abilitare il modulo iptables ip_conntrack_ftp
altrimenti vedremo un seguente messaggio di errore interrogare il nostro server FTP dopo l'accesso riuscito:
ftp> ls 227 Entering Passive Mode (10,1,1,110,166,190). ftp: connect: No route to host ftp>
Come soluzione temporanea utilizziamo modprobe
per caricare ip_conntrack_ftp
modulo:
[root@rhel7 ~]# modprobe ip_conntrack_ftp
Vedi questa pagina per una soluzione più permanente su come caricare il modulo ip_conntrack_ftp dopo il riavvio.
L'ultima configurazione che dobbiamo eseguire è abilitare il contesto FTP selinux per le directory degli utenti attualmente sul sistema, altrimenti non saremo in grado di leggere/scrivere o trasferire alcun file tra server FTP e client FTP:
230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,125,139). 553 Could not create file.
Per abilitare il contesto della directory home FTP di selinux per consentire i comandi di lettura e scrittura. Per questo utilizziamo setsebool
comando:
[root@rhel7 ~]# setsebool -P ftp_home_dir=1
Quanto sopra imposterà il contesto della home directory FTP di selinux in modo permanente -P
dopo il riavvio.
ftp> put ftp-test.txt local: ftp-test.txt remote: ftp-test.txt 227 Entering Passive Mode (10,1,1,110,174,219). 150 Ok to send data. 226 Transfer complete.
Ora hai la configurazione del tuo server FTP. Per ulteriori opzioni di configurazione, vedere il file di configurazione del server FTP vsftpd principale /etc/vsftpd/vsftpd.conf
. Quando apporti modifiche al file di configurazione assicurati di applicarle riavviando il servizio FTP:
[root@rhel7 ~]# service vsftpd restart Redirecting to /bin/systemctl restart vsftpd.service