Buckminster
(usa Debian)
Enviado em 17/06/2013 - 12:36h
A chain INPUT são os pacotes endereçados ao próprio servidor, por exemplo, quando você abre um site no próprio servidor e ele estiver bloqueado na chain INPUT, o Iptables vai deixar passar o pacote na ida, mas vai bloquear na volta.
A chain OUTPUT são os pacotes originados no próprio servidor. No mesmo caso acima, se você abrir um site no servidor e ele estiver bloqueado na chain OUTPUT, o Iptables não vai nem enviar o pacote.
A chain FORWARD são os pacotes que passam pelo servidor. Ou seja, são os pacotes que vem e vão das redes interna e externa. Você pode bloquear esse site na chain INPUT, mas se não estiver bloqueado na chain FORWARD, esse mesmo site quando solicitado por uma máquina da rede, o Iptables vai deixar passar.
É lógico que no meio disso tudo aí, deve-se levar em conta as políticas padrões e a posição das regras dentro do script. O Iptables lê as regras de cima para baixo, ou seja, se uma regra estiver em conflito com outra, vale a regra que vem por primeiro.
Essas tuas regras
iptables -I INPUT -s ip_externo -j DROP
iptables -I OUTPUT -d ip_externo -j DROP
podem até funcionar por causa do mascaramento (MASQUERADE), porém, isso causará uma certa lentidão na rede, pois o Iptables analisará os pacotes e trocará o IP de origem pelo IP do gateway (na ida) e na volta trocará o IP do gateway pelo IP da máquina que solicitou o pacote, e fará isso com todos os pacotes, na ida e na volta.
O melhor é bloquear os pacotes das redes interna e externa na chain FORWARD.