Gli iptables utility controlla il codice di filtraggio dei pacchetti di rete nel kernel Linux. La funzione iptables viene utilizzata per impostare, mantenere e ispezionare le tabelle delle regole del filtro dei pacchetti IP nel kernel Linux. Possono essere definite diverse tabelle. Ogni tabella contiene un numero di catene integrate e può anche contenere catene definite dall'utente.
Sul server FTP, per impostazione predefinita, le regole di iptables non sono impostate per consentire la porta 20/21 per la connessione FTP. Il tentativo di aprire una connessione FTP genera il seguente errore:
# ftp 192.168.10.10 ftp: connect: No route to host ftp>
Consentire le porte FTP 20/21 in iptables
Accedi al server ftp e segui i passaggi indicati di seguito.
1. Modifica il file /etc/sysconfig/iptables-config e aggiungi "ip_conntrack_ftp “” modulo alla sezione “IPTABLES_MODULES= “. La voce dovrebbe essere simile a questa:
IPTABLES_MODULES="ip_conntrack_ftp"
2. Modifica il file /etc/sysconfig/iptables e assicurati che le regole di iptables siano aggiunte per la porta 20/21
# vi /etc/sysconfig/iptables # 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 ## rule related to FTP command (port 21) -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT ## rule related to FTP data (port 20) -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 COMMITNota: L'ordine delle regole di iptables è importante.
3. Riavvia il servizio iptables
# service iptables restart
4. Esegui il comando seguente per verificare se i moduli ftp sono caricati o meno.
# lsmod | grep -i ftp
Esempio di output:
# lsmod | grep -i ftp nf_conntrack_ftp 12913 0 nf_conntrack 79357 3 nf_conntrack_ftp,nf_conntrack_ipv4,xt_state
5. Esegui il comando seguente per verificare se le regole di iptables relative alla porta ftp 20 e alla porta 21 sono abilitate o meno.
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
6. Verifica se riesci a trasmettere con successo l'ftp dal client al server ftp.