Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LINUX - UD12 - Configuracion de Iptables en Linux
LINUX - UD12 - Configuracion de Iptables en Linux
CONFIGURACIN DE IPTABLES EN
GNU/LINUX
Eduard Lara
IPTABLES
La comanda IPTABLES
se utiliza en linux para la
configuracin de un
firewall.
IPTABLES permite
realizar la programacin
de servicios NAT y Listas
de Acceso
1. INTRODUCCIN
El comando iptables se utiliza en linux para la
configuracin de un firewall.
La comanda iptables permite filtrar i/o modificar
algunos campos de los paquetes a medida que atraviesan
diferentes etapas (o chains) del nivel IP de la mquina
linux. Estas etapas son PREROUTING, FORWARD,
POSTROUTING, INPUT y OUTPUT.
Cuando el paquete atraviesa una de estas etapas, el
nivel IP consulta unas tablas donde la comanda iptables
permite aadir las reglas de procesado. Estas tablas son
mangle, filter y nat.
En la figura se
muestra las tablas
que hay en cada
etapa y el orden en
el que se consultan.
FORWARDING
PREROUTING
Proceso local
INPUT
PREROUTING
Proceso local
OUTPUT
POSTROUTING
Llamada al firewall
OUTPUT
Proceso Local
5
3. EXPRESIONES GENERICAS
- p <protocol>: identifica el protocolo
Para identificar los protocolos se puede utilizar el nmero
de protocolo o el nombre (fichero /etc/protocols), asi
como: icmp, udp, tcp, ip, etc
Se puede utilizar el nombre ALL para identificar todos los
protocolos (valor por defecto si no se utiliza -p)
Se puede invertir la expresin con el operador !
Ejemplos:
-p ! tcp Indica cualquier protocolo excepto TCP.
iptables A INPUT p tcp ... Aadir a la tabla filter de
la etapa INPUT una regla que se aplicar a todos los
paquetes TCP.
10
3. EXPRESIONES GENERICAS
-s <@IP fuente>: Identifica todos los paquetes con
<@IP fuente>. Se puede aadir una mscara para
identificar un rango de direcciones y se puede utilizar el
operador ! para negar la expresin.
Ejemplo:
iptables A INPUT s ! 192.168.0.0/24 aadir a la
tabla filter de la etapa INPUT una regla que se aplicar
a todos los paquetes que tengan una @IP fuente que no
pertenezca al rango 192.168.0.0/24.
-d <@IP destino>: Idem que antes para la direccin
destino.
11
3. EXPRESIONES GENERICAS
-i <interfcie-entrada>: Identifica una interfcie de
llegada de paquetes. Slo se puede aplicar en las etapas
INPUT, FORWARD y PREROUTING.
Ejemplo:
iptables A INPUT i eth0... aadir una regla que se
aplicar a todos los paquetes que lleguen por la interfcie
eth0.
-o <interfcie-salida>: Idem que antes para una
interfcie de salida. Slo se puede aplicar en las etapas
OUTPUT, FORWARD y POSTROUTING.
12
14
15
4. EXPRESION DE ESTADO
Este tipo de expresin se considera no implcita, y se
debe de aadir m state para poder aplicarla.
Los estados pueden ser:
NEW. Cuando se recibe un paquete que se
identifica como el de una conexin nueva, la conexin
se registra como NEW. Afecta a los paquetes TCP,
UDP y ICMP (aunque UDP y ICMP sean no orientados
a la conexin)
ESTABLISHED. Si se recibe un paquete en sentido
contrario asociado a una conexin registrada como
NEW, entonces la conexin se registra como
ESTABLISHED.
16
4. EXPRESION DE ESTADO
RELATED. Si se detecta una nueva conexin que se
interpreta que es consecuencia de una ya existente
(por ejemplo, porque se deduce que un paquete ICMP
de error se ha generado como consecuencia de una
conexin ya establecida), entonces la nueva conexin
se registra como RELATED.
--state <lista de estados>: identifica los paquetes de
una conexin que est en uno de los estados de <lista de
estados>.
Por ejemplo: iptables m state -state RELATED,
ESTABLISHED ... aplicar la regla a los paquetes de las
conexiones que estn en uno de estos estados.
17
5. TIPOS DE REGLAS
Los tipos de reglas pueden ser: ACCEPT, DROP, SNAT y
DNAT.
ACCEPT Acepta el paquete
DROP Descarta el paquete.
En caso de ser aceptado/descartado, se dejan de mirar el
resto de reglas de la tabla y se continua con las reglas del
resto de tablas y etapas que queden por atravesar.
SNAT NAT en la fuente. Para conexiones iniciadas
dentro de la red. Es equivalente a PAT (NAT por puertos)
DNAT NAT en el destino. Para conexiones iniciadas
fuera de la red. Por tanto lo primero que se hace es una
traduccin del destino. Es equivalente a NAT esttico.
18
5. LA REGLAS ACCEPT
Etapas en el camino de routing
POSTROUTING
SNAT
FORWARDING
ACLS
PREROUTING
DNAT
5. LA REGLA DNAT
Este tipo de regla se utiliza con la opcin -todestination para indicar la direccin donde debe hacerse
la traduccin.
Slo se puede poner en la tabla nat de las etapas
PREROUTING y OUTPUT.
Se puede especificar una direccin o un rango de
direcciones (y se distribuirn las conexiones
aleatoriamente entre las direcciones indicadas, es decir,
se har un load-balancing).
En el caso de una expresin TCP o UDP tambin se
puede indicar un puerto o rango de puertos (para
distribuir las conexiones entre el rango de puertos).
20
5. LA REGLA DNAT
Etapas en el camino de routing
POSTROUTING
SNAT
FORWARDING
ACLS
PREROUTING
DNAT
5. LA REGLA SNAT
Tiene una sintaxis anloga a la de DNAT, pero con la
opcin -to-source.
Slo se puede poner en la tabla nat de la etapa
POSTROUTING.
iptables t nat A POSTROUTING p tcp o ppp0 j SNAT -tosource 200.10.10.10-200.10.10.20:1024-32000
Cambiar las direcciones fuente de los paquetes que salgan por la
interficie ppp0 por una de las direcciones del rango 200.10.10.10200.10.10.20 y puerto del rango 1024-32000. Si no se indica el rango
de puertos y es necesario cambiarlo (para que se haga PAT), entonces
los puertos inferiores a 512 se mapean a otro puerto inferior a 512, e
igualmente para los rangos entre 512-1023 y 1024 (para conservar la
semntica del puerto). A los paquetes de una misma conexin se les
aplica la misma traduccin de direccin/puerto
22
5. LA REGLA SNAT
Etapas en el camino de routing
POSTROUTING
SNAT
FORWARDING
PREROUTING
ACLS
DNAT
23
24
27