designetwork

ネットワークを軸としたIT技術メモ

自宅ラボ+VyOSでネストESXiホスティング環境を構築する

自宅でサーバの勉強をしたいが、古いPC(32bit)しかなくESXiを構築できない、という同僚がおり、検証環境を提供するため、自宅ラボにESXiホスティング環境を構築した。

私はこの記事で選定したサーバでESXi v6.5を運用しており、メモリーは24GBに増強したが余しているため、部分的に切り出して貸し出してみようと思う。

designetwork.hatenablog.com

自宅サーバホスティングを事業として収入を得る場合は、電気通信事業法の内容を要確認。今回は無償提供なので抵触しない。

ネットワーク構成

実現性とセキュリティを考慮して、自宅ラボの中で以下のような位置付けでホスティング環境を構築した。検討ポイントは後述のとおり。

独立したネストESXiをホスティング

ホスティングは基本的にはLinuxWindowsのサーバ単位での貸し出しとなる。しかし、今回はESXi (VMware vSphere) を含めて自由に検証できる環境を提供したい。

自分用のESXiを提供し共有するのはプライバシー的に好ましくないので、ネスト構成でESXiを新規構築する。(いずれもESXi v6.5)

ユーザからするとネストであることは意識する必要がなく、通常通りESXi上にLinuxWindows、仮想アプライアンスなどのVMを自由に作成することができる。

ホスティング環境をネットワーク的に分離

図に記載の通り、ホスティング環境は自分のinside, dmzと完全に分離している。ネットワーク分離のために、仮想ルータVyOSを導入し、セグメント分割している。ASA5505はライセンス上限でVLAN追加不可で、また、仮想ルータはCisco CSRやXRV、F5 BIG-IP VEなどを使用したかったが、無償版ではスループット制限(数Mbps程度)があり、実用に耐えず、OSSのVyOSを選定した。

なお、ホスティング環境からはインターネットへのみ通信可能とするが、inside->hostingのメンテナス通信はしたいため、VyOSのステートフルファイアウォールを使用し、通信の開始方向を含めたアクセス制御を実装する。

このように戻り通信を許可した上で内部向け(inside, dmz: 192.168.x.x)の通信を拒否する。デフォルトはacceptとすることでインターネット宛の通信を全体的に許可する。

set firewall all-ping 'enable'
set firewall name hosting default-action 'accept'
set firewall name hosting rule 10 action 'accept'
set firewall name hosting rule 10 'destination'
set firewall name hosting rule 10 state established 'enable'
set firewall name hosting rule 10 state related 'enable'
set firewall name hosting rule 20 action 'drop'
set firewall name hosting rule 20 destination address '192.168.0.0/16'

(参考情報)VyOSの設定に関して参考にさせていただきました。

komeiy.hatenablog.com

インターネットからのアクセスはWindowsリモートデスクトップ

セキュリティ的な懸念はあるが、操作性を優先して、インターネットからWindows Serverへリモートデスクトップできるようにする。必要十分で言えば、ESXi Web Client (vSphere Web Client)へのWebアクセスのみを提供すれば、コンソールで全台操作可能だが、コピペなどの運用性が低い。そのため、一旦Windows Serverを踏み台として、そこからVM操作、SSH接続することにする。

インターネットFWとして使用しているCisco ASA5505でNAT/FWの処理をする。ASAでの公開設定はこちらの通り(設計見直し余地あり)。Webとして書いているが、ポート番号を変えればRDPにも適用できる。

designetwork.hatenablog.com

VPNホスティングセグメントに入れるようにすればさらに便利かも…

※RDP Win Serverがホスティング環境にいるとESXi再起動などの運用ができないため通常ESXi環境に配置。

DDNSでIP動的変更

固定IPは未契約なので、インターネットからのリモートデスクトップ接続にあたり、自宅グローバルアドレスはDDNSを使用してFQDNで接続できるようにしておく。

動作確認

テザリングでインターネットから以下の動作が可能であることを確認した。

まとめ - 自宅ラボVyOSでESXiホスティング環境を構築する

自宅ラボにセキュアなESXiホスティング環境を構築した。Windows Serverを踏み台にすることで、LinuxへのSSH接続なども実用的な環境とした。

また、ホスティング環境用として使用したVyOSは、設定がシンプルで、スループットも確保でき、今回のようなちょっとした拡張ではかなり有用だと思う。

環境の提供は応相談ですのでご連絡ください。自動デプロイの仕組みなどはなく手動対応です。