Firewall for passive FTP server

Posted on Posted in linux, seguridad

En una publicación anterior expliqué como montar un servidor ftp+ldap, ahora vamos a acnfigurar el firewall para permitir únicamente las conexiones que nos interesan:

Configuración Iptables

Empezamos configurando las iptables, para ello editamos nuestro archivo de configuración /etc/sysconfig/iptables:
Permitimos el acceso de cualquier ip al puerto 21 tanto si es una nueva conexión como si ya estaba establecida previamente:
A su vez permitimos la salida de cualquier paquete tcp que provenga del puerto 21 siempre y cuando la conexión se halla establecido previamente.

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Permitimos la entrada/salida de cualquier random-port (1024-65535) a cualquier random-port de nuestro servidor siempre que pertenezca a una conexión establecida, o en el caso de la entrada siempre y cuando la conexión esté relacionada con otra conexión activa.

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Por último permitimos la salida de paquetes udp con destino al puerto de datos (20) siempre y cuando la conexión este establecida o esté relacionada con otra conexión autorizada.
Al igual que permitimos la entrada de datos (20) siempre y cuando se trate de una conexión ya establecida.

iptables -A OUTPUT -p udp -s 202.54.1.20 --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 20 -m state --state ESTABLISHED -j ACCEPT
Carga de módulos

Ahora cargamos módulos que nos permitirán trabajar con las conexiones relacionadas (RELATED):

# modprobe ip_conntrack
# modprobe ip_conntrack_ftp

Los añadimos a la configuración /etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_conntrack ip_conntrack_ftp"
Automatización

Para cargar los módulos en el arranque podemos añadirlos a la configuración de nuestras iptables /etc/sysconfig/iptables o añadirlo /etc/rc.local:

/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

Leave a Reply

Your email address will not be published. Required fields are marked *