iptables regras 'comportamento estranho

0

Eu tenho um conjunto de regras iptables (veja abaixo) cujo objetivo é impedir que o tráfego saia da minha máquina quando minha conexão VPN for abruptamente perdida ou finalizada manualmente:

#!/bin/bash

echo "Please wait a moment......"
echo "Save original iptables. Apply new iptables rules"

iptables-save > /home/username/vpn/iptables.save

iptables -A INPUT -m conntrack -j DROP --ctstate INVALID
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m conntrack -s 123.123.123.123 -i eth0 --sport 443 -j ACCEPT  --ctstate ESTABLISHED #ca1.conf
iptables -A OUTPUT -p tcp -m tcp -m conntrack -d 123.123.123.123 -o eth0 --dport 443 -j ACCEPT --ctstate NEW,ESTABLISHED #ca1.conf
iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j REJECT
iptables -A OUTPUT -p tcp -m tcp -m conntrack -o tun0 --dport 80 -j ACCEPT  --ctstate NEW,ESTABLISHED
iptables -A OUTPUT -p tcp -m tcp -m conntrack -o tun0 --dport 443 -j ACCEPT  --ctstate NEW,ESTABLISHED
iptables -A OUTPUT -p tcp -m tcp -m conntrack -o tun0 --dport 53 -j ACCEPT  --ctstate NEW,ESTABLISHED
iptables -A OUTPUT -p tcp -m tcp -m conntrack -o tun0 --dport 53 -j ACCEPT  --ctstate NEW,ESTABLISHED
iptables -A INPUT -p tcp -m tcp -m conntrack -i tun0 --sport 80 -j ACCEPT  --ctstate ESTABLISHED
iptables -A INPUT -p tcp -m tcp -m conntrack -i tun0 --sport 443 -j ACCEPT  --ctstate ESTABLISHED
iptables -A INPUT -p tcp -m tcp -m conntrack -i tun0 --sport 53 -j ACCEPT  --ctstate ESTABLISHED
iptables -A INPUT -p tcp -m tcp -m conntrack -i tun0 --sport 53 -j ACCEPT  --ctstate ESTABLISHED
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -j DROP

As regras acima do iptables funcionam em uma máquina rodando uma CPU Intel Haswell (série i7-4xxx, quad-core, 8 threads) e um chipset Haswell (série H87).

No entanto, eles não funcionam em uma máquina que executa uma CPU Intel Ivy-Bridge (série i7-3xxx, quad-core, 8 threads) e um chipset Ivy-Bridge (série H77).

Alguém poderia me dizer por quê?

O SO que está sendo usado é o Debian Wheezy e o mesmo HDD é usado para o experimento acima.

    
por festivalofmusic 27.08.2015 / 23:30

1 resposta

1

É altamente improvável que esteja relacionado ao chipset da CPU. É mais provável que esteja relacionado à NIC.

Se você estiver compartilhando o mesmo disco rígido e a instalação do sistema operacional entre duas máquinas diferentes, a NIC será diferente para que o MAC para essa NIC seja diferente. Portanto, quase certamente, a configuração será feita para eth0 , mas para eth1 , por outro.

Você pode corrigir isso no Wheezy editando /etc/udev/rules.d/70-persistent-net.rules e garantindo que ambas as regras geradas nomeiem a interface como eth0 . (Apenas certifique-se de nunca tentar ter uma única máquina com ambos os NICs.)

Aqui está a entrada apropriada do meu sistema. Os MACs dos seus sistemas serão diferentes. Esta linha instrui udevd a fornecer à NIC com MAC 00:0a:cd:20:aa:3f o nome eth0 :

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:04.0/0000:02:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0a:cd:20:aa:3f", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    
por 28.08.2015 / 00:38

Tags