Mac で Lima + KaliLinux + GUI手順まとめ

VirtualBox だとうまくいかなかったので、AI駆動インストールで Lima を使って作った時のメモ

  • GUIは Xfce + xrdp、RDPポートは 3390
  • Limaは安定優先で qemu固定。vzだとログインでコケる。
brew install lima qemu

置いておくところ。作業ディレクトリ

mkdir -p /Users/__USER__/lima-kali
cd /Users/__USER__/lima-kali

取得して展開

curl -O https://kali.download/cloud-images/current/kali-linux-2025.4-cloud-genericcloud-arm64.tar.xz

tar zxvf kali-linux-2025.4-cloud-genericcloud-arm64.tar.xz

disk.raw を kali.qcow2 に変換した

qemu-img convert -p -f raw -O qcow2 disk.raw kali.qcow2


kali.yaml

vmType: "qemu"
arch: "aarch64"
images:
  - location: "./kali.qcow2"
    arch: "aarch64"
cpus: 4 // 任意
memory: "4GiB" // 任意
portForwards:
  - guestPort: 3390
    hostPort: 3390
    proto: tcp


インスタンス作成と起動

limactl create --name=kali kali.lima.yaml
limactl start kali
limactl shell kali bash

ここから Kali内 で作業。


GUI(Xfce) + XRDP を入れる

sudo apt-get update
sudo apt-get full-upgrade -y
sudo apt-get install -y xfce4 xfce4-goodies dbus-x11 xorgxrdp xrdp


XRDPのポートを3390へ

sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini


パスワード設定

RDPでログインするユーザーは、Kali内に存在してホームがあるユーザーを使う必要があった

sudo passwd __USER__


XRDP起動

sudo systemctl enable --now xrdp

鍵の Permission denied 対策(必要なら)

ログに Cannot read private key file /etc/xrdp/key.pem: Permission denied が出たら実行。

[Kali]

getent group ssl-cert || sudo groupadd ssl-cert
sudo usermod -aG ssl-cert xrdp
sudo chgrp ssl-cert /etc/xrdp/key.pem /etc/xrdp/cert.pem
sudo chmod 640 /etc/xrdp/key.pem /etc/xrdp/cert.pem
sudo systemctl restart xrdp


Xfceを必ず起動

ここまでやってリモートログインすると真っ黒だったので以下の対応をする

ユーザーセッション指定

echo "startxfce4" > ~/.xsession
echo "startxfce4" > ~/.Xsession
chmod +x ~/.xsession ~/.Xsession

Xfce固定

XRDPの starttwm.sh を固定にする

バックアップ
sudo cp -a /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.bak.$(date +%Y%m%d%H%M%S)

コピペで流すか
sudo tee /etc/xrdp/startwm.sh >/dev/null <<'EOF'
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
[ -r /etc/profile ] && . /etc/profile
exec startxfce4
EOF

sudo chmod +x /etc/xrdp/startwm.sh
sudo pkill -u __USER__ || true
sudo systemctl restart xrdp xrdp-sesman


ポートフォワード確認

nc -vz 127.0.0.1 3390

success !!


RDP接続

今は、Microsoft Appかな

  • Host: 127.0.0.1:3390
  • User: __USER__

トラブル時ログ

sudo systemctl status xrdp --no-pager
sudo ss -lntp | grep xrdp
tail -n 200 /var/log/xrdp.log
tail -n 200 /var/log/xrdp-sesman.log

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

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