Hyper-VでのCentOS8環境構築(ssh通信まで)

使い始めた経緯

VitualBoxが使えない

長らく仮想マシンを使用していなかったのですが、家のローカルエリア内にプロキシ環境が必要となったため、仮想マシン上にCentOS8を入れて構築することに。久々にVirtualVoxを起動してCentOS8用の仮想マシンを作成するとエラーで起動出来ない。
VirtualVoxのアップデートも失敗するので再インストールを行い仮想マシンを起動すると、"VT-x is not available (VERR_VMX_NO_VMX)."の表示で起動出来ない。ネットで調べるとHyper-VがONの設定となっているとVirtualBoxは起動出来ないらしいですが、Hyper-Vを無効にしたり、色々試しましたが無理だったためHyper-Vを使用することにしました。

ちなみにHyper-VのせいでVirtualBoxが起動出来ないことと対処法は下記ページに書いてあります。
https://qiita.com/kuryus/items/f703000c6396127fd519

Hyper-Vとは

Microsoft製の仮想マシンソフトでWindows10 pro以上で使用出来ます。Windowsデスクトップの左下検索窓にて検索すると"Hyper-Vマネージャー"が見つかります。開くと下記のような管理画面が開きます。
Hyper-V_manager1

新規仮想マシンの作成

ネットワークアダプタ設定の準備

仮想スイッチマネージャーを選択します。
Hyper-V_manager2

仮想スイッチマネージャにて使用するNICの設定をします。ホストPCには2つの有線用NICがあるため、そのうち一つを仮想マシン用とし、ホストPCからは独立させます(ホストPCでは仮想マシン用に割り当てたNICは使用出来なくなります)。新規設定は「新しい仮想ネットワークスイッチ」から行います。名前は「セカンダリNIC」、ホストから独立させるため、「管理オペレーティングシステムに...許可します」のチェックを外します。
Hyper-V_manager3

新規仮想マシンの作成

あとは新規→仮想マシンから仮想マシンの設定を行います。下記サイトを参考に行いました。
https://qiita.com/chenglin/items/ee4c2551dab39b770ccd
Hyper-V_manager4

 

仮想マシンのセットアップ

インストールパッケージ

プロキシサーバーとするのでその辺のパッケージは入れておくとして、開発ツール、Webサーバー等もインストールしました。

ネットワーク関連の設定

インストール作業ではネットワークアダプタをDefaultSwhichにて行ってしまったので、ホストのセカンダリNICを追加してセットアップを行います。まずはコマンドで現在のネットワークアダプタの状態を確認します。

# nmcli device
DEVICE TYPE      STATE         CONNECTION
eth0   ethernet  connected     eth0
eth1   ethernet  disconnectid  --
# nmcli connection show
NAME  UUID                      TYPE      DEVICE
eth0  ######################### ethernet  eth0

eth1が接続されていないので追加し、固定IPで設定します。設定は下記のサイトを参考にしました。
https://go-journey.club/archives/4124
https://server-network-note.net/2020/03/centos8-set-network-ip/

# nmcli connection add type ethernet ifname eth1 con-name eth1
Connection 'eth1' (###############################################)successfully added.
# nmcli connection modify eth ipv4.address 192.168.###.###/24
# nmcli connection modify eth ipv4.gateway 192.168.###.###
# nmcli connection modify eth ipv4.dns 192.168.###.###
# nmcli connection modify eth ipv4.method manual
# nmcli connection up

sshdのセットアップを行います。今回はローカルエリア内での構築なので、portはデフォルトの22番で設定します。まずはsshdの設定ファイルを変更します。

# vi /etc/ssh/sshd_config

変更内容は下記内容です。

PermitRootLogin no    #追加(rootログイン禁止、centOS7まではコメントアウトで存在したがcentOS8は無くなっていた)

PasswordAuthentication yes    #変更、コメントアウト削除

DenyUsers ALL    #追加、すべてのユーザーのログイン禁止

AllowUsers ***    #追加、ログインユーザー許可ユーザーを選択

次にfirewallの設定変更を行う。基本的にインストール時にsshdを入れていればfirewallにサービスが追加されているので、ポートを追加するだけでよいです。

# firewall-cmd --add-port=22/tcp --zone=public --permanent
success
# firewall-cmd --reload

これでTeraTerm等のターミナルソフトから接続可能な状態ですが、sshdを後から入れた場合はfirewallにサービスが登録されていない可能性があるため、下記コマンドでサービスの追加が必要です。

# firewall-cmd --add-service=sshd --zone=public --permanent
success
# firewall-cmd --reload

 

実際のサーバーでの注意点

今回はとりあえずssh通信出来るところまで行うのが目的だったので受付portを22番のまま設定を行いましたが、実際のサーバーではセキュリティを考えてportはデフォルトから変更を行うべきです。その場合はsshd_configの変更とfirewallへのport登録に加えてSElinuxの設定変更が必要になります(長くなるので別記事で触れることにします)。書籍やネットの記事を見ると、よく設定手順としてfirewallとSElinuxを無効にすると記載しているものがありますが運用上は良くないので、限定的に安全を確保した上で行うようにした方が良いと思います。

Hyper-Vの良くない点

仮想マシンのコピーが出来ない

チェックポイントという機能が用意されており、おそらく設定しておいた状態に戻すことが出来るのだと思いますが、ユーザーとしては自由にコピーが出来る機能を実装して頂いた方が都合が良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

five + seventeen =