Tecnologías de la información
Hardening Linux 2 - IP Tables
Sistemas Operativos / Linux
La regla de firewall se interpreta junto con el orden y la política de la cadena. Aceptar un paquete tampoco inicia el servicio: abrir la puerta no invoca automáticamente al guardián. (¬ᴗ¬)
Las tablas IP es una herramienta de Linux para filtrar paquetes de red y controlar su tráfico. A grandes rasgos es un Firewall.
iptables forma parte del ecosistema Netfilter; ipchains e ipfwadm son herramientas anteriores, no nombres alternativos de la misma versión. La disponibilidad y el backend dependen de la distribución.
Utiliza reglas para determinar qué paquetes pueden transitar por la red.
En este ejercicio:
- Crearemos una regla para bloquear la salida a internet.
- Crearemos una regla para bloquear la salida a una IP observada de un dominio
- Crearemos una regla para permitir acceso SSH, aunque no tenga el servicio funcionando.
ejecutado en ubuntu
Índice
Bloqueo de salida a internet
Primero haremos un ping para demostrar conectividad:

Ahora insertaremos una regla:
sudo iptables -A OUTPUT -j DROP
donde:
-A añade una regla al final de la cadena indicada
-j especifica al objetivo de la regla lo que debe hacer si coincide.
Y veremos la regla creada con el comando:
sudo iptables -L -v -n
donde:
-L indica que debe listar
-v verboso
-n listar de manera numérica

Tiramos un ping (no hay conexión):

Finalmente eliminamos dicha regla con
sudo iptables -D OUTPUT -j DROP
donde:
-D indica la acción de eliminar una regla
y lanzamos un último ping para corroborar conexión.
Ahora volvemos a tener.
Bloqueo específico
Primero obtendremos una dirección IP observada del dominio a través de un ping a www.desafiolatam.com (172.67.175.45)
y creamos una regla:
sudo iptables -A OUTPUT -d 172.67.175.45 -j DROP
donde:
-d Indica destino

Arrojamos dos ping:
-
ping www.desafiolatam.com
-
ping www.google.com
Eliminamos y listamos la regla:

Regla para SSH
El proceso es similar. El comando que utilizamos es:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
donde:
-p indica el protocolo sobre el cual actuar
--dport indica el puerto de destino
Osea estamos agregando una regla (-A) de entrada (INPUT) al protocolo tcp (-p tcp) en el puerto 22 (--dport 22) y la acción que debe realizar (-j) es la de aceptar (ACCEPT)

Persistencia
Finalmente estas reglas no se guardan automáticamente (a menos que lo configuremos), pero la forma más sencilla es simplemente realizar:
sudo mkdir -p /etc/iptables
sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
La redirección necesita privilegios sobre el destino, por eso se ejecuta dentro del shell elevado. Exportar no configura la restauración al arrancar. Antes de sobrescribir, respaldar la configuración existente. El bloqueo por IP puede afectar servicios compartidos y no cubre otras IP o IPv6 del dominio. Una regla añadida al final también depende de las coincidencias anteriores.
Si nos queremos ir un poco más extensos podemos generar una automatización a través de un script, cronjob y servicios
Véase también
- Hardening Linux 3 - Reglas — Continuación de los ejercicios de hardening.
Referencia: Netfilter: documentación.
Alcance de la prueba: iptables(8). OUTPUT DROP sin destino afecta todo el tráfico IPv4 local que llegue a esa regla, incluido LAN, DNS y respuestas SSH, no solo Internet. No afecta automáticamente tráfico FORWARD ni IPv6. Usarlo solo en laboratorio con acceso de recuperación y configuración respaldada. ACCEPT/22 al final no vence un DROP anterior ni implica que 22 sea el único puerto permitido; revisar política y todas las reglas. El ping de una captura no prueba bloqueo de todo servicio del dominio.
+----------------------------------------+
| Floure & |
| Tachibana's guild |
| [Hikari · Nozomi · Vesper] |
| SEAL: sha256/12: 6701d4478aa9 |
| STATUS: LITURGY_IN_PROGRESS |
+----------------------------------------+