🐧

もうWindowsとLinuxを選ぶ必要はない!WSL+Windows11で両方使える!

2023/04/18に公開

はじめまして、Zennではじめての技術ブログを投稿とさせていただきます。

普段使いのPCや業務用のWindowsを利用しており、IaCやCLI操作についてインターネット書籍だとMacユーザーを対象したものを見かけます...。なので、WindowsユーザーでもいろいろCLI操作を実践したい!けど読み替え大変など一助になればと思いテーマを執筆に至りました。

WSLとはなにもの?

WSLとは、Windows Subsystem for Linuxの略で、クライアントPCがWindows 10/11のWindows環境でもLinux環境を実行できるようにする機能となります。

特徴としては以下のようなものがあげられます。

  • Windows 10/11の上でLinuxの許可を実行することが可能
  • Windows上でLinux環境、コマンドの実行、Linuxアプリケーションの実行が可能
    • Linux環境の初期勉強でも活用が可能
  • WSLには2つのバージョンがあり、WSL 1とWSL 2がある
    • WSL 2は、仮想化技術を使用するため、WSL 1に比べて高速に動作
  • Microsoft StoreからLinuxディストリビューションをインストールすることで利用
    • Ubuntu、Debian、Kali Linuxなど
  • 利用するためには、Windowsの設定を変更する必要
  • WindowsとLinuxのファイルシステムの相互運用性を向上させるため、ファイルの共有や移動などが容易

WSLを有効化にする手順

Windows 11でWSL(Windows Subsystem for Linux)を有効にする手順になります。

  1. 管理者権限でPowerShellを開きます。
  2. 以下のコマンドを実行して、必要な機能を有効にします。

仮想マシンプラットフォームの有効化コマンド

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSLの有効化コマンド

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 再起動を実行します。

再起動コマンド

Restart-Computer -Force
  1. WSL2のパッチがダウンロードできないため以下でパッチをダウンロードします。

WSL2パッチダウンロードとインストールコマンド

Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile wsl_update_x64.msi

.\wsl_update_x64.msi

インストール時GUIが起動しますが、そちらはNextと続けてください。

  1. WSL2に変更するため、以下コマンドを使用します。

WSL 2をデフォルトバージョンに設定するコマンド

wsl --set-default-version 2
  1. wslよりkali-linuxをインポートします。

インポートコマンド

wsl --install -d kali-linux

実際の結果

インストール中: Kali Linux Rolling
Kali Linux Rolling がインストールされました。
Kali Linux Rolling を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers

プロンプト途中で初期設定(ユーザー名とパスワード設定)が求められます。

  • 必要なパラメータ:
    • username:ローカルのWSLを実行するユーザー
    • passwordログインするためのパスワード
Enter new UNIX username: home-kali
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

こちらが初期のログイン画面

┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒ https://www.kali.org/docs/troubleshooting/common-minimum-setup/
┃
┗━(Run: “touch ~/.hushlogin” to hide this message)
┌──(home-kali㉿homework)-[~]
└─$
  1. アップデートおよびGUIモードへの変更。

とりあえずパッチ関連のアップデートを実行してツール類をGUIで起動できるようにします。
WSLを利用となりますが、利用するツール群でGUI操作の方が利便性があるものがあるためGUIで起動できるようにしておきます。

アップデートコマンド

┌──(home-kali㉿homework)-[~]
└─$ sudo apt update

実際の結果

~前略~
53 packages can be upgraded. Run 'apt list --upgradable' to see them.
┌──(home-kali㉿homework)-[/mnt/c/local_workspace/wsl]
└─$

GUIツールのインストールコマンド

┌──(home-kali㉿homework)-[~]
└─$ sudo apt install -y kali-win-kex

実行結果

~前略~
Processing triggers for dbus (1.14.6-1) ...
Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-1+b1) ...
Processing triggers for sgml-base (1.31) ...

┌──(home-kali㉿homework)-[/mnt/c/local_workspace/wsl]
└─$

この後結構モジュールをインストールするため待ちます。

  1. kexサービスを初期起動したさいパスワードを求められるため、2回入れます。
┌──(home-kali㉿homework)-[~]
└─$ kex start
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
  1. 不要なマウントデバイスのアンマウント。
    いろいろ調べた結果状態だとゴミが残るため、アンマウントしてからでないとKali LinuxがGUIモードで起動できませんでした。rootになってから以下を実行となります。

アンマウントするコマンド

┌──(root㉿homework)-[/home/home-kali]
└─# umount /tmp/.X11-unix/
  1. KeX Serverのサービス起動と状態確認。

サービス起動コマンド

┌──(home-kali㉿homework)-[~]
└─$ kex start

サービス起動の確認

┌──(home-kali㉿homework)-[~]
└─$ kex status

        KeX Server is running.
        Win-KeX SL is stopped.
        Win-KeX ESM is stopped.
        '/tmp/.X11-unix' is a Win-KeX socket

※アンマウントしないと「KeX Server is running.」となりませんでした...。

  1. KeX ServerへのGUI接続。

接続コマンド

┌──(home-kali㉿homework)-[~]
└─$ kex --win

複数ディスプレイの場合ですとオプションの「-m」をつけない方が使い勝手が良かった印象でした。なお、成功した後のKali LinuxのGUIはこちらとなります。

参考記事:https://qiita.com/rs_tukki/items/dc38b6efed5938f82a80#トラブルシューティング

余談:Kali Linuxを選定した理由

インフラセキュリティの勉強している際、Udemyなどの通信講座を視聴するとKali Linuxでシュミレーションを実施なされてるので、今回のイメージを選定しました。

参考までに、Kali Lixuxで利用できるセキュリティ関連のツールは以下のようなものがあります。

  • Metasploit Framework:脆弱性診断やペネトレーションテストに使用するツール
  • Nmap: ポートスキャンやOS・サービスの検出などに使用されるツール
  • Wireshark: パケットキャプチャやプロトコル解析などのネットワーク解析に使用されるツール
  • Sqlmap: SQLインジェクションを自動的に検出・攻撃するためのツール

Discussion