iptables 규칙의 이상한 동작

iptables 규칙의 이상한 동작

VPN 연결이 갑자기 끊어지거나 수동으로 종료되는 경우 트래픽이 내 컴퓨터에서 나가는 것을 방지하는 것이 목적인 일련의 iptables 규칙(아래 참조)이 있습니다.

#!/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

위의 iptables 규칙은 Intel Haswell CPU(i7-4xxx 시리즈, 쿼드 코어, 8스레드) 및 Haswell 칩셋(H87 시리즈)을 실행하는 컴퓨터에 적용됩니다.

그러나 Intel Ivy-Bridge CPU(i7-3xxx 시리즈, 쿼드 코어, 8스레드) 및 Ivy-Bridge 칩셋(H77 시리즈)을 실행하는 컴퓨터에는 적용되지 않습니다.

누구든지 이유를 말해 줄 수 있습니까?

사용된 운영체제는 Debian Wheezy였으며, 위 실험에서도 동일한 HDD를 사용하였다.

답변1

CPU 칩셋과 관련이 없을 가능성은 거의 없습니다. 네트워크 카드와 관련이 있을 가능성이 높습니다.

서로 다른 두 컴퓨터 간에 동일한 하드 드라이브와 운영 체제 설치를 공유하는 경우 NIC가 다르므로 해당 NIC의 MAC도 달라집니다. 따라서 거의 확실하게 다른 구성에 바인딩되도록 구성됩니다 eth0.eth1

/etc/udev/rules.d/70-persistent-net.rules생성된 두 규칙 모두 인터페이스 이름을 로 편집하고 확인하여 Wheezy에서 이 문제를 해결할 수 있습니다 eth0. (단, NIC가 두 개인 컴퓨터를 사용하지 마십시오.)

내 시스템의 해당 항목은 다음과 같습니다. 시스템의 MAC은 다양합니다. 이 줄은 udevdMAC을 사용하여 NIC에 00:0a:cd:20:aa:3f이름을 할당하도록 지시합니다 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"

관련 정보