andrelopes.mrx
(usa FreeBSD)
Enviado em 02/01/2010 - 19:22h
boa noite Amigo,
Segue abaixo algumas dicas, que podem te ajudar ANTES de você tentar fazer seu primeiro firewall com iptables (na verdade qualquer firwall)
* Conexões do tipo, client / server, tem 2 caminhos, sempre: ida e volta.
* As chains que você citou acima funcionam da sequinte maneira:
-- INPUT: pacotes que são recebidos e destinados ao próprio host
-- OUTPUT: pacotes que são enviados pelo próprio host
-- FORWARD: pacotes que passam pelo host, mas não são destinados, nem originados por ele.
e vamos colocar aqui "host", como o próprio firewall.
Então usando como cenário, o que você está tentando fazer,
1 - Limpa tudo
2 - Bloqueia tudo (INPUT, OUTPUT e FORWARD)
3 - Libera OUTPUT para google.com
O pacote é enviado, (uma regra de OUTPUT permite isso), e webserver recebe a requisição processa e devolve, mas quando ela chega, é dropada, pois a policy default é DROP, e não existe nenhuma regra dizendo que pacotes vindos de "google.com", podem ser recebidos.
Existem também outras coisas que você deve pensar
- Grandes portais usam Farms de Webservers, ou seja, diferentes servidores (diferentes ip´s), podem responder suas requisições, e não é muito aconselhavam usar resolução de nomes em scripts iptables.
- O iptables é muito poderoso, não se prenda apenas em regras de origem destino, o iptables é statefull você pode criar regras baseada nos status dos pacotes, ou portas, ou protocolos, ou seja, as possibiliades são muitas.
Espero ter contribuído com teu aprendizado.
André Gustavo
blog:
http://blog.mrx.com.br
gtalk: andre@mrx.com.br