iptables는 모바일 광대역에서 작동하지 않습니다

iptables는 모바일 광대역에서 작동하지 않습니다

저는 VPN을 사용하여 인터넷에 접속합니다. 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 #example.conf
iptables -A OUTPUT -p tcp -m tcp -m conntrack -d 123.123.123.123 -o eth0 --dport 443 -j ACCEPT --ctstate NEW,ESTABLISHED #example.conf
iptables -A INPUT -p tcp -m tcp -m conntrack -s 123.123.123.123 -i usb0 --sport 443 -j ACCEPT  --ctstate ESTABLISHED #example.conf
iptables -A OUTPUT -p tcp -m tcp -m conntrack -d 123.123.123.123 -o usb0 --dport 443 -j ACCEPT --ctstate NEW,ESTABLISHED #example.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

파일을 sudo하고 편집하여 문제를 해결하려고했습니다./etc/udev/rules.d/70-pertant-net.rules다음 줄을 포함합니다.

# Mobile Broadband USB dongle
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC address of dongle", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="usb0"

도움이 되셨다면 파일 내용은 여기70-영구적 네트워크 규칙

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device (r8169)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC address of ethernet card", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# Mobile Broadband USB dongle
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC address of dongle", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="usb0"

추가 세부 사항

Debian 7.9에서 모바일 광대역이 작동하도록 하기 위해 다음 단계를 수행했습니다:

(1) 다음 줄을 추가합니다/lib/udev/rules.d/40-usb_modeswitch.rules

# Mobile Broadband USB dongle
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0257", RUN+="usb_modeswitch '%b/%k'"

(2) 다음과 같은 파일을 만듭니다.19d2:0257존재하다/etc/usb_modeswitch.d/다음 콘텐츠가 포함되어 있습니다:

# Mobile Broadband USB dongle
#
DefaultVendor= 0x19d2
DefaultProduct= 0x0257
TargetVendor= 0x19d2
TargetProduct= 0x0257
MessageContent="55534243123456782400000080000685000000240000000000000000000000"
CheckSuccess=20 

(3 Network Manager가 장치를 자동으로 인식하도록 다음 줄을 추가했습니다./etc/rc.local

modprobe usbserial vendor=0x19d2 product=0x0257

관련 정보