Quiero permitir el tráfico FTP entrante.
CentOS 5.4:
Este es mi /etc/sysconfig/iptablesarchivo
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Además, de forma predeterminada, el módulo ip_conntrack_netbios_n se está cargando.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Pero el problema no es con ese módulo, ya que intenté descargarlo y todavía no tuve suerte.
Si desactivo iptables, puedo transferir mi copia de seguridad de otra máquina a FTP. Si se aplica iptables, la transferencia falló.
fuente

--sport 1024: and --dport 1024:significa que estamos incluyendo todos los puertos en el rango1024:32535que son puertos sin privilegios, lo que significa que los usuarios sin acceso de privilegios pueden usar estos puertos para probar sus aplicaciones.--sportun modo sin privilegios para solucionar problemas de firewall y permitir que los clientes se conecten al servidor.NEW,ESTABLISHEDpero eso no debería importar. Primero, una conexión siempre está en unNEWestado y luego salta, loRELATEDque indica que esta conexión está relacionada con una conexión ya permitida. Cuando la conexión cambia alESTABLISHEDestado, nos informa que se ha establecido una conexión en ambos lados (servidor / cliente). Podrías intentarlo en su-m state --state ...lugar.NEWrealmente importa. No parece funcionar sin él.--sport 1024:. ¿Por qué el puerto del cliente sería útil para la regla? Si se conecta desde un puerto 80 a los puertos pasivos del servidor, también se le debe permitir que se conecte.Ya vi reglas tan extensas en varios blogs, etc., y me pregunté por qué no simplemente usar
junto con el
nf_conntrack_ftpmódulo Esto es más conciso y legible, lo que generalmente es algo bueno, especialmente con firewalls ...FWIW, parece que hubo un cambio en el kernel 4.7, por lo que es necesario configurar a
net.netfilter.nf_conntrack_helper=1través desysctl(por ejemplo, ponerlo/etc/sysctl.d/conntrack.conf) o usar(ver aquí para más detalles)
fuente
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helpery todo funciona como se esperaba.Cliente FTP:
SERVIDOR FTP:
Para alternar entre modo pasivo y activo en el lado del cliente
fuente
Agregar NUEVO lo arregló, creo.
Ahora, mi archivo iptables se ve así ...
Escribiéndolo como respuesta, ya que no se permiten demasiados caracteres en los comentarios. Muchas gracias por su ayuda.
fuente
--dport 20:65535está dejando todos los puertos del 20 al 65535 abiertos desde cualquier puerto de origen entre 1024: 65535, lo que deja expuestos muchos servicios que probablemente no deberían, a menos que se permita explícitamente. Creo que lo que se pretendía es--dport 1024:65535Si necesita conexiones activas y pasivas, y ya acepta
ESTABLISHEDconexiones, como:Entonces solo necesita abrir el puerto 21 y agregar una regla especial para puertos pasivos. No se necesita ninguna regla para el puerto 20, ya que la
ESTABLISHEDregla anterior ya la acepta .Primero acepte nuevas conexiones en
port 21:Luego agregue el ayudante CT para puertos pasivos
1024::Ver también:
Nota: debe configurar el
1024:como en su servidor FTP: busque los puertos pasivos predeterminados en su configuración FTP. De lo contrario, abriría demasiados puertos que pueden no ser relativos a FTP.Nota importante: no agregué
OUTPUTreglas ya que mis valores predeterminados van coniptables -P OUTPUT ACCEPT. Lo que significa que confío en lo que sale de mi caja. Esa puede no ser una buena opción, especialmente en una configuración NAT.Nota muy importante: FTPS no funcionará con dicha configuración, ya que el puerto pasivo está oculto (encriptado), por lo tanto, no hay forma de
iptablesadivinar el buen puerto. Consulte Cambiar las tablas IP para permitir FTP a través de TLS mediante puertos pasivos y https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okfuente