0% encontró este documento útil (0 votos)
135 vistas7 páginas

Guía Rápida de IPTables para Linux

Cargado por

yeyobar
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)
135 vistas7 páginas

Guía Rápida de IPTables para Linux

Cargado por

yeyobar
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

IPTables Cheatsheet

[Link]

IPTables Cheatsheet

1
IPTables Cheatsheet

Introducción IPTables
IPTables es una herramienta de firewall y filtrado de paquetes en sistemas operativos basados
en Linux. Proporciona un conjunto de comandos y reglas para controlar el tráfico de red entrante
y saliente en un sistema.

El propósito principal de IPTables es proteger y asegurar un sistema al permitir o bloquear el


tráfico de red en función de una serie de reglas predefinidas. Con IPTables, es posible configurar
políticas de seguridad, definir reglas de filtrado basadas en direcciones IP, puertos, protocolos y
otras características de los paquetes de red.

También se puede realizar traducción de direcciones de red (NAT), redireccionamiento de


puertos, limitación de ancho de banda y muchas otras acciones relacionadas con el control del
tráfico de red.

IPTables se ejecuta en el espacio del kernel y proporciona una interfaz de línea de comandos
para configurar y administrar las reglas de firewall.

Chains (Cadenas) predeterminadas


Las "chains" (cadenas) son listas secuenciales de reglas de firewall que se aplican a los paquetes
de red entrantes y salientes. Las chains determinan el flujo y el destino de los paquetes en función
de las reglas establecidas.

INPUT: Filtra los paquetes entrantes al sistema.


OUTPUT: Filtra los paquetes salientes del sistema.
FORWARD: Filtra los paquetes que se reenvían a través del sistema.

Actions (Acciones) comunes


Las "actions” son acciones que se aplican a los paquetes que coinciden con una regla específica.
Las acciones definen qué hacer con un paquete después de que haya coincidido con una regla en
una cadena determinada.

ACCEPT: Acepta el paquete y permite su paso.


DROP: Descarta el paquete sin enviar ningún mensaje de error.
REJECT: Descarta el paquete y envía un mensaje de error al remitente.
LOG: Registra el paquete en el registro del sistema y lo deja pasar.

2
IPTables Cheatsheet

Opciones y modificadores
Permiten definir reglas más específicas y detalladas. Estas opciones y modificadores permiten
agregar condiciones adicionales y personalizar aún más el comportamiento de las reglas.

-t <table>: Tabla en la que se aplican las reglas (nat, filter, forward, etc.).
-p <protocol>: Especifica el protocolo (tcp, udp, icmp, etc.).
-s <source>: Especifica la dirección IP o rango de direcciones de origen.
-d <destination>: Especifica la dirección IP o rango de direcciones de destino.
-i <interface>: Especifica la interfaz de entrada del paquete.
-o <interface>: Especifica la interfaz de salida del paquete.
-m <module>: Utiliza un módulo adicional para realizar coincidencias (state, tcp,
udp, etc.).

Módulos básicos
Son extensiones o complementos que agregan funcionalidad adicional a las reglas de firewall.
Los módulos proporcionan características específicas que se pueden utilizar para filtrar,
modificar o manipular paquetes de red de diferentes maneras.

Conntrack: Realiza el seguimiento de los paquetes en una conexión, identificando el


estado de la conexión en función de los paquetes que se han intercambiado. Los estados
de conexión comunes incluyen ESTABLISHED, RELATED y NEW. Estos estados se utilizan
para determinar si un paquete forma parte de una conexión ya establecida, si está
relacionado con una conexión establecida o si es el inicio de una nueva conexión.

State: Similar al módulo Conntrack, pero en una versión anterior. Proporciona una
forma simplificada de filtrar paquetes en función de su estado de conexión, lo que
facilita la configuración de reglas de firewall basadas en conexiones establecidas,
relacionadas y nuevas.

Multiport: Simplifica la especificación de múltiples puertos en una sola regla y


facilita el mantenimiento y la legibilidad de las reglas de firewall que involucran
múltiples puertos. Es especialmente útil cuando se necesitan aplicar acciones
similares en varios puertos o rangos de puertos.

Limit: Permite limitar la velocidad de los paquetes que coinciden con una regla en función
de un intervalo de tiempo específico. Permite controlar y restringir la tasa de paquetes que
se pueden enviar o recibir en una determinada regla, lo que ayuda a prevenir ataques de
inundación (flood) o limitar el consumo excesivo de recursos.

3
IPTables Cheatsheet

Comandos básicos
Muestra las reglas de IPTables actuales:

iptables -L

Limpia todas las reglas del firewall:

iptables -F

Agrega una regla al final de una cadena (chain) y define la acción a realizar (action):

iptables -A <chain> -j <action>

