Para cada sistema, el firewall es imprescindible para la seguridad. En los sistemas Linux, se puede implementar un firewall usando la utilidad de línea de comandos iptables. Es muy poderoso para establecer reglas de firewall para mejorar la seguridad. Debajo del capó, las iptables interactúan con los ganchos de filtrado de paquetes de la pila de red del kernel conocida como marco Netfilter (http://www.netfilter.org/). Puede gestionar el filtrado de paquetes y las reglas de NAT.
Nota:en la práctica, iptables maneja las reglas de IPv4 e ip6tables http://linux.die.net/man/8/ip6tables maneja las reglas de IPv6.
Primeros pasos con iptables
La utilidad iptables utiliza el concepto de tabla para organizar las reglas del cortafuegos. Las tablas, a su vez, contienen un conjunto de cadenas. Y las cadenas contienen un conjunto de reglas.
Hay cuatro tipos de mesas.
1. Tabla de filtros
2. Tabla NAT
3. Mangle mesa
4. Tabla cruda
5. Mesa de seguridad
Filtrar tabla
Es la iptable por defecto. Esta tabla decide si se debe permitir que un paquete llegue a su destino o no. Un paquete típico que llegó a la tabla de filtros pasará por cualquiera de las siguientes tres cadenas.
1. Cadena de entrada:si un paquete tiene como destino su servidor, pasa por la cadena de ENTRADA.
2. Salida:si el origen de los paquetes es su servidor, pasa por la cadena de salida.
3. Reenviar:si los paquetes, ni el origen ni el destino, pertenecen a su servidor, pasan por la cadena de reenvío. Significa que se está enrutando el paquete de otra NIC de su servidor. Esto normalmente sucede cuando su sistema Linux actúa como un enrutador.
Puede ver la tabla de filtros en su sistema usando el siguiente comando.
sudo iptables -t filter --list
Tabla NAT
La tabla NAT contiene las siguientes cadenas.
1. Cadena PREROUTING:esta cadena es principalmente para DNAT (Destination NAT)
2. Cadena POSTROUTING:esta cadena es principalmente para SNAT (Source NAT)
Nota:Lea sobre DNAT y SNAT con el ejemplo de aquí .
3. Cadena de SALIDA:si los paquetes se entregan localmente, se utiliza esta cadena.
Puede ver la tabla NAT usando el siguiente comando.
sudo iptables -t filter --list
Mesa Mangle
Esta tabla se utiliza principalmente para modificar los encabezados de IP. Tiene las siguientes cadenas.
1. RUTA PREVIA
2. SALIDA
3. ADELANTE
4. ENTRADA
5. ENRUTAMIENTO POSTERIOR
Vea la lista de tablas de mangle usando el siguiente comando.
sudo iptables -t mangle --list
Tabla sin procesar
Esta tabla proporciona un mecanismo para marcar paquetes para cancelar el seguimiento de la conexión. http://people.netfilter.org/pablo/docs/login.pdf
Mangle table tiene las siguientes cadenas
1. RUTA PREVIA
2. Cadena de SALIDA
Vea la lista de tablas sin procesar usando el siguiente comando.
sudo iptables -t raw --list
Tabla de seguridad
Esta tabla está relacionada con SELINUX. Establece el contexto SELINUX en los paquetes. Para ser más específicos, se utiliza para el control de acceso obligatorio https://en.wikipedia.org/wiki/Mandatory_access_control
Vea la lista de la tabla de seguridad usando el siguiente comando.
sudo iptables -t security --list