非常に単純なユースケース。私がさまざまなアプリケーションを使用しているとしましょう。そのような時間はありませんこれらのアプリケーションのいずれも、実際の接続からネイティブにデータを送信できます。
これが私の実際の問題です。 OpenVPNを使用してさまざまなクライアントサーバーアプリケーションに接続しています。これらが常にVPNを介してデータを送信していることが最も重要です。 VPNはオプションではなく、必須です。悲しいことに、VPNが停止したり、オンにするのを忘れたり、どういうわけか不思議なことにオフになったりすると、これらのアプリケーションはネイティブ接続を介してパケットの送信を開始します。これは大きなノーノーです。この問題には解決策があると確信していますが、それをダックダックして研究することは悲しいことに生産的ではありませんでした。
また、タイトルにあるように、このためにルーターを構成するためのアクセス権がありません。私は仮想マシンを使用することにオープンであり、おそらくそれだけをトンネル接続のみにロックします。
Iptables(Linuxファイアウォール)を使用すると、VPN接続のみにアクセスを制限できます。
#Clear all previous entries
iptables -F
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT
#myvpn.com
iptables -A INPUT -s myvpn.com -j ACCEPT
iptables -A OUTPUT -d myvpn.com -j ACCEPT
#DNS
#openVPN needs DNS to resolve hostnames before it connects. If you are paranoid about dnsleakge, which isn't supposed to be a problem with VPN as all connections are tunneled, you can remove this entry, and then run these iptables commands after you connect to the VPN.
iptables -A INPUT -s 8.8.4.4 -j ACCEPT
iptables -A OUTPUT -d 8.8.4.4 -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
迅速で簡単な解決策は、VMルートを使用して、使用するネットワークデバイス(この場合はVPN)に排他的にバインドすることです。
これは実行可能なソリューションであり、VMプラットフォームを参照しないことをすでに示しているので、構成手順のウォークスルーの詳細はスキップします。ただし、すべてのプラットフォームで使用した(VMWare、VirtualBoxなど)構成は非常に簡単です。重要なことは、非VPNネットワークデバイスへのVMバインディングを無効にすることです。詳細が必要な場合はIそれがすでに回答されているかどうかを確認するか、回答されていない場合は、そのトピックについて新しい質問をすることをお勧めします。