LinuxゲストがいるVM Windowsホストで実行しています。ネットワークモードをNATに設定すると、ゲストはインターネットアクセスを取得できますが(必要な場合)、ホストのLANにもアクセスできます(私はしません)。
さまざまな理由から、ゲストにインターネットアクセスを提供するためだけに別のネットワークを設定することはできません。
Windowsファイアウォールまたは一部のルーティングソフトウェアを使用して、ゲストにインターネットアクセスを許可し、他のすべてのアクセスをブロックすることはできますか?
編集-virtualboxフォーラムから解決策を得ました:ゲストをブロックするには、WindowsファイアウォールでNATを使用します。
私の間違いは、(プログラム=すべて、ローカルIP =ゲストIP範囲)であるホストにルールを設定しようとしていたことです。 NATはファイアウォールに到達する前に既に発生しているため、実際には(ローカルIP =すべて、program = virtualbox.exe)のルールにする必要があります。
解決策-ホストにファイアウォールルールを追加します:ブロック(ローカルIP =すべて、program = virtualbox.exe、リモートIP = {ブロックする範囲})
Linuxと言うので、IPtablesがインストールされていると思います。ポート80(HTTP)、ポート443(HTTPS)、およびアウトバウンドDNSでのみインバウンド/アウトバウンドトラフィックを許可できます。私はこれらのルールをテストしていないので、自己責任で使用してください。また、それを行うときは、自分が物理マシンであることを確認してください。リモートで接続している場合は、自分自身を切断し、マシンに戻ることができない場合があります。
#delete all rules
iptables -F
#change default policy to drop everything
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#add rules for port 80 and 443 to only allow this traffic
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
#allow outbound DNS
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
#allow loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
リストルール:
iptables -L
使用している仮想化プラットフォームを指定していないため、アドバイスを与えるのは難しいです。 Virtualboxを使用している場合は、ネットワークタイプをホストのみのアダプターに設定できます。これにより、インターネットアクセスが可能になり、Virtualboxを実行しているホストにアクセスできますが、残りのネットワークにはアクセスできません。