Configuração incorreta do iptables novato com regras declaradas

1

Eu estava configurando um servidor, e tentei instituir o que eu achava que eram algumas regras bem simples do iptables:

[root host ~]
- iptables -L 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[root host ~] 
- iptables -P INPUT DROP

O que resultou no enforcamento da minha sessão SSH. Agora não consigo acessar a máquina por SSH, mas todas as outras permissões (HTTP, etc.) parecem estar funcionando bem.

Eu fiz um pouco mais de pesquisa após o fato, mas isso ainda parece uma configuração correta para mim.

Parece-me que entendi mal as ofertas de filtragem do iptables declaradas. É assim mesmo? O que há de errado com essa foto?

EDIT: Eu adaptei as minhas regras de o artigo debian iptables , para que você possa ver o linhas de entrada originais lá.

DOUBLE EDIT: Eu deveria estar fazendo o trabalho de perna aqui; Eu recriou as entradas originais do artigo do Debian

-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    
por Michael Shick 09.07.2012 / 13:24

2 respostas

0

Acontece que o problema era minha segunda regra:

-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

Tolamente eu não verifiquei novamente as interfaces no VPS e, como é baseado no OpenVZ, uma interface vm interna tinha o endereço 127.0.0.2, mas não era tecnicamente o loopback que acionava essa regra.

EDITAR: Não; Eu estou errado de novo! Descobriu-se, finalmente, que meu VPS permitia a inserção de regras baseadas em estado, mas nunca correspondia a elas, de modo que conexões estabelecidas eram descartadas quando eu definia a política como DROP.

    
por 10.07.2012 / 05:25
0

Esta regra é bastante suspeita:

REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable

A menos que você tenha certeza de que não se aplica à interface de loopback (lo), ela provavelmente quebrará todos os tipos de coisas.

    
por 09.07.2012 / 13:43