#はじめに
VirtualBoxでCentOSの環境を作ってみた系の記事がたくさん上がっていますが、よく目にするのは**とりあえず「ブリッジアダプター」にしよう。**みたいな設定です。確かに、この設定にすることで外部ネットワーク、仮想マシン同士、ホストOSとゲストOS間の双方向接続全てが可能になります。
しかし、このままだとセキュリティ的によろしくないです。なぜなら、ブリッジアダプターではゲストOSのネットワークはホストOSと同じネットワークに繋がってしまい、そのネットワークにいる他のPCからもゲストOSにアクセスできてしまうからです。
そこで、セキュリティを保ちながら開発もしやすいように必要な部分のアクセスのみ許容するネットワーク設定をご紹介します!
#ベストプラクティス
・NAT
・ホストオンリーアダプター
この2つを設定することで、
仮想マシンからは外部ネットワークに接続できて、外部ネットワークからは仮想マシンに接続できない状態。
ホストOSからゲストOSへの接続(sshとか)ができる状態。
この2つの状態を作ることができます。
外部から汚されず、ホストからゲストへの通信も行える安心安全なネットワーク設定です!
今回はこの設定方法を説明します!
#環境
- macOS 10.12.6
- MacBook pro 2016
- VirtualBox 5.2.18
- CentOS 7.6-1810
#VirtualBoxの設定
まずは、ホストオンリーアダプターを設定するために、アダプターを作成します。
VirtualBoxを起動して、右上のグローバルツールをクリック。
次は、「ホストネットワークマネージャー」をクリック。
左上の「作成」をクリックすると、新しくアダプターを作成できます。
作成されたアダプターを選択して、下に表示されるアダプタータブを開き、「アダプターを手動で設定」を選択します。
そのあと、IPv4アドレスを設定してください。
このIPアドレスがホストOS側のIPアドレスとなります。
ここは、プライベートIPなので192.168.*.*
にしましょう。
ここで設定したIPは後で使うので覚えておいてください。
※DHCPサーバーを有効化して、IPを自動割り当てにしても良いですが、その際は上限と下限を正しく設定してあげないと繋がらなくなることがあるので注意してください。
これで、VirtualBoxでの設定は完了です!
#仮想マシンの設定
仮想マシンの設定を行います。
対象の仮想マシンを選択した状態で、左上の設定をクリックします。
そのあとに、ネットワークを選択してください。
アダプター1はデフォルトでNAT
になっているので、そのままで大丈夫です。
アダプター2をクリックして、「ネットワークアダプターを有効化」をチェックしてください。
割り当ての項目を、ホストオンリーアダプター
に設定して、名前を先ほど作成したアダプター名にしてください。
これで、仮想マシン側の設定は完了です!
#CentOSの設定
次は、CentOSの設定です。
まずはログイン。
nmtui(NetworkManagerのtui)
コマンドで、ネットワークマネージャーを開きます。
開いたあとは、「Edit a connection」を選択してEnter
まずは「enp0s3」を選択してEnter
※enp0s3はNATのアダプター名です。
IPv6の部分をIgnore
に変更して、「Automatically connect」にチェックを付けてください。(チェックはspaceキーでつけることができます)
NATのアダプターの設定はこれで完了。
OKを選択してEnterすると、先ほどの画面に戻るので、「■■■■1」を選択してEnter(何故かこの文字化け見たいな名前になっていますが、本来はenp0s8
となっているはずです…)
これが、ホストオンリーアダプターの名前になります。
Profile name を「enp0s8」にしてください。
IPv4の部分をManual
に変更してください。
IPv4の右側のshow
を選択してEnterを押すと、詳細が開かれます。
Addresses
の部分を入力します。
先ほどVirtualBoxで設定した、ホストOSのIPv4のIPアドレスを下限に、ネットマスクを上限にして、IPアドレスを入力してください。
IPv6をNATの時と同様に、Ignore
に変更して、「Automatically connect」にチェックを付けてください。
OKを押して、次はBackを押します。
最後にQuitを押して、nmtuiを閉じます。
あとは、NetworkManegerとNetworkを再起動させて、変更の反映をします。
# systemctl restart NetworkManager
# systemctl restart network
あとは、ホストOS側でSSHできたら、完了!!
$ ssh root@192.168.10.3 //自分でホストオンリーアダプターに設定したゲストOSのIP
###余談
このIPアドレスをいちいち入力しなければならないのは面倒ですよね…
hostsファイルに設定を書き加えてあげると、IPアドレスと任意の名前が結びついてくれます。
ファイルの場所は以下です!
mac
/private/etc/hosts
Windows
C:\Windows\System32\drivers\etc\hosts
#次回
CentOSにApachを入れて設定しみる!