O roteador doméstico Linux não pode rotear de uma nova sub-rede para outra sub-rede interna

0

Eu tenho um roteador Linux em casa, que é uma máquina desktop com várias nics e uma placa wifi. Isso tem funcionado muito bem por alguns anos agora. No entanto, adicionei recentemente uma nova interface (eth2) e não consigo acessar hosts dessa rede de outras redes internas.

eth0 - External interface to ISP

eth1 - Internal interface (172.16.0.1) Bcast:172.16.0.255  Mask:255.255.255.0

eth2 - The new network (172.16.48.1) Bcast:172.16.48.255  Mask:255.255.255.0

wlan0 - Wifi network (172.16.16.1)  Bcast:172.16.16.255  Mask:255.255.255.0

eth2 é a segunda porta em um cartão dual nic (Intel 82546GB). eth1 é a primeira porta desse cartão. eth0 é o nic embutido na placa-mãe. wlan0 é uma placa wifi Atheros AR5418.

Eu tenho uma configuração de firewall simples por enquanto para solucionar o problema que estou tendo. Aqui está o script de firewall:

#!/bin/bash

MYIP_EXT="myhomeip"
MYIP_INT="172.16.0.1"
EXT_INTERFACE="eth0"
INT_INTERFACE="eth1"
NEW_INTERFACE="eth2"
WIFI_INTERFACE="wlan0"

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t mangle -F
/sbin/iptables -t nat -F

/sbin/iptables -N droplog
/sbin/iptables -A droplog -s 0/0 -d 0/0 -j LOG --log-prefix "droplog "
/sbin/iptables -A droplog -s 0/0 -d 0/0 -j DROP

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -i $EXT_INTERFACE  -o $INT_INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i $INT_INTERFACE  -o $EXT_INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i $WIFI_INTERFACE -o $EXT_INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i $NEW_INTERFACE  -o $EXT_INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables --table nat -A POSTROUTING -o $EXT_INTERFACE -j SNAT --to $MYIP_EXT

/sbin/iptables -A PREROUTING -t nat -p tcp --dport 2222 -i $EXT_INTERFACE -j DNAT --to 172.16.0.204:22

/sbin/iptables -A INPUT -i $WIFI_INTERFACE -j ACCEPT
/sbin/iptables -A INPUT -i $INT_INTERFACE -j ACCEPT
/sbin/iptables -A INPUT -i $EXT_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i $EXT_INTERFACE -j droplog

Tabela de roteamento do roteador:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         99.70.232.1     0.0.0.0         UG    0      0        0 eth0
myhomeip.0      0.0.0.0         255.255.252.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
172.16.16.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
172.16.48.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2

Tudo funciona bem, exceto que não consigo fazer conexões de hosts nas redes 172.16.0.0/24 ou 172.16.16.0/24 nas redes 172.16.48.0/24 na nova interface.

Eu posso conectar do roteador aos hosts na rede 172.16.48.0 e desses hosts para a internet. Eu também posso conectar entre hosts na rede 172.16.0.0 e na rede wifi 172.16.16.0.

Se eu executar o tcpdump no host 172.16.48.100 e tentar ssh nele a partir de 172.16.0.204, vejo pacotes chegando, mas não retornando.

A configuração de rede em 172.16.48.100 é

inet addr:172.16.48.100  Bcast:172.16.48.255  Mask:255.255.255.0

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.48.1     0.0.0.0         UG    0      0        0 eth0
172.16.48.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Se eu rodar o tcpdump em 172.16.0.204 e tentar o ssh de 172.16.48.100 para 172.16.0.204, não vejo nenhum pacote.

O que estou fazendo de errado?

    
por qhzonff 08.10.2015 / 14:38

1 resposta

0

Você tem uma regra iptables

   /sbin/iptables -A droplog -s 0/0 -d 0/0 -j DROP

mas você não tem a seguinte regra:

   /sbin/iptables -A INPUT -i $NEW_INTERFACE -j ACCEPT

Por isso, o pacote inicial destinado a $ NEW_INTERFACE é descartado e a conexão nunca se torna ESTABELECIDA, RELACIONADA.

    
por 08.10.2015 / 15:52