Iptables
是否可以設置 VPN,如果它出現故障,我會斷開與 Internet 的連接?
如何設置 VPN,以便在出現故障時斷開與 Internet 的連接?我使用 Ubuntu 並使用網路對話框來使用 VPN;但如果 VPN 出現故障,它只會切換到非 VPN (eth0) 連接。如果 VPN 出現故障,我想“斷開”與 Internet 的連接(僅允許通過 VPN 連接)。顯然VPN本身必須是直接連接的,但其他一切都應該通過VPN。
或者,是否可以以這種方式設置虛擬電腦(我對 VirtualBox 很滿意)?或者可能是一種僅針對某些程序將 Internet 訪問限制為 VPN 的方法?
我想路由或 iptables 將是顯而易見的方法,但我真的不知道從哪裡開始。我看過一些通過操縱路由設置 VPN 連接或 ssh 隧道的教程,但我不知道它們是否適用。
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、…)。