LoginSignup
80
111

More than 5 years have passed since last update.

今さらながらVirtualBoxネットワーク設定のベストプラクティスと解説

Last updated at Posted at 2017-04-05

概要

VirtualBox上に仮想マシンを構築する際、セキュリティと利便性のどちらもに気を配るとすると、ネットワーク設定はどのようにすべきか。

ここでいうネットワーク設定とは、仮想マシンの設定で選択できるNAT、ブリッジアダプター、ホストオンリーアダプターなどを意味する。

結論

  • アダプター1を"NAT"、アダプター2を"ホストオンリーアダプター"に設定する
  • これはVagrantを使った場合と同じ設定である

OSのネットワーク設定

このネットワーク設定を行った場合、OS(Linuxを想定)のネットワーク設定はどのようになるか
(最近のOSではデバイス名がeth0とかeth1ではなくなっているようなので、適宜読み替えてほしい )

ポイント

  • アダプター1(おそらくeth0)はDHCPを使う
  • アダプター2(おそらくeth1)は固定IPアドレスを設定する
    • 設定するIPアドレスは、ホストOSにアタッチされている"ホストオンリーアダプター"を見て(詳細は後述)

設定例(抜粋)

/etc/sysconfig/network-scripts/ifcfg-eth0

~~~
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes
~~~

/etc/sysconfig/network-scripts/ifcfg-eth1

~~~
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.33.30
NETMASK=255.255.255.0
~~~

「ホストOSにアタッチされているホストオンリーアダプターとは

  • VirtualBoxの仮想マシンの設定で「ホストオンリーアダプター」を選択した場合、最低1つ以上の仮想的なNICがホストOS(VitualBoxを動かしているマシン)にアタッチされている状態となる
  • これは、Windowsであればipconfig、Linuxであればifconfigで確認できる
    • Windowsであれば、「イーサネットアダプター VirtualBox Host-Only Network #1」という項目になっているはず
    • ここで「IPv4アドレス: 192.168.33.1、サブネットマスク:255.255.255.0」となっていれば、仮想マシンに設定するIPアドレスの範囲は、192.168.33.2 ~ 192.168.33.254 となり、サブネットマスクは255.255.255.0となる
      • 若番、老番は念のため避けて、"192.160.33.30"くらいを使えばよいと思う

解説

冒頭で、アダプター1を"NAT"、アダプター2を"ホストオンリーアダプター"に設定するのが最適であると述べたが、その根拠を簡単に説明する。

ブリッジアダプターを使うべきではない理由

手っ取り早く仮想マシンをネットワーク(インターネット含む)に接続するやり方として、「ブリッジアダプター」を選択する方法があるが、残念ながらセキュリティ的に問題がある。

この設定を行った仮想マシンはホストOSと同じネットワークに存在することとなり、同じLAN内にある別のユーザからアクセスされる恐れがある。(ホストOSを経由した仮想マシンへのパケットは通常、ホストOSのFWでブロックされるが、セキュリティ的な穴をなるべく作らない方がいい)

その他の理由としては、ホストOSが所属するLANと密接な関係をもってしまう点がある。このことは、個人的な検証環境としてVirtualBoxを使うような一般的なユースケースにおいては、うれしくないだろう。

例えば社内環境であれば、仮想マシンに静的なIPアドレスを設定した場合、他のユーザのPCが社内DHCPサーバによって割り当てられたIPアドレスと競合してしまう恐れがある。

もちろんあえて仮想マシンを外部に公開したい場合においては、ブリッジアダプターは選択すべきだ。その場合でも、設定するネットワーク設定には注意を払う必要がある。

NATとホストオンリーアダプターを共存させる理由

まず、NATをつかうことで、ネットワーク設定が容易になる。

NATを使いつつVirtualBoxの内部にあるDHCPサーバを利用することで、IPアドレス、デフォルトゲートウェイ、DNSサーバの設定が自動的に得られるため、面倒なインターネット接続までの設定が不要になる。

しかし、このままではIPアドレスは固定されないため、仮想マシン上でアプリを動かしたときの動作確認や、ホストOSからのSSH接続の設定が面倒だ。

そこでホストオンリーアダプターの設定が効いてくる。ここでは固定IPアドレスを設定する。

まとめると、1つ目のアダプターでネットワーク設定を自動化し、2つ目のアダプターで固定IPアドレスを持たせてアクセスしやすくする。

こうすることで、セキュリティと利便性のどちらもに配慮したネットワーク設定が実現できる。

参考文献

80
111
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
111