Em uma configuração limpa do iptables:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -N VPN
iptables -A INPUT -i $vpn -j VPN
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o $vpn -j VPN
iptables -A OUTPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A VPN -j ACCEPT
Substitua $ vpn pela interface criada pelo seu cliente vpn. Política para os pacotes recebidos:
-
-i lo -j ACCEPT
Aceitar pacotes do loopback -
-m conntrack --ctstate RELATED,ESTABLISHED
Aceite as conexões já estabelecidas. -
-i $vpn -j VPN
Os pacotes recebidos da interface da VPN serão manipulados pela cadeia de VPNs recém-criada (-N VPN
) na qual você pode definir toda a política da VPN. Você pode simplesmente aceitar os pacotes nesta linha e na linha correspondente da cadeia OUTPUT, mas eu acho que é logicamente mais claro desta maneira. -
-j REJECT --reject-with icmp-host-prohibited
Rejeita todos os outros. -
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
Também rejeita todas as solicitações de encaminhamento.