Las iptables La utilidad controla el código de filtrado de paquetes de red en el kernel de Linux. La función iptables se utiliza para configurar, mantener e inspeccionar las tablas de reglas de filtrado de paquetes IP en el kernel de Linux. Se pueden definir varias tablas diferentes. Cada tabla contiene una serie de cadenas integradas y también puede contener cadenas definidas por el usuario.
En el servidor FTP, las reglas predeterminadas de iptables no están configuradas para permitir el puerto 20/21 para la conexión FTP. Intentar abrir una conexión ftp da como resultado el siguiente error:
# ftp 192.168.10.10 ftp: connect: No route to host ftp>
Permitir puertos FTP 20/21 en iptables
Inicie sesión en el servidor ftp y siga los pasos que se indican a continuación.
1. Edite el archivo /etc/sysconfig/iptables-config y agregue “ip_conntrack_ftp módulo “” a la sección “IPTABLES_MODULES= “. La entrada debería verse así:
IPTABLES_MODULES="ip_conntrack_ftp"
2. Edite el archivo /etc/sysconfig/iptables y asegúrese de que se agreguen reglas de iptables para el puerto 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 COMMIT
3. Reinicie el servicio de iptables
# service iptables restart
4. Ejecute el siguiente comando para verificar si los módulos ftp están cargados o no.
# lsmod | grep -i ftp
Salida de ejemplo:
# lsmod | grep -i ftp nf_conntrack_ftp 12913 0 nf_conntrack 79357 3 nf_conntrack_ftp,nf_conntrack_ipv4,xt_state
5. Ejecute el siguiente comando para verificar si las reglas de iptables relacionadas con el puerto ftp 20 y el puerto 21 están habilitadas o no.
# 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. Verifique si puede ftp desde el cliente al servidor ftp con éxito.