debian12で最小限のdesktop環境付きのdockerホストをセットアップする

◆目標
- debianで自宅用のdockerホストを立てる
- メンテナンスのためsshでのターミナルアクセスと、rdpでのデスクトップアクセスは有効化する
- デスクトップ環境も含め、分かる範囲で必要最小限のパッケージで構成する
結局最小限のパッケージしか入れないので、netinst CDイメージを利用する。
◆セットアップする環境情報
Microsoft Windows [Version 10.0.26100.4484]上のHyper-V

便利なのでインストール作業はグラフィカルインストールで行うが、デスクトップ環境はあとから入れたい。
言語を日本語にしてしまうとデスクトップ環境を入れるまでHyper-Vのコンソールで文字化けして辛いので、言語だけ英語でセットアップする。
言語を英語にすると英語圏のタイムゾーンが候補に表示されるが、other -> Asia -> japan とすればよい。
マッチするロケール定義がないので選べと表示される。en_USを選択
その後、キーボード配列やrootパスワード、名前などはウィザードにしたがって入力しインストール実行。
言語設定を英語にすると当然ウィザードも英語になるので、最初に日本語にして一通り流れを確認してやり直すと楽だった。

ウィザードの細かい選択肢でどれを選ぶかはこちらの方のブログが詳しかった
ただ、今回はstandard system utilitiesもチェックを外した

再起動後、まずはrootでログインしてセットアップしていく。
/etc/apt/sources.list
にインストールメディアが(コメントアウトはされているが)残っているのが気になったので削除

task-gnome-desktopが依存している、gnome-coreとtask-desktopのみをインストール。推奨パッケージはインストールしない。
# インストールコマンド
apt install --no-install-recommends task-desktop gnome-core

グラフィカルインストーラでgnomeを選択してインストールした場合に比べればかなり絞られているものの、いくつかユーティリティアプリがインストールされていた。

gnome-coreの中身から、必要そうなものだけを抽出
apt install --no-install-recommends \
task-desktop \
gnome-terminal \
gnome-session \
gnome-shell \
gdm3 \
gnome-control-center
gnome-control-centerはサーバー用途なら通常不要と考えられるが、自宅用なので利便性のためインストール

そのほか好みのツールをインストール
apt install --no-install-recommends \
vim \
doas \
ufw \
xrdp
/etc/doas.conf はとりあえず1行だけ
permit persist ${username} as root
chmod 600 /etc/doas.conf
で権限調整

ufwコマンドが認識されなかったので.bashrc
に追加
export PATH=$PATH:/usr/sbin
ssh, rdp以外のincomingの通信を遮断
# to 0.0.0.0/0 なしだと ipv6についてもポートがオープンされる
ufw allow proto tcp to 0.0.0.0/0 22
ufw allow proto tcp to 0.0.0.0/0 3389
ufw allow proto udp to 0.0.0.0/0 3389 # RDPではudpも許可
ufw default deny # デフォルトはincomingは拒否する
ufw enable
ufw status verbose # enableになっていないと有効なルール一覧が見れない

xrdpがうまく動かなかった。
下の流れで修正(各手順が本当に必要なのかわかっていない、やってみてうまく行っただけ)
不足?パッケージを追加
apt install --no-install-recommends \
gnome-settings-daemon \
gnome-keyring
一度xrdpを完全にアンインストール
apt remove --purge xrdp
依存関係も含めて再インストール
apt install --no-install-recommends \
ssl-cert \
xrdp
/etc/xrdp.ini
のsecurity_layerをnegotiate→rdpに変更