저는 openVPN과 함께 IPredator VPN을 사용하고 있으며, 연결이 끊어지면 VPN 없이 인터넷에서 데이터를 제출하지 않도록 하고 싶습니다. iptables와 Scope를 사용하여 이 작업을 수행할 수 있다고 들었습니다. 어떻게 해야 하나요? VPN이 나에게 할당한 IP 범위를 어떻게 찾을 수 있나요?
답변1
VPN을 시작하기 전에 netstat -rn
및 ifconfig -a
. VPN을 시작하면 이 두 명령의 차이점을 통해 VPN이 라우팅 측면에서 생성한 네트워크와 해당 네트워크에 대한 가시성을 확보하기 위해 할당된 IP를 알 수 있습니다. 또한 VPN(또는 트래픽)을 제공하는 서버의 IP를 가져와야 합니다.도착하다VPN 서버는 이에 액세스할 수 없습니다.) 또한 VPN 서버가 udp
대신 를 사용한다고 가정합니다 tcp
. 그렇다면 tcp
이를 반영하기 위해 두 번째 규칙을 업데이트해야 합니다.
이것이 있으면 OUTPUT
iptables에 규칙을 추가하여 호스트가 볼 수 있는 내용을 설정할 수 있습니다.
iptables -F OUTPUT
iptables -I OUTPUT -d VPNSERVER -p udp -j ACCEPT -m comment --comment "Allow traffic to VPN SERVER"
iptables -I OUTPUT -s VPNIP -d VPNNETWORK/CIDR -j ACCEPT -m comment --comment "Allow all traffic to VPN newtork"
iptables -I OUTPUT -j DROP -m comment --comment "Drop all other traffic"
iptables -F OUTPUT
기존 규칙을 새로 고치고 이 점에 유의하되 원래 질문에서 요구한 대로 수행하십시오.
VPNSERVER
이것이 VPN 서버의 IP가 됩니다.
VPNIP
VPN이 귀하에게 할당한 IP입니다. 다음과 유사한 VPNNETWORK/CIDR
라우팅된 네트워크 에 존재합니다 .netstat -rn
10.1.0.0/24
이러한 규칙을 디버깅할 때 일부 프로토콜에는 추가 처리가 필요할 수 있으므로 제거되는 항목을 기록하는 것이 편리할 수 있습니다.
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
OUTBOUND
이는 PC에서 인터넷으로의 트래픽을 차단하고 VPN 서버와 VPN 서버가 제공하는 네트워크에만 트래픽이 도달하도록 허용하기에 충분합니다 .
OP는 Arch Linux에는 netstat
또는 ifconfig
. 이 경우 대안은 다음과 같습니다.
ip addr show
인터페이스가 제공되고 ip route show
현재 가지고 있는 경로가 표시됩니다.