IPtables: filtragem de ipset por meio de regras de encaminhamento existentes

IPtables: filtragem de ipset por meio de regras de encaminhamento existentes

Segui um guia para configurar um Raspberry Pi para conectar-se a uma VPN e, em seguida, NAT o tráfego da minha LAN para a VPN para protegê-lo.

Também estou usando para filtragem de DNS (adblocking).

A filtragem de domínio não filtra os IPs que não gosto, por isso estou tentando aprender sobre ipsets para proibir a comunicação com vastas áreas da Internet.

Atualmente, meu script para fazer tudo isso é assim:

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

Isso funciona!

Mas não entendo o porquê e não acho que precise de todas as três regras da lista negra para INPUT, FORWARD e OUTPUT - sinto que alcancei um resultado funcional da maneira errada - e sem entendê-lo.

Alguém mais sábio do que eu pode ver o que estou tentando fazer, o que consegui e onde errei, por favor?

Além disso, para que serve o "1" nesta linha:

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

Este é o objetivo, que já está de certa forma alcançado: Objetivo da LAN

Responder1

Editar:: O "1" é para a ordem da regra.

A cadeia FORWARD é a única cadeia necessária, não todas as três.

Presumo que isso ocorra porque todo o tráfego está sendo encaminhado.

informação relacionada