26 votos

Permitiendo FTP con IPTables

Mi escenario actual consiste en permitir que diversas normas, pero necesito ftp para ser accesible desde cualquier lugar. El sistema operativo es de 5% y la estoy usando VSFTPD. Me parece que no puede obtener la sintaxis correcta. Todas las otras reglas funcionan correctamente.

## Filter all previous rules
*filter

## Loopback address
-A INPUT -i lo -j ACCEPT

## Established inbound rule
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Management ports
-A INPUT -s x.x.x.x/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT

## Allow NRPE port (Nagios)
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT

##Allow FTP

## Default rules
:INPUT DROP [0:0]
:FORWARD DROP
:OUTPUT ACCEPT [0:0]
COMMIT

Las siguientes son las reglas que he probado.

##Allow FTP
-A INPUT --dport 21 any -j ACCEPT
-A INPUT --dport 20 any -j ACCEPT

-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT


-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT

-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT

4voto

Evan Anderson Puntos 118832

Aquí está el documento que se refieren a personas para que puedan siguiendo el protocolo FTP: http://slacksite.com/other/ftp.html

  • Para hacer activo el modo FTP, usted necesita para permitir conexiones entrantes al puerto TCP 21 y las conexiones salientes desde el puerto 20.
  • Para hacer FTP en modo pasivo, es necesario permitir las conexiones entrantes al puerto TCP 21 y las conexiones entrantes a una generadas aleatoriamente puerto en el equipo servidor (requiere el uso de un conntrack módulo netfilter)

Usted no tiene nada re: su SALIDA de la cadena en su post, así que voy a incluir aquí también. Si su SALIDA de la cadena es el valor por defecto colocar a continuación de estos temas.

Agregar estas reglas para su configuración iptables:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

Para apoyar el modo pasivo de FTP, entonces, usted necesita para cargar el ip_conntrack_ftp módulo en el arranque. Descomente y modificar el IPTABLES_MODULES línea en el /etc/sysconfig/iptables-config para que se lea:

IPTABLES_MODULES="ip_conntrack_ftp"

Guardar el iptables de configuración y reiniciar iptables.

service iptables save
service iptables restart

Para descartar completamente VSFTPD como un problema, deje de VSFTPD, compruebe que no la escucha en el puerto 21 con un "netstat-a" y, a continuación, ejecute :

nc -l 21

Esto iniciará el netcat a la escucha en el puerto 21 y se hacen eco de la entrada de su concha. Desde otro host, TELNET al puerto 21 del servidor y compruebe que dispone de una conexión TCP y que vea la salida en el shell cuando se escribe en la conexión TELNET.

Finalmente, traer VSFTPD copia de seguridad, compruebe que escucha en el puerto 21, e intente conectarse de nuevo. Si la conexión a netcat trabajado, a continuación, sus reglas iptables están bien. Si la conexión a VSFTPD no funciona después de netcat hace, entonces algo está mal w/ su configuración de VSFTPD.

0voto

Matt Puntos 8

Pruebe esta regla. Nota: $EXTIP es tu dirección IP externa del servidor FTP.

-A INPUT -i $EXTIP -m state --state NEW,ESTABLISHED,RELATED -p TCP -s 0.0.0.0 -d $EXTIP --dport 21 -j ACCEPT

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: