IPtables: filtrado de ipset a través de reglas de reenvío existentes

IPtables: filtrado de ipset a través de reglas de reenvío existentes

Seguí una guía para configurar una Raspberry Pi para conectarla a una VPN, luego realizar una NAT del tráfico desde mi LAN a la VPN para protegerla.

También lo estoy usando para filtrado DNS (bloqueo de publicidad).

El filtrado de dominio no filtra las IP que no me gustan, por lo que estoy intentando aprender sobre los ipsets para prohibir la comunicación con amplias áreas de Internet.

Actualmente, mi script para hacer todo esto tiene el siguiente aspecto:

iptables -F

ipset restore < /etc/ipset-blacklist/ip-blacklist.restore

iptables -I INPUT 1 -m set --match-set blacklist src -j DROP
iptables -I FORWARD -m set --match-set blacklist src -j DROP
iptables -I OUTPUT -m set --match-set blacklist src -j DROP

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -L

¡Esto funciona!

Pero no entiendo por qué, y no creo que necesite las tres reglas de la lista negra para ENTRADA, ADELANTE y SALIDA. Siento que he logrado un resultado funcional de manera incorrecta y sin entenderlo.

¿Puede alguien más sabio que yo ver lo que estoy tratando de hacer, lo que he logrado y en qué me equivoqué, por favor?

Además, ¿para qué sirve el "1" en esta línea?

iptables -I INPUT 1 -m set --match-set blacklist src -j DROP

Éste es el objetivo, que ya está en parte conseguido: Objetivo de LAN

Respuesta1

Editar:: El "1" es para el orden de la regla.

La cadena ADELANTE es la única cadena necesaria, no las tres.

Supongo que esto se debe a que se reenvía todo el tráfico.

información relacionada