iptables regra FORWARD

2

Estou executando 3 máquinas virtuais com o Fedora 19. A máquina B é configurada com dois adaptadores de rede e fornece um canal que entre a máquina A e a máquina C.

O IP da máquina é definido como 192.168.1.1 e o IP da máquina C está definido como 172.16.1.1 . Na máquina B eu tenho um adaptador com IP 192.168.1.254 e outro adaptador com IP 172.16.1.254 .

Eu criei esta regra na máquina B (ela está funcionando como um roteador):

iptables -P INPUT DROP

iptables -A INPUT -p icmp -j ACCEPT

E assim, nenhuma conexão entre as máquinas é feita, a menos que o PING permita a comunicação entre a máquina A e B.

Agora eu quero criar uma regra no roteador que permita a comunicação de HTTPS entre a rede externa (máquina C) e a rede interna (máquina A)

Eu adicionei esta regra na máquina B:

iptables -A FORWARD -o p7p1 -p tcp --dport 443 -d 192.168.1.1 -j ACCEPT

Onde p7p1 é a interface na máquina B que se conecta à máquina A. Eu também tentei:

iptables -A FORWARD -i p8p1 -o p7p1 -p tcp --dport 443 -d 192.168.1.1 -j ACCEPT

Onde p8p1 é a interface na máquina B que se conecta à máquina C.

Agora, na máquina A eu faço nc -l 443 e na máquina C nc 192.168.1.1 443 , mas estou recebendo Ncat: Connection timed out

O que há de errado com minha regra?

    
por Favolas 15.10.2013 / 10:07

1 resposta

1

Você está perdendo uma regra que também permite que as respostas passem pelo seu firewall.

Eu confio no código do netfilter e seu poderoso módulo state , então eu usaria iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT para que também os pacotes na outra direção sejam permitidos também.

No seu conjunto de regras, as respostas de 192.168.1.1 para a outra máquina em 172.16.1.1 estão bloqueadas.

Veja também a documentação para a solução de problemas do iptables, por exemplo, esta em linuxhomenetworking.com e adicionar regras de registro quando as coisas não estão funcionando.

iptables -A FORWARD -j LOG
    
por 28.10.2013 / 17:08