Inserta una regla en una posición específica en una cadena.

iptables -I <chain> <rule-number> -j <action>

Elimina una regla de una cadena:

iptables -D <chain> <rule-number>

Establece una política por defecto para una cadena:

iptables -P <chain> <action>

Reglas básicas para servicios de red


Servicio WEB
Permitir conexiones salientes al puerto 80 (HTTP) y 443
(HTTPS) hacia cualquier host remoto:
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

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


iptables -A INPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Permitir conexiones entrantes al puerto 80 (HTTP) y 443


(HTTPS) desde cualquier host remoto:

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


iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT


iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

4
IPTables Cheatsheet

Servicio SSH/SFTP
Permitir conexiones salientes SSH/SFTP hacia un host remoto
específico:

iptables -A OUTPUT -p tcp -d <remote-host-ip> --dport 22 -j ACCEPT


iptables -A INPUT -p tcp -s <remote-host-ip> --sport 22 -m conntrack --ctstate \
ESTABLISHED -j ACCEPT

Permitir conexiones entrantes SSH/SFTP desde cualquier host


remoto:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT


iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Servicio FTP Pasivo


Permitir conexiones FTP (pasivo) salientes hacia un host
remoto específico:

# Permitir conexiones salientes desde el host local al host FTP remoto:


iptables -A OUTPUT -p tcp -d <remote-host-ip> --dport 21 -j ACCEPT

# Permitir el tráfico entrante de conexiones establecidas y relacionadas para \


permitir las respuestas de los datos pasivos:
iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Permitir el tráfico entrante en el rango de puertos especificado para las \


conexiones de datos pasivos:
iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT

# Permitir respuestas salientes para el tráfico de datos que se establece en \


modo pasivo:
iptables -A OUTPUT -p tcp -m conntrack --ctstate ESTABLISHED -j ACCEPT

Permitir conexiones FTP (pasivo) entrantes desde cualquier


host remoto:

# Permitir conexiones entrantes desde cualquier host remoto:


iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Permitir conexiones entrantes a los puertos pasivos de FTP (puertos de datos):


iptables -A INPUT -p tcp -m multiport --dports 50000:50100 -j ACCEPT

# Permitir respuestas salientes desde el puerto de control FTP:


iptables -A OUTPUT -p tcp --sport 21 -m conntrack --ctstate ESTABLISHED,RELATED \
-j ACCEPT

# Permitir respuestas salientes desde los puertos pasivos de FTP:


iptables -A OUTPUT -p tcp -m multiport --sports 50000:50100 -m conntrack \
--ctstate ESTABLISHED -j ACCEPT

5
IPTables Cheatsheet

Servicio DNS
Permitir consultas DNS hacia cualquier host remoto:

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


iptables -A INPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED \
-j ACCEPT

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


iptables -A INPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Permitir consultas DNS desde cualquier host remoto:

iptables -A INPUT -p udp --dport 53 -j ACCEPT


iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT


iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Servicio PING
Permitir el ping hacia cualquier host remoto:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT


iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

Permitir el ping desde cualquier host remoto:

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT


iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

6
IPTables Cheatsheet

Otras reglas
NAT con firewall de red
Permitir conexiones web desde equipos de una intranet hacia servidores web en Internet,
atravesando el firewall de la red. Es necesario realizar NAT o enmascaramiento de IP privada
por una IP pública (asignación dinámica):

# Habilitar forwarding o reenvío de paquetes en Linux:


echo 1 > /proc/sys/net/ipv4/ip_forward

# Realizar SNAT (NAT en origen), la interfaz eth0 se corresponde con la interfaz \


publica (Internet):
iptables -t nat -A POSTROUTING -s [Link]/24 -o eth0 -j MASQUERADE

# Permitir conexiones web salientes, la interfaz eth1 se corresponde con la \


interfaz de la intranet:
iptables -A FORWARD -s [Link]/24 -o eth1 -p tcp -m multiport \
--dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

# Permitir las conexiones web entrantes desde Internet:


iptables -A FORWARD -i eth0 -p tcp -m multiport –sports 80,443 -m conntrack \
--ctstate ESTABLISHED -j ACCEPT

Flags TCP
Descartar los paquetes recibidos que
únicamente tengan activos los flags SYN y
FIN:

iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,FIN -j DROP

Logging
Denegar y registrar un log cuando un host diferente a la IP
[Link] intente conectarse al servicio SSH del servidor
local:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j LOG \


--log-prefix "SSH Connection Denied: "
iptables -A INPUT -p tcp --dport 22 -j DROP

Flood
Limitar los paquetes icmp ping recibidos a
un paquete por segundo desde cualquier
host remoto:

iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -m limit \


--limit 1/second -j ACCEPT

También podría gustarte