Há algumas coisas que devem ser observadas aqui: a primeira é que, na prática, o NAT fornece um firewall que impede qualquer tráfego de entrada, EXCETO onde ele está associado ao tráfego de saída. Isso é o que você configurou acima. A primeira linha ativa a tradução de endereços, a segunda permite a entrada de pacotes associados aos de saída ea terceira linha permite a passagem de todos os pacotes de saída. OUTBOUND aqui significa tráfego da sua LAN para a INTERNET, INBOUND significa da INTERNET para sua LAN.
Se você quisesse apenas navegar na Web, há algumas maneiras de fazer isso. A primeira seria permitir somente solicitações de saída para a porta 80 (e aceitar as solicitações de entrada associadas). Você poderia fazer isso da seguinte maneira:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp -dport 80 -o eth0 -j ACCEPT
iptables -A FORWARD -j DROP
As duas primeiras regras são as mesmas, a terceira apenas permite que as solicitações da porta 80 saiam da rede e a quarta pode ou não ser necessária, dependendo de seus padrões - ela diz para descartar todos os outros tráfegos encaminhados.
Isso coloca alguns problemas em potencial. Para navegar em um site, você precisa fazer uma pesquisa de DNS para converter o nome de domínio em um endereço IP. Se o seu roteador está fornecendo DNS, então você está OK (as regras acima tratam apenas do tráfego que está sendo encaminhado através do roteador, não do tráfego originado ou terminado no roteador). Se você estiver usando servidores DNS externos, também precisará permitir o DNS. O DNS fala na porta TCP e UDP 53, então você precisa adicionar:
iptables -A FORWARD -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p ucp --dport 53 -j ACCEPT
Quando se trata de usar IPTABLES, você está certo que a ordem é importante. As regras são tratadas na ordem em que estão na tabela, portanto, se você tiver uma regra ACCEPT
antes de uma regra DROP
na qual as duas regras correspondam, o tráfego será processado. Você pode INSERIR regras no início de uma tabela usando iptables -I
ou pode anexar regras ao final da tabela usando iptables -A
.
Existem também vários caminhos, nem todos os pacotes passam por todos os caminhos. Isso pode ficar complexo, mas no caso simples acima você tem 3 caminhos para se preocupar: INPUT
, OUTPUT
e FORWARD
. INPUT
são solicitações destinadas ao roteador. OUTPUT
são solicitações originadas no roteador. FORWARD
são solicitações que entram e saem do roteador.