IPtables impedindo pacotes de saída

0

Estou tentando configurar regras de firewall em um servidor web RHEL, para que meu servidor da Web possa servir páginas da Web e, ao mesmo tempo, fazer o download de arquivos remotos usando o curl / wget. Problema que estou experimentando é que eu só posso fazer um ou outro. Eu tentei tweaking minhas configurações iptables e eu isolei o problema para estar com pacotes de saída, porque se eu ativar toda a saída, ele funciona muito bem.

Isso é o que estou usando:

iptables -A INPUT -p tcp -m tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j DROP
iptables -A OUTPUT -p tcp -m tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp -m multiport --sports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Poderia ser algo a ver com ESTABLISHED, RELATED na minha regra de saída para http / https?

    
por Python Novice 06.04.2014 / 07:25

1 resposta

1

Você deixou cair claramente todos os seus pacotes de saída que não correspondem a nenhuma das regras:

iptables -P OUTPUT DROP

E ao mesmo tempo você não aceitou nenhum pacote que constitua novas conexões e todas as suas regras operam apenas em conexões estabelecidas que nunca podem ser realmente estabelecidas:

iptables -A OUTPUT ... -m state --state ESTABLISHED,RELATED ...

Por favor, leia a página de manual para iptables e especialmente a parte que descreve -m state . Então você não criará firewalls que bloqueiem explicitamente suas novas conexões de saída e, então, ficará surpreso ao ver que suas conexões de saída estão sendo bloqueadas.

Pessoalmente, não acho que seja uma boa ideia usar a política DROP em INPUT e OUTPUT chains e não me importo com a sua utilização na cadeia FORWARD . Eu sempre uso regras explícitas REJECT / DROP na e da cadeia. REJECT geralmente é melhor para o começo, pois não apresenta atrasos e tempos limite.

A melhor solução para você é mudar a política OUTPUT para ACCEPT e remover as regras OUTPUT .

    
por 06.04.2014 / 08:36