Open10

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

uoyauoya

◆目標

  • debianで自宅用のdockerホストを立てる
  • メンテナンスのためsshでのターミナルアクセスと、rdpでのデスクトップアクセスは有効化する
  • デスクトップ環境も含め、分かる範囲で必要最小限のパッケージで構成する

結局最小限のパッケージしか入れないので、netinst CDイメージを利用する。
https://www.debian.org/CD/netinst/index.ja.html

◆セットアップする環境情報
Microsoft Windows [Version 10.0.26100.4484]上のHyper-V

uoyauoya

便利なのでインストール作業はグラフィカルインストールで行うが、デスクトップ環境はあとから入れたい。
言語を日本語にしてしまうとデスクトップ環境を入れるまでHyper-Vのコンソールで文字化けして辛いので、言語だけ英語でセットアップする。

言語を英語にすると英語圏のタイムゾーンが候補に表示されるが、other -> Asia -> japan とすればよい。

マッチするロケール定義がないので選べと表示される。en_USを選択

その後、キーボード配列やrootパスワード、名前などはウィザードにしたがって入力しインストール実行。
言語設定を英語にすると当然ウィザードも英語になるので、最初に日本語にして一通り流れを確認してやり直すと楽だった。

uoyauoya

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

uoyauoya

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

# インストールコマンド
apt install --no-install-recommends task-desktop gnome-core
uoyauoya

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

uoyauoya

gnome-coreの中身から、必要そうなものだけを抽出
https://packages.debian.org/bookworm/gnome-core

apt install --no-install-recommends \
    task-desktop \
    gnome-terminal \
    gnome-session \
    gnome-shell \
    gdm3 \
    gnome-control-center

gnome-control-centerはサーバー用途なら通常不要と考えられるが、自宅用なので利便性のためインストール

uoyauoya

そのほか好みのツールをインストール

apt install --no-install-recommends \
 vim \
 doas \
 ufw \
 xrdp

/etc/doas.conf はとりあえず1行だけ

permit persist ${username} as root
chmod 600 /etc/doas.conf

で権限調整

uoyauoya

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になっていないと有効なルール一覧が見れない
uoyauoya

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に変更