인터넷이 다운될 경우 인터넷 연결을 끊을 수 있도록 VPN을 어떻게 설정하나요? 저는 Ubuntu를 사용하고 네트워크 대화 상자를 사용하여 VPN을 사용하지만 VPN이 다운되면 VPN이 아닌(eth0) 연결로 전환됩니다. VPN이 다운되면 인터넷 연결을 "연결 해제"하고 싶습니다(VPN을 통한 연결만 허용). 분명히 VPN 자체는 직접적이어야 하지만 다른 모든 것은 VPN을 통과해야 합니다.
또는 이런 방식으로 가상 머신을 설정할 수 있습니까? (VirtualBox가 마음에 들지 않습니다.) 아니면 특정 프로그램이 VPN을 통해서만 인터넷에 액세스하도록 제한하는 방법이 있을까요?
라우팅이나 iptables가 확실한 방법인 것 같지만 실제로 어디서부터 시작해야 할지 모르겠습니다. 라우팅을 조작하여 VPN 연결이나 SSH 터널을 설정하는 방법에 대한 몇 가지 튜토리얼을 본 적이 있지만 이것이 작동하는지 모르겠습니다.
답변1
Netfilter(iptables)는 귀하의 요구에 적합합니다. 그것에 관한 많은 튜토리얼이 있습니다.
실행할 몇 가지 명령:
#the default rule will be to drop everything that leaves your computer
iptables -P OUTPUT DROP
iptables -t filter -A OUTPUT -o lo -j ACCEPT
iptables -t filter -A OUTPUT -o tun0(your vpn interface) -j ACCEPT
iptables -t filter -A OUTPUT -o eth0(your real interface) -p udp(or tcp) --dport 9999(the port, the vpn server listens to) -j ACCEPT
필요할 때마다 실행되는 스크립트에 이를 넣으면 컴퓨터를 떠나는 모든 항목이 삭제되고 VPN에 대한 예외가 설정됩니다.
이후에는 많은 서비스(예: dns, dhcp...)를 연결할 수 없습니다.
답변2
eth0의 유일한 경로가 VPN 끝점에 대한 경로가 되도록 라우팅을 설정합니다. VPN 없이는 인터넷에 대한 경로가 없기 때문에 어떤 프로그램도 연결할 수 없습니다.