Kali Linux 2020.2 でVNCサーバを利用する。

Kali Linux 2020.2 へVNC接続を行うためセットアップを実施したが結構苦戦したので記載しておきます。

VNC用のポートの穴あけをする

インストール時のオプションは large を選択しておいたところ、tigervncserverはインストールされていたため、VNCのポートを穴あけしておきます。
尚、今回はインストール時の一般ユーザで操作することを想定しているため、sudo付きで実行しています。

sudo ufw allow 5901

設定後、すぐに仮想マシンの再起動をかけてしまったため再起動が必須なのかどうかは分かりませんが、一応VNC用の穴あけは完了です。
もし異なるディスプレイ番号を利用する場合は、適切なポート番号を指定してください。

VNCサーバを起動する。

いつも通りのコマンドでVNCサーバを起動してみます。

vncserver -geometry 1440x900 :1

そしてVNCクライアントで接続してみると・・・画面が映りません。

~/.vnc/xstartup を調べてみると、以下のようになっていました。

#!/bin/sh

#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
def
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

セットアップ時にX Window SystemはKali Linux 2020.2のデフォルトの xfce を選択していました。
しかし、Gnomeを呼び出すコンフィグになっているように見えます。
試行錯誤した結果、以下のコンフィグで動かすと、とりあえずはGUIが表示されました。

#!/bin/sh

#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
xrdb $HOME/.Xresources
xsetroot -solid grey
def
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

/etc/X11/Xsession

VNCサーバの起動をサービス化する。

設定自体は上記で完了ですが、再起動時にVNCサーバが自動起動するようにしたかったのでサービスとして登録することにしました。
vncserverコマンドと区別するため、vnc-serverという名前でサービスに登録していきます。
そのため、以下の内容のファイルを /etc/systemd/system/vnc-server.service として配置しました。

[Unit]
Description = VNC server service

[Service]
ExecStart = sudo -u (ユーザ名) vncserver -geometry 1440x900 :1
ExecStop = sudo -u (ユーザ名) vncserver -kill :1
Type = forking

[Install]
WantedBy = multi-user.target

気をつけないといけないのはType指定でforkingを指定するところになります。
デフォルトのsimpleでは、プロセスが維持されないのか接続しようとしてもプロセスが存在しませんでした。
最後にファイルの権限を修正して終了になります。

sudo chown root:root  /etc/systemd/system/vnc-server.service
sudo chmod 644  /etc/systemd/system/vnc-server.service

以上でとりあえずVNCサーバをKali Linux上で動作させることはできました。
すべての機能が正常に動くかはまだ分かりません。