Não é possível efetuar ping fora da rede com essas regras de IP

1

Aqui está o meu script de firewall para um servidor de desenvolvimento interno. Eu quero ser capaz de sair com http / https, mas eu só quero o servidor acessível via ssh / http de dentro da rede interna.

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -A INPUT -i eth0 -p tcp -s 10.1.1.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 10.1.1.0/24 --dport http -j ACCEPT

Parece funcionar como eu esperava, mas por alguma razão eu não consigo parecer acessar o mundo exterior. Por exemplo:

super@dev0:~$ ping google.com
ping: unknown host google.com

Como defini minha política de SAÍDA padrão para ACCEPT, não seria possível sair sem limites? O que eu estou entendendo mal?

    
por Aaron Lozier 02.02.2012 / 20:02

2 respostas

3

Você não está permitindo que pacotes relacionados voltem. O que você está vendo não é apenas que o ping não funciona, mas que você não pode nem mesmo resolver nomes DNS. Você precisa fazer uma correspondência de estado para os pacotes ESTABLISHED e RELATED:

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Você pode também permitir ping de entrada também:

iptables -I INPUT 2 -p icmp --icmp-type echo-request -j ACCEPT
    
por 02.02.2012 / 20:14
1
Os

pings usam o ICMP. Suas regras com estados são para TCP. Os pacotes ICMP saem da sua rede, mas são bloqueados com a política padrão "INPUT DROP".

    
por 02.02.2012 / 20:11

Tags