Iptables descarta pacote ACK FIN no meu AP

1

Eu tenho um ponto de acesso na minha máquina Ubuntu com o iptables. A máquina tem eth0 e wlan0 que são ligados para formar a interface br0.
Não deve haver nenhum firewall entre eth0 e wlan0, quero que o tráfego flua livremente e sem restrições. Se o tráfego parar em eth0 ou wlan0, o firewall entra em ação

Então eu tentei este código no iptables que parece funcionar.

$IPTABLES -N RULE_3
$IPTABLES -A FORWARD  -m physdev --physdev-is-bridged --physdev-in eth0 --physdev-out wlan0  -m state --state NEW  -j RULE_3
$IPTABLES -A FORWARD  -m physdev --physdev-is-bridged --physdev-in wlan0 --physdev-out eth0  -m state --state NEW  -j RULE_3
$IPTABLES -A RULE_3  -j LOG  --log-level info --log-prefix "RULE 3 -- ACCEPT "
$IPTABLES -A RULE_3  -j ACCEPT

MAS, por algumas razões, alguns pacotes são descartados, então não posso f.ex transmitir o youtube em dispositivos wlan0. Isso eu encontrei no meu log

Apr 10 21:32:03 NASHTPC kernel: [273846.062793] RULE 8 -- DENY IN=br0 OUT=br0 PHYSIN=wlan0 PHYSOUT=eth0 MAC=************** SRC=192.168.0.15 DST=17.172.208.47 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=63737 PROTO=TCP SPT=58807 DPT=443 WINDOW=65535 RES=0x00 ACK FIN URGP=0  
Apr 10 21:32:03 NASHTPC kernel: [273846.070615] RULE 3 -- ACCEPT IN=br0 OUT=br0 PHYSIN=wlan0 PHYSOUT=eth0 MAC=**************** SRC=192.168.0.15 DST=17.172.208.47 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=2782 DF PROTO=TCP SPT=58808 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0  
Apr 10 21:32:03 NASHTPC kernel: [273846.776553] RULE 8 -- DENY IN=br0 OUT=br0 PHYSIN=wlan0 PHYSOUT=eth0 MAC=************** SRC=192.168.0.15 DST=17.172.208.47 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10631 PROTO=TCP SPT=58807 DPT=443 WINDOW=65535 RES=0x00 ACK FIN URGP=0

Parece que o problema é que o firewall está descartando meu pacote ACK / FIN. A regra 8 é uma regra DENY ALL.

Alguma sugestão sobre como corrigir isso? Devo alterar a regra 3 para outra coisa para permitir que o tráfego flua livremente?

    
por Sun_Blood 10.04.2013 / 22:15

2 respostas

2

Se você quiser que o tráfego flua sem restrições , faça-o assim:

iptables -A FORWARD -m physdev --physdev-is-bridged --physdev-in eth0 --physdev-out wlan0 -j ACCEPT
iptables -A FORWARD -m physdev --physdev-is-bridged --physdev-in wlan0 --physdev-out eth0 -j ACCEPT

Para obter mais informações sobre o significado de sinalizadores TCP, consulte: aqui

    
por 10.04.2013 / 22:23
3

Você está encaminhando apenas NEW state, não ACK FIN, que são considerados ESTABELECIDOS como everithing após os pacotes SYN / ACK

Você poderia tentar isso:

$IPTABLES -N RULE_3
$IPTABLES -A FORWARD  -m physdev --physdev-is-bridged --physdev-in eth0 --physdev-out wlan0  -m state --state NEW,RELATED,ESTABLISHED  -j RULE_3
$IPTABLES -A FORWARD  -m physdev --physdev-is-bridged --physdev-in wlan0 --physdev-out eth0  -m state --state NEW,RELATED,ESTABLISHED  -j RULE_3
$IPTABLES -A RULE_3  -j LOG  --log-level info --log-prefix "RULE 3 -- ACCEPT "
$IPTABLES -A RULE_3  -j ACCEPT

Explicações aqui

    
por 10.04.2013 / 22:43