7.2. Uso de IPTables

El primer paso en el uso de IPTables es iniciar el servicio IPTables. Esto se puede llevar a cabo con el comando:

service iptables start

AvisoAviso
 

Los servicios IP6Tables deberían ser desactivados para utilizar el servicio IPTables con los siguientes comandos:

service ip6tables stop
chkconfig ip6tables off

Para hacer que IPTables se inicie por defecto cada vez que se arranca el sistema, debe cambiar el estado del nivel de ejecución en el servicio usando chkconfig.

chkconfig --level 345 iptables on

La sintaxis de IPTables está separada en niveles. El nivel principal es la cadena. Una cadena especifica el estado en el cual se puede manipular un paquete. El uso es como se muestra a continuación:

iptables -A chain -j target

La -A anexa una regla al final de un conjunto de reglas existente. La chain es el nombre de la cadena para una regla. Las tres cadenas embebidas de IPTables (esto es, las cadenas que afectan cada paquete que atraviesa la red) son INPUT, OUTPUT, y FORWARD. Estas cadenas son permanentes y no se pueden borrar.

ImportanteImportante
 

Cuando se crea un conjunto de reglas IPTables, es crítico recordar que el orden es importante. Por ejemplo, una cadena que especifica que cualquier paquete desde la subred local 192.168.100.0/24 sea descartado y luego se agrega una cadena (-A) la cual permite paquetes desde 192.168.100.13 (la cual está dentro de la subred restringida), entonces la regla anexada es ignorada. Primero debe configurar una regla para permitir 192.168.100.13 y luego configurar una regla de rechazo en la subred.

Para insertar una regla de forma arbitraria en una cadena de reglas existente, utilice -I, seguido por la cadena en la cual desea insertar la regla y un número de regla (1,2,3,...,n) donde desea que resida la regla. Por ejemplo:

iptables -I INPUT 1 -i lo -p all -j ACCEPT

La regla es insertada como la primera regla en la cadena INPUT para permitir el tráfico en loopback local del dispositivo.

7.2.1. Políticas básicas del Cortafuegos

Algunas políticas básicas establecidas desde el comienzo pueden servir como una base para la construcción de reglas más detalladas definidas por el usuario. IPTables utiliza políticas (-P) para crear reglas por defecto. Los administradores orientados a la seguridad usualmente eligen descartar todos los paquetes como una política y solamente permiten paquetes específicos basados en el caso. Las reglas siguientes bloquean todo los paquetes entrantes y salientes en una puerta de enlace de red.

iptables -P INPUT DROP
iptables -P OUTPUT DROP

Adicionalmente, se recomienda que cualquier paquete redirigido — el tráfico de la red que se debe enrutar desde el cortafuegos a su nodo destino — también se niegue, para restringir a los clientes internos de una exposición inadvertida a la Internet. Para hacer esto, utilice la regla siguiente:

iptables -P FORWARD DROP 

NotaNota
 

Hay una diferencia entre las acciones de objetivos REJECT y DROP cuando se trata con reglas añadidas. El objetivo REJECT rechaza el acceso y devuelve un error de connection refused a los usuarios que intentan conectarse al servicio. El objetivo DROP, como su nombre lo implica, descarta el paquete sin ningún tipo de advertencia a los usuarios. Los administradores pueden usar su propio juicio cuando utilicen estos objetivos; sin embargo, para evitar confusiones e intentos del usuario de continuar conectándose, se recomienda el objetivo REJECT.

Después de configurar las cadenas de políticas, cree las nuevas reglas para su red y requerimientos de seguridad particulares. Las secciones siguientes resaltan algunas reglas que puede implementar en el curso de la construcción de su cortafuegos IPTables.

7.2.2. Guardar y restaurar reglas IPTables

Las reglas del cortafuegos son válidas únicamente mientras el computador esté encendido. Si se reinicia el sistema, las reglas son vaciadas y reiniciadas automáticamente. Para guardar las reglas para que estas se puedan cargar más tarde, utilice el comando siguiente:

/sbin/service iptables save

Las reglas son almacenadas en el archivo /etc/sysconfig/iptables y aplicadas cuando el servicio es iniciado o reiniciado, incluyendo cuando la máquina es reiniciada.