概要
Hyper-v上にKali Linuxをインストールしました。今回記事にしたのは、Hyper-vの通常の仮想マシン作成手順でインストールした際に、Kali Linuxのインストールの途中「パッケージの選択とインストール」でエラーが発生しました。そこから試行錯誤しながらエラーが発生しない方法でインストールができたので、その内容をまとめます。
※インストールから、aptを設定してapt upgradeや日本語の設定まで実施するとおよそ2時間程度かかりました。
構築環境は以下の通りです。
- ホストOS:Windows 10 Pro (1909)
- ゲストOS:Kali Linux 64-Bit 2020.1b
※ホストの詳細な環境は以下の記事にまとめています。
手順(概要)
Hyper-v上で仮想マシンを作成
Hyper-vで仮想マシンの作成を行います。以下の画面では第2世代を選択します。
また、上記で書いたようにKali Linuxのインストール中に「パッケージの選択とインストール」でエラーが発生したため、ネットワークに接続しないようにしました。
仮想マシンの作成後、作成した仮想マシンの設定を開きます。第2世代を指定しているので、セキュアブートのチェックを外します。
Kali Linuxのインストール
その後、仮想マシンを起動してインストールを行います。インストールの途中でネットワークの設定について聞かれますが、インストール時点ではネットワークの設定を行いません。
パッケージマネージャの設定もインストール時は行いません。
GUIを使いたいので「Kali desktop environment」にチェックを入れます。
上記の手順でKali Linuxのインストールができました。
インストール完了後は、Hyper-vの設定でKali Linuxをネットワークに接続し、また/etc/apt/sources.listを修正して利用します。
/etc/apt/sources.listの修正について
aptの設定ファイルは「/etc/apt/sources.list」です。上記の手順でインストールを行った場合は参照するリポジトリが記載されていないため修正する必要があります。
Kali Linuxのミラーサイトは以下のサイトで確認ができます。
上記サイトに記載のあるURLを設定ファイルに追記します。
debはパッケージリストの取得サイトでdeb-srcはdebパッケージの構築に必要なソースのリストを取得するためのもので、私は両方を設定しました。
「https://linux3.yz.yamagata-u.ac.jp/pub/linux/kali/README」の例
deb https://linux3.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling main contrib non-free
deb-src https://linux3.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling main contrib non-free
日本語入力の設定
ターミナルより以下のコマンドを実行します。
apt install task-japanese task-japanese-desktop
インストール後、再起動すると画面の右下に赤枠のアイコンが表示されるようになり、半角/全角キーで入力を切り替えできます。
VNCによる接続設定
他のPCからVNCクライアントを使用してKaliにGUIで接続する設定をします。
Kaliでの設定
接続されるKali Linux側で必要なパッケージをインストールします。
user@kali:~$ sudo apt install tightvncserver
user@kali:~/.vnc$ sudo apt install lxde
vncserverの設定をします。
user@kali:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:New 'X' desktop is kali:1
Creating default startup script /home/user/.vnc/xstartup
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/kali:1.log
設定変更を行うため、一度プロセスを終了します。
user@kali:~$ vncserver -kill :1
Killing Xtightvnc process ID 2412
~/.vnc/xstartupを設定します。
※設定内容を理解しきれていませんが、私の環境では以下の設定で動くようになりました。
user@kali:~$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
user@kali:~$ vi .vnc/xstartup
#!/bin/shxrdb $HOME/.Xresources
xsetuser -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
/usr/bin/startlxde
vncserverを起動します。
user@kali:~$ chmod +x ./vnvnc/xstartup
user@kali:~$ vncserver :1New 'X' desktop is kali:1
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/kali:1.log
上記の設定後、接続元となるPCで設定を行います。
接続元PCでの設定
接続する側のPCでVNCクライアアントをインストールします。
インストール後、新規接続先でKaliを設定します。
※接続先のアドレス(ホスト名)の後に「:1」のような指定をします。
これはKaliでvncserver :1としたときの値です。
上記設定後、Kaliに接続することでGUIが表示されました。
補足:Hyper-vのネットワーク設定について
Hyper-V上のゲストとホストとの通信に関して、ホストとゲスト間で通信をさせない場合は、仮想スイッチの設定で、「管理オペレーティングシステムにネットワークアダプタの共有を許可する」のチェックを外します。
この設定により、仮想スイッチに接続した物理NICはホストから独立します。
※ipconfigでも表示されません。