Ubuntuで実行されているVirtualboxでWindows仮想マシンを分離するにはどうすればよいですか

Ubuntuで実行されているVirtualboxでWindows仮想マシンを分離するにはどうすればよいですか

何度も検索しましたが、これを行う方法が見つかりませんでした。私が見つけた答えでは、2 番目の NIC を取得して、それを Windows ゲスト専用にするようにと書かれていました。私のホストは Linux Mint 16 です。

ゲストのネットワーク アダプターを指定する方法はわかりましたが、Windows ゲストがインターネットにアクセスできるようにしながら、ホストのネットワーク上の他のコンピューターにアクセスできないようにするにはどうすればよいのでしょうか。

ゲストの IP アドレスが手動で変更された場合でも、ゲストがネットワークの残りの部分にアクセスできないようにする必要があります。ゲストは自分自身 (およびおそらくホスト) のみを参照する必要があります。

答え1

これはVirtualBoxで実行できます。

使用できる接続を選択する必要がありますiptablesパケットを制御するためにNATやブリッジは使用できない。ユーザーがアクセスできるNICを作成しないためである。ホストオンリーネットワーク代わりに、ホスト上に vboxnet0 と呼ばれるユーザーがアクセス可能なインターフェースが作成されます。

設定するには、ファイル -> 設定 -> ネットワーク -> ホストのみのネットワーク -> プラス記号で作成し、次に Screwdriver -> DHCP サーバーで DHCP サーバーを有効にします。設定を保存し、VM を起動します。

次に、ゲスト上でホストをゲートウェイとして設定する必要があります。ホストのデフォルト IP は 192.168.56.1 です。Windows でこれを行う方法については、Google で検索してください。また、DNS サーバーを設定する必要がある場合もあります。

ホストでは、これらのすべての命令を sudo として実行します。

1) IP転送を有効にする:

  echo "1" > /proc/sys/net/ipv4/ip_forward

2) 以下を発行するiptablesルール:

  iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
  iptables -A FORWARD -m iprange --dst-range 192.168.1.2-192.168.1.254 -j DROP
  iptables -I FORWARD -m iprange --src-range 192.168.1.2-192.168.1.254 -j DROP

最初のルールは VM のインターネットへのアクセスを許可します。2 番目のペアは、ルータとブロードキャスト アドレスを除いて、VM の LAN へのアクセスを禁止します。

上記のルールは、ホストがeth0、あなたのLANは192.168.1.0/24ルーターとブロードキャスト アドレスはそれぞれ 192.168.1.1 と 192.168.1.255 です。そうでない場合は、それに応じて変更してください。

答え2

簡単に答えると、VirtualBox だけでは必要な分離を実現できません。VM は常にホストと同じネットワーク可用性を継承します (ブリッジまたは NAT ネットワーク モードを想定)。

VirtualBox には 4 つのネットワーク選択肢があります。

  1. ブリッジ: ホストのアダプタの 1 つと接続を共有します。これは、VM とホストがすべて同じスイッチに接続されている場合と同じです。VM は、ホストがアクセスできるすべてのものにアクセスできます。

  2. NAT: VirtualBox は、ホストのアダプタと仮想ネットワークの間に仮想 NAT ファイアウォールを配置します。VM は、ホストがアクセスできるすべてのものに引き続きアクセスできます。

  3. ホストのみ: VM はホスト コンピューターとのみ通信できます。

  4. 内部: VM は分離されたネットワーク上にあり、同じ内部ネットワーク上の他の VM とのみ通信できます。

これらのオプションはいずれも要件を満たさないため、VirtualBox だけでは実行できません。おっしゃるとおり、追加の NIC を追加すると、必要な分離を実現するために必要な物理的な分離が実現します。

答え3

わかりました。ホスト OS に 1 枚のネットワーク カードのみを必要とする優れたソリューションを見つけました。

  1. ゲスト OS にホスト専用アダプター (デフォルトは vboxnet0) を指定し、vboxnet0 が DHCP を実行することを確認します。
  2. squidプロキシをインストールします(sudo apt-get install squid3
  3. ファイル /etc/squid3/squid.conf を開き、次の変更を行います。A. 「http_access deny all」の行を探し、行の先頭に # を付けてコメント アウトします。B. 次の 2 行をファイルに貼り付けます。
    1. ACL 全コンピュータ src 192.168.56.0/255.255.255.0
    2. http_access すべてのコンピュータを許可する
  4. 次のコマンドを実行して、squid 3 サービスを再起動します: sudo service squid3 restart
  5. ゲストOSでネットワークカードにDHCPが設定されていることを確認します
  6. Internet Explorer のインターネット オプションを開き、[接続] タブに移動して、[LAN 設定...] をクリックし、[プロキシ サーバー] のボックスをオンにして、アドレスを 192.168.56.1、ポートを 3128 にします。
  7. ゲスト上でインターネットが機能するようになりましたが、ゲストはローカル ネットワークを表示できません。

この投稿の助けに感謝します。Squid3 を見つける正しい方向に導いてくれました。ここでのセットアップ全体は 5 ~ 10 分で完了し、非常に簡単です。

関連情報