0% encontró este documento útil (0 votos)
225 vistas48 páginas

Reglas IPTABLES

Este documento describe cómo configurar un firewall básico utilizando la herramienta iptables en Linux. Explica que iptables permite filtrar paquetes IP examinando campos como el protocolo, puertos, direcciones IP y más. Usa tablas como filter, nat y mangle con cadenas que contienen reglas que definen el tráfico al que se aplican y las acciones como aceptar o descartar paquetes. Proporciona ejemplos de comandos iptables para configurar reglas básicas.

Cargado por

sergio Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
225 vistas48 páginas

Reglas IPTABLES

Este documento describe cómo configurar un firewall básico utilizando la herramienta iptables en Linux. Explica que iptables permite filtrar paquetes IP examinando campos como el protocolo, puertos, direcciones IP y más. Usa tablas como filter, nat y mangle con cadenas que contienen reglas que definen el tráfico al que se aplican y las acciones como aceptar o descartar paquetes. Proporciona ejemplos de comandos iptables para configurar reglas básicas.

Cargado por

sergio Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Objetivos de Clase

•Conocer herramientas firewall IPTABLES.


Firewall con iptables.
Este laboratorio se centra en la creación, básica,
de un firewall usando la herramienta iptables
disponible en todas las distribuciones Linux.
Esta herramienta permite filtrar paquetes IP
“mirando” ciertos campos.
Dependiendo de las políticas, que se han
configurado, toma las decisiones acerca de qué
paquetes serán descartados (DROP) y qué
paquetes serán procesados normalmente.
Firewall con iptables.
• Criterios de filtrado:

• Tipo de protocolo: TCP, UDP, ICMP, etc.


• Número de puerto (TCP/UDP)
• Tipo de paquete: SYN/ACK, datos, petición de
eco de ICMP, etc.
• Dirección de origen del paquete: de donde
proviene
• Dirección de destino del paquete: a donde se
dirige
Firewall con iptables.
Para su funcionamiento utiliza tablas: Las tablas
son un conjunto de cadenas. Cada tabla usa un
conjunto de cadenas que contienen las reglas
que van a definir a quién se le aplica lo que
quiero hacer y lo que quiero hacer se defino con
los objetivos (-j).
La tabla filter para filtrar paquetes.
La tabla nat para traducción de direcciones IP
La tabla mangle para la manipulación de
paquetes.
Firewall con iptables.
Sintaxis de iptables:
iptables -tabla -cadena -regla -acción

Ejemplo:
iptables -t nat -A POSTROUTING -s [Link]/24 -o eth0 -j MASQUERADE
Firewall con iptables.
La tabla filter contiene tres cadenas, que van a
indicar por donde pasa el paquete, o mejor dicho
va a analizar los paquetes que entran, salen o
pasan por el firewall.
La cadena de entrada es INPUT. Todos los
paquetes destinados al propio equipo.
La cadena de salida es OUTPUT. Todos los
paquetes generados por el propio firewall.
La cadena que atraviesa el firewall es FORWARD.
Todos los paquetes que vienen de una red y van
dirigidos a otra, pero que pasan por el firewall.
Firewall con iptables.
La tabla nat contiene tres cadenas, que van a
indicar cambios en la dirección origen y destino
del paquete (MASQUERADE).
La cadena PREROUTING. Cambia las direcciones
IP a medida que van entrando por la interfaz (-i
eth0).
La cadena POSTROUTING. Cambia las direcciones
IP de los paquetes que están a punto de salir por
la interfaz (-o eth0).
La cadena OUTPUT. Cambia las direcciones IP de
los paquetes generados localmente.
Firewall con iptables.
La tabla mangle contiene todas las cadenas anteriores.
Permite marcar y clasificar el tráfico, por ejemplo el tipo
de servicio (TOS) para proveer calidad de servicio (QoS)
La cadena PREROUTING. Para modificar los paquetes
entrantes antes del ruteo.
La cadena POSTROUTING. Para modificar los paquetes antes
de que dejen el firewall, pero después de tomar las decisiones
de enrutamiento.
La cadena OUTPUT. Para modificar los paquetes que se
generan localmente.
La cadena INPUT. Para modificar los paquetes que se
generan localmente.
Firewall con iptables.
Comandos:

-A para añadir una regla.


-D para borrar alguna regla
-R para reemplazar alguna regla
-I para insertar una regla en una cadena
-L para desplegar la lista completa de reglas
-F para eliminar todas las reglas
-Z para iniciar desde 0 los contadores de una cadena
-N para crear una nueva cadena
-X para eliminar una cadena
-P para indicar la política de alguna cadena
-E para cambiar el nombre de una cadena
Firewall con iptables.
Opciones:

-p para indicar el protocolo ya sean tcp, udp, icmp


-s para indicar la ip de origen
-d para indicar la ip de destino
-i para indicar la interfaz de entrada (eth0, eth1)
-o para indicar la interfaz de salida (eth0, eth1)
-f para indicar que hablamos de un paquete fragmentado
-j para indicar qué hacer con el paquete
-m para indicar cual será la comparación que usaremos para la
regla
• --dport para indicar puerto destino
• --sport para indicar puerto origen
• --state para indicar estado de la conexión
Firewall con iptables.
Acciones:
DROP: para indicar que el paquete será eliminado
ACCEPT: para indicar que el paquete será
admitido y pasara por el firewall
REJECT: para indicar que se rechazara cualquier
tipo de paquete
LOG: para indicar que ese tráfico deberá de
almacenarse en nuestro syslog.
DNAT: Dirección de Destino para el NAT
SNAT: Dirección de Origen para el NAT estático.
MASQUERADE: Forma especial de SNAT utilizada
para las direcciones IP Dinámicas
Firewall con iptables.
Primeros pasos:

Ver la versión de Iptables, si existe: iptables –V


Ver las reglas que están actualmente configuradas: iptables
–nL
Borrar reglas configuradas: iptables –F
Crear políticas por defecto:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Las políticas por defecto se aplican cuando ninguna


entrada específica se ha agregado.
Firewall con iptables.
Primeros pasos:

FLUSH de reglas, limpiado.


iptables −F (limpia todas las reglas, excepto las por defecto)
iptables −X (elimina una cadena)
iptables −Z (contador de paquetes a cero)

Ojo que si no se especifica una cadena, todo se aplica a la


por defecto, que es la tabla filter.
Ojo también, que las políticas por defecto no se borrar,
puedes cambiarlas aplicando una nueva.
Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena INPUT para descartar todos los
paquetes que se originan desde la dirección [Link].

iptables –A INPUT –s [Link] –j DROP

Esta regla bloquea todo lo que viene de un equipo


específico.
Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena INPUT para rechazar todos los
paquetes que se originan desde la dirección [Link].

iptables –A INPUT –s [Link] –j REJECT

Esta regla rechaza todo lo que viene de un equipo


específico, pero envía un mensaje de error ICMP de destino
inalcanzable, entregando información de valiosa como la
dirección ip.
Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena INPUT para aceptar todos los
paquetes que se originan desde la dirección [Link].

iptables –A INPUT –s [Link] –j ACCEPT

Esta regla acepta todo lo que viene de un equipo específico.


Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena INPUT para descartar todos los
paquetes que se originan desde la red [Link].

iptables –A INPUT –s [Link]/24 –j DROP


Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena INPUT para conexiones locales,
aplicaciones que se comunican dentro del equipo como
mysql.

iptables –A INPUT -i lo –j ACCEPT

Esta regla analiza todo lo que entre por la interfaz localhost


Firewall con iptables.
Ejercicios:
Invertir una regla con !

iptables –A INPUT –j ACCEPT ! –s [Link]

Esta regla permite aceptar todo excepto lo que viene desde


el equipo con ip [Link].
Para probar esto primero creamos una política por defecto
de DROP con iptables -P INPUT DROP.
Podemos cambiar la ip del equipo remoto para ver el efecto
de aceptar paquetes desde otra ip.
Firewall con iptables.
Ejercicios:
Añadir una regla a la cadena OUTPUT para descartar todos
los paquetes que se originan en nuestro equipo.

iptables –A OUTPUT –j DROP


Firewall con iptables.
Ver los paquetes que han atravesado una cadena. Los
contadores de paquetes.

iptables -L -v
Firewall con iptables.
Poner el contador de paquetes a cero. Limpiar el
contador de paquetes.

iptables -Z
Firewall con iptables.
Eliminar las reglas iptables. Un flush o
limpiado de reglas.
iptables -F
En el ejemplo creamos
una política para descartar
todo lo que venga al
equipo y luego se limpia
y vemos nuevamente
las reglas.
Firewall con iptables.
Ejercicios:
Hasta ahora hemos creado reglas para permitir o rechazar
todos los paquetes, pero podemos agregar reglas más
específicas, aplicadas a ciertos tipos de paquetes con la
opción -p para indicar el protocolo.

Añadir una regla a la cadena INPUT para rechazar paquetes icmp.

iptables –A INPUT –p icmp –j DROP

Añadir una regla a la cadena INPUT para rechazar paquetes icmp,


con mensaje de error icmp.

iptables –A INPUT –p icmp –j REJECT


Firewall con iptables.
Ejercicios:
Podemos incluso, si usamos TCP o UDP, especificar el
puerto origen (--sport) o el puerto destino (--dport) de los
paquetes.

Permitir el acceso a nuestro servidor web (puerto TCP 80).

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

Permitir el acceso a nuestro servidor ftp (puerto TCP 20 y


21).

iptables -A INPUT -p tcp –dport 20:21 -j ACCEPT


Firewall con iptables.
Ejercicios:
Permitir administrar por ssh nuestro equipo desde un origen
definido.

Permitimos a la máquina con IP [Link] conectarse a


nuestro equipo a través de SSH.

iptables –A INPUT –s [Link] –p tcp --dport 22 –j ACCEPT


Firewall con iptables.
Ejercicios:
Rechazamos a los equipos de la red [Link]/24
realizar un telnet a nuestro equipo.

iptables –A INPUT –s [Link]/24 –p tcp --dport 23 –j


DROP
Firewall con iptables.
Ejercicios:
Rechazamos a todas las direcciones origen realizar un ping.
Podemos indicar todas las direcciones ip con [Link]/0. Esto
hace coincidencia con todas las direcciones ip con cualquier
máscara.

iptables –A INPUT –s [Link]/0 –p icmp –j DROP


Firewall con iptables.
Ejercicios:
Podemos agregar reglas que analicen los paquetes que salen
o entran por una interfaz específica.
eth0 conectada a un router o Internet, eth1 conectada a la
LAN.

Rechazamos todo el tráfico que venga a nuestro equipo


desde cualquier lugar, pero que entre por la interfaz eth0.

iptables –A INPUT –s [Link]/0 –i eth0 –j DROP


Firewall con iptables.
Ejercicios:

Rechazamos todo el tráfico desde una red remota, como


Internet, a través de la interfaz eth0 y que vaya a la LAN.

iptables –A FORWARD –d [Link]/24 –i eth0 –j DROP


Firewall con iptables.
Ejercicios:

Cerramos un rango de puertos. En este caso los puertos bien


conocidos. Nos protegemos cerrando todos los puertos de
protocolos bien conocidos, tanto TCP como UDP.

iptables -A INPUT -s [Link]/0 -p tcp -dport 1:1024 -j


DROP

iptables -A INPUT -s [Link]/0 -p udp -dport 1:1024 -j


DROP
Firewall con iptables.
Ejercicios:

Si tenemos un servidor Web debemos exponerlo al mundo,


por lo tanto permitimos que, desde cualquier lugar, realicen
solicitudes http y https.
Aceptamos solicitudes http que vengan desde cualquier
lugar, pero que entren por la interfaz eth0.
iptables -A FORWARD -s [Link]/0 -i eth0 -p tcp --dport 80
-j ACCEPT

Y también http seguro (https).


iptables -A FORWARD -s [Link]/0 -i eth0 -p tcp --dport
443 -j ACCEPT
Firewall con iptables.
Ejercicios:

Permitimos que los equipos de nuestra red realicen


consultas DNS:
Como DNS utiliza el puerto 53 UDP y TCP, debemos permitir
ambos, que se originen en nuestra red y que entren por la
interfaz conectada ala red local.
iptables -A FORWARD -s [Link]/24 -i eth1 -p tcp --dport
53 -j ACCEPT

iptables -A FORWARD -s [Link]/24 -i eth1 -p udp --dport


53 -j ACCEPT
Firewall con iptables.
Ejercicios:

Permitimos enviar y recibir e-mail a los equipos de nuestra


red, desde clientes de correo electrónico:

iptables -A INPUT -s [Link]/24 -p tcp --dport 25 -j


ACCEPT

iptables -A INPUT -s [Link]/24 -p tcp --dport 110 -j


ACCEPT
Firewall con iptables.
Ejercicios:

Si tenemos otra red anexada, como una DMZ es


recomendable bloquear el acceso desde esa red a la red
local para evitar saltos desde el exterior a nuestra red,
pasando por la DMZ.

iptables -A FORWARD -s [Link]/24 -d [Link]/24 -j


DROP

Esto bloquea cualquier intento de conexión que se origine


en la DMZ y que vaya dirigida a la red local.
Firewall con iptables.
Ejercicios:

Si comunicamos un equipo en una red con otro en otra red


usando alguna aplicación específica que usa un puerto
específico debemos permitir el tráfico en ambos sentidos. O
sea su consulta y la correspondiente respuesta.

iptables -A FORWARD -s [Link] -d [Link] -p tcp --dport


5432 -j ACCEPT
iptables -A FORWARD -s [Link] -d [Link] -p tcp --sport
5432 -j ACCEPT
Firewall con iptables.
Ejercicios:

Para evitar el spoofing de ip, o sea, que no ingresen


direcciones ip, del rango de la LAN, por la interfaz conectada
a la LAN.

iptables -A FORWARD -s [Link]/24 -o eth1 -j DROP


Firewall con iptables.
Ejercicios:

Para evitar ataques de denegación de servicio SYN flood a


nuestro servidor Web.

iptables -A INPUT -p tcp --sport 80 -m state --state


RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

Esto permite bloquear los segmentos que vienen con el flag


SYN en 1, o sea, aquellos que inician una conexión TCP, la
segunda línea permite realizar solicitudes Web.
La primera línea acepta paquetes relacionados a una
solicitud interna o las conexiones establecidas en la LAN.
Firewall con iptables.
Ejercicios:

Rechazamos las conexiones que se originen de la máquina


con la dirección física que se indica.

iptables –A INPUT –m mac –mac-source [Link] –j


DROP

La opción -m indica match, o sea una coincidencia. De esta


manera bloqueamos el tráfico de un equipo específico
indicando su dirección MAC.
Firewall con iptables.
Ejercicios:
Para agregar una regla a una ubicación específica usamos la
opción -I indicando la cadena y un número para referir la
ubicación.
iptables -I INPUT 1 -i lo -p all -j ACCEPT
Firewall con iptables.
iptables realiza dos funciones, principalmente
filtrado de paquetes (tabla filter) y traducción de
direcciones de red (tabla nat).
NAT son las siglas del inglés network address
translation o traducción de direcciones de red y
es un mecanismo que permite traducir una
dirección IP privada en una pública,
fundamentalmente permite compartir una
dirección IP pública por muchos equipos.
Firewall con iptables.
Source NAT:
Este tipo de NAT es en el que se cambia la
dirección IP de origen, cuando estamos
utilizando una dirección IP privada en una red
local y establecemos una conexión con un
equipo de Internet. Un equipo de la red
(gateway) se encarga de cambiar la dirección IP
privada origen por la dirección IP pública, para
que el equipo de Internet pueda contestar.
Firewall con iptables.
El NAT puede ser dinámico o estático. El
dinámico se usa cuando hemos contratado
Internet y el ISP asigna el direccionamiento
público por DHCP (ADSL), o sea, no sabemos
cuál es la dirección IP que nos asignará. Y el
estático es cuando hemos contratado una
conexión dedicada, o sea, sabemos cuál es
nuestra IP pública y esta nunca cambia.
SNAT: Cuando la dirección IP pública que
sustituye a la IP origen es estática (SNAT
significa Static NAT o Source NAT).
MASQUERADE: Cuando la dirección IP pública que
sustituye a la IP origen es dinámica, lo más
Firewall con iptables.
Destination NAT o port forwarding
Este tipo de NAT se utiliza cuando tenemos
algún servidor en una máquina detrás del
gateway (nuestra red). En este caso será un
equipo externo el que inicie la conexión (desde
Internet), ya que solicitará un determinado
servicio y el gateway debe modificar la
dirección IP destino.
El paquete va destinado al puerto indicado.
Firewall con iptables.
Destination NAT o port forwarding
Pasos:
Un equipo cualquiera de Internet, con dirección IP
pública [Link] desea conectarse por ssh (tcp
22) al equipo [Link], nuestro servidor.
Establece la conexión con el equipo [Link] (con
puerto origen 65.003), nuestro gateway que no tiene
ningún servicio ssh escuchando en el puerto tcp 22,
pero que tiene una regla de DNAT para que todo lo
que llegue a ese puerto se lo envíe a un equipo de
su red local ([Link]), por lo que cambia la
dirección IP destino ([Link]) por la
[Link] y lo registra en sus tablas de NAT.
Firewall con iptables.
Destination NAT o port forwarding
Pasos:
Al equipo [Link] llega una solicitud al puerto
tcp 22 y la respuesta tiene las siguientes
características: IP origen [Link], puerto tcp
origen 22, IP destino [Link] y puerto tcp
destino 65003.
Como nuestro equipo tiene una dirección IP privada no
puede navegar por lo que debe modificar su IP a una
pública. El gateway cambia ahora la dirección IP
origen por su dirección IP pública ([Link]) y el
paquete llega de vuelta a su destino.
Firewall con iptables.
NAT

Listar reglas configuradas en la tabla nat:

iptables -t nat -L -n
Firewall con iptables.
NAT

Borrar las reglas de la tabla nat y poner a 0 los


contadores de paquetes:

iptables -t nat -F
iptables -t nat -Z

También podría gustarte