WSL2のセットアップとKali Linux GUI化(リモートデスクトップ接続)のメモ

Windows Subsystem for Linux


最新のWindows10では、気軽にLinux環境を楽しめることをご存じだろうか。

以前はVM ware playerとか、Hyper-vとかを使って、isoイメージからインストールしてセットアップを頑張っていたが、最近はそんなLinux環境をMicrosoft Storeから調達できてしまう。

Linuxを使うために専用PCを用意したり、1台のPCをデュアルブート構成にしたりといった時代からは格段の進歩である。

早速使ってみたが、何とも便利で感動した。

以前は若干の癖があったが、GUI化の手間があったが、最近はそれすらもなくなり、Windowsのメニューからアプリを起動できるようになってしまった。その手順についてメモがてらここに残しておく。

0.WSLとWSL2について


WSL(Windows Service for Linux)とは、Windows 10 Fall Creators Updateから標準搭載されている、Windows 10からLinuxを利用するための仕組み。

WSLは、Windows APIをLinux APIでラップしています。WSLの下はWindowsのAPIなので「仮想」ではなく、いわば「Windowsのアプリケーション」です。

一方、WSL2は完全な仮想環境です。仮想マシンをつくる、ハイパーバイザーの上でWindowsに全く依存しない形でLinuxカーネルごと起動します。

自分の理解しやすいように整理すると、

WSLはLinux環境のファイルがWSLのホームディレクトリ配下(C:\Users\[ユーザー名]\AppData\Local\Packages\[パッケージ名称を含む文字列]\LocalState\rootfs\home\)に直接配置されていた。
⇒ファイルシステムがWindowsと共用なので、WSL上のLinuxでマルウェアを取り扱うとホストOS上のWindows Defenderが反応する。

WSL2はホームディレクトリ配下に該当Linux環境の仮想ディスクが作られる。
⇒WSL2上のLinuxでマルウェアを取り扱ってもホストOS上のWindows Defenderは反応しない。

こうなると、WSL2があればHyper-vいらないじゃんという話だが、Hyper-vは複数の仮想ディスクを管理することができるが、WSL2はMicrosoft Storeから提供されるOSと1:1になる。

つまりKali Linuxの場合、WSL2では1OSまでしか作れない。

1.WLS2の環境構築手順


基本はMicrosoft Storeから調達。

コマンドから実行する場合は管理者権限で、ディストリビューションを指定します。

wsl --install -d kali 

基本はこれで終わり。あとはWSL上のkali linuxのセットアップを進めていく。

2.Linux(Kali linux)環境のセットアップ


基本的な流れは下記の通り

2-1.Microsoft Storeから Kali linuxを入手(済み)


-インストールされたkali linuxのバージョン確認コマンド-
 cat /etc/os-release

2-2.セットアップ(アカウント/パスワード設定、パッチ適用、日本語化、SSH接続有効化)


 sudo apt update

 sudo apt upgrade

 sudo apt install -y task-japanese

 sudo apt install -y task-japanese-desktop

 ※日本語化は下記参照
  https://doruby.jp/users/r357_on_rails/entries/Kali-Linux-2020

 sudo apt install ssh

 sudo /etc/init.d/ssh start

 sudo systemctl enable ssh

 ※ssh有効化は下記参照
  https://qiita.com/delphinz/items/72f5a4a9b52ac454fc74

 -サービスの起動確認コマンド-
  service ssh status

2-3.デスクトプのGUI化に必要なパッケージのインストール、デーモン起動(任意)


 sudo apt install xfce4

 sudo apt install xrdp

 sudo apt install dbus-x11

 sudo /etc/init.d/xrdp start

2-3.5.xrdpの自動起動設定(任意)


 sudo systemctl enable xrdp

 -自動起動しない場合- 
  update-rc.d xrdp enable
  参考:https://ariastark.hatenablog.com/entry/2020/06/27/215016

2-4.KaliのIPアドレス確認


 if add

2-5.リモートデスクトップで接続


 ※参考動画

リモートデスクトップ接続時に下記のエラー(Faild execute child process "dbus-launch"...)が出る場合、パッケージを追加でインストールする。


 sudo apt-get install dbus-x11

【参考】


ちなみにWSL2のLinux環境はshutdownコマンドでは落とせない。

ちゃんと落とすにはホストOSのPower Shellを起動してコマンドをたたく必要がある

wsl --shutdown

又は

wsl -t "ディストリビューション名"

【参考】

3.wslgについて

Windows11でwslのバージョンが最新化されていると、Windows上からWSLのLinuxにインストールしたアプリを直接使えるようになる。

wslg

これがwslg(Windows Subsystem for Linux GUI)

アーキテクチャは以下のようになっており、ホストのWindowsとはRDPで画面転送しているような感じ。

wslgアーキテクチャ