Arch LinuxをWSLで動かす

 article  Comments Off on Arch LinuxをWSLで動かす
Dec 192020
 

Arch LinuxのWSLは公式提供ありませんが、Dockerイメージからアーカイブを作成してWSL環境にインポートすることで動かすことができます。

別に作成してあるWSL環境のLinuxからpodman(またはdocker)を実行してArch Linuxのコンテナーを起動します。

$ podman run --name arch -it docker.io/library/archlinux:latest

起動してターミナルセッションになったら、pacmanのアップデート、追加パッケージのインストール、一般ユーザーの追加を実施しておきます。

# pacman -Sy
# pacman -S sudo base-devel vi
# useradd -m -u 1000 -g wheel user
# passwd user
# exit

podman exportでファイルシステムのアーカイブを作成します。

$ podman export arch > arch.tar

次からはPowerShellのターミナル作業です。
インポート先のディレクトリーを作成し、先程作成したアーカイブをインポートします。

PS > mkdir C:\distros
PS > wsl --import Arch C:\distros\Arch arch.tar --version 2

デフォルトユーザーを先程作成した一般ユーザーにします。

PS > Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq Arch  | Set-ItemProperty -Name DefaultUid -Value 1000

Arch LinuxのWSL環境が無事できあがりました。

PS > wsl -d Arch
$ 

WSL2のKaliからローカルVMのMetasploitableに接続する

 article  Comments Off on WSL2のKaliからローカルVMのMetasploitableに接続する
Sep 292020
 

WSL2はHyper-Vテクノロジー下で動作するようになりました。

仮想マシンとして動作するようになり、速度も向上、Windowsファイルシステムの呪縛から解き放たれとよいことづくめのように思えますが、同ホスト上のHyper-V仮想マシンと接続できないという問題があります。

WSL2の仮想マシンは独自のHyper-V仮想スイッチ(デフォルトだとvEthernet (WSL))に接続されるためです。
当面の解決方法ですが、Hyper-V仮想マシンもWSL仮想スイッチに接続するか、下記Issueのコメントにあるように仮想スイッチ間の転送を許可することで接続できるようになります。

After converting to WSL2 no longer able to route traffic to other VSwitches on the same host. #4288

Get-NetIPInterface | where {$_.InterfaceAlias -eq 'vEthernet (WSL)' -or $_.InterfaceAlias -eq 'vEthernet (Default Switch)'} | Set-NetIPInterface -Forwarding Enabled

ただ残念ながらホスト再起動でリセットされてしまうようです。Administrator権限での実行が必要なこともあり対応が面倒ですので、よい対策が生まれることを期待したいと思います。