OpenVPN 서버를 제외한 모든 인터넷 연결을 차단합니다.

OpenVPN 서버를 제외한 모든 인터넷 연결을 차단합니다.

OpenVPN에 연결되어 있지 않은 경우 모든 인터넷 연결을 차단하고 싶습니다. 물론, 이제 VPN 서버에 대한 연결을 허용해야 합니다.

VPN 서버 IP와의 트래픽을 허용하고 모두 제거 규칙을 사용하여 이를 수행할 수 있습니까 iptables?

iptables@tachomi가 제안한 솔루션을 시도했지만 규칙을 설정할 때 인터넷에 연결되어 있지 않습니다. iptables-save상태:

# Generated by iptables-save v1.6.0 on Wed Feb  3 00:53:32 2016
*filter
:INPUT DROP [247:40343]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [153:25961]
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p udp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p udp -j ACCEPT
COMMIT
# Completed on Wed Feb  3 00:53:32 2016

답변1

로컬 연결 및 RELATED, ESTABLISHED연결 프로토콜을 허용하여 시작하십시오.

$ sudo iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT

그러면 인터넷 연결이 가능해집니다.

기본 체인 정책 설정

$ sudo iptables -P INPUT DROP
$ sudp iptables -P OUTPUT DROP

이렇게 하면 모든 유형의 인바운드/아웃바운드 트래픽이 거부됩니다.

VPN 연결을 허용하세요

$ sudo iptables -A INPUT -s [VPN ip connection] -j ACCEPT
$ sudo iptables -A OUPUT -d [VPN ip connection] -j ACCEPT

그러면 VPN 연결이 허용됩니다.

SSH를 통해 연결하는 경우 IP 주소가 로컬 호스트 역할도 하도록 허용해야 합니다.

고쳐 쓰다:

다른 연결 규칙의 경우 허용하면 됩니다.

HTTP를 예로 들어 보겠습니다.

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT  

개인적인 추천

내가 하는 일은 iptables 규칙의 백업을 사용한 $ sudo iptables-save > iptables_backup다음 모든 변경 사항에 대해 vim을 사용하여 규칙을 편집하고 iptables 복원을 사용하는 것입니다 $ sudo iptables-restore < iptables_backup. 이는 반복되는 규칙을 피하기 위한 개인적인 관행일 뿐입니다.

관련 정보