Mostrando entradas con la etiqueta IPTables. Mostrar todas las entradas
Mostrando entradas con la etiqueta IPTables. Mostrar todas las entradas

sábado, 31 de diciembre de 2011

Unix: Stateful firewalls vs. Non-Stateful firewalls

Hace unos días tuve una interesante discusión en Twitter sobre las ventajas de utilizar como firewall Packet Filter contra Netfilter (IPTables). Cabe destacar que tengo mas conocimientos de PF que de IPTables, por lo cual conozco más las ventajas prácticas del primero que del último.

En teoría de firewalls, encontramos los denominados stateful firewalls, son firewalls que actúan en layer 3 del modelo OSI/ISO (network) donde su punto fuerte es el poder de inspeccionar estados, y saber si los mismos corresponden a una conexión ya existente o no. Esto es posible lograrlo en Linux mediante connectrion tracking utilizando los módulos conntrack, y  así mantener un record de los estados existentes en el sistema operativo.

Tanto Packet Filter como IP Filter utilizan una estructura denominada tabla de estados (o status table), para mantener dicha información. Si un paquete IP ingresa al firewall, se va a buscar mediante una previa inspección del header si el mismo forma parte de una conexión ya existente, y si esto es cierto no se van a inspeccionar reglas de filtrado, sino que el paquete va a pasar directamente. Si un paquete llega por primera vez al firewall, el mismo si matchea con alguna regla, entonces va a crear una entrada en la tabla de estados del firewall, y ya, mientras la conexión siga viva no va a pasar por dicha inspección de reglas.

viernes, 11 de noviembre de 2011

Linux: Connection tracking with FTP and iptables



Uno de los problemas más comunes con que se puede encontrar un sysadmin utilizando iptables es a la hora de hacer el deployment de un servidor FTP (como por ejemplo vsftpd o proftpd) estando detrás de un  NAT. El cliente se podrá conectar al servidor, pero este no logrará realizar ninguna operación en el (como listar, o transferir archivos).

Según los distintos RFC que definen al protocolo FTP, este por regla general utiliza dos puertos, el TCP/20 para datos y el TCP/21 para control; Aunque esto no siempre es así y es lo que veremos en este post.
Para evitar el problema mencionado anteriormente, podemos decir que FTP trabaja en dos modos: el modo activo y el modo pasivo.