xrdpのトラブル

Linux

はじめに

WindowsのリモートデスクトップからDebianにGUIでログインできなくなったので、原因を調べました。

環境

- Debian12 Bookworm
- xrdp 0.9.21.1-1+deb12u1

症状

  • WindowsのリモートデスクトップからGUIでログインできない
  • パソコンに直結した液晶モニタからはGUIでログインできる
  • TeraTermを使ってSSHでログインできる
  • Xvnc、Xorgを使っている

原因

/etc/pam.d/xrdp-sesmanの記述が以下のようになっていたのが原因でした。
つまり、pam_sss.so を直接呼んだあとに common-auth でも pam_sss.so を呼ぶ → 認証失敗しており、pam_sss.so が2重に呼び出されています。
SSH や GDM は common-auth 経由のみなので成功します。

auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale

auth    required    pam_sss.so
account required    pam_sss.so
session  required    pam_sss.so

@include common-auth
@include common-account
@include common-session
@include common-password

/etc/pam.d/xrdp-sesman

以下のように記述することで、リモートデスクトップ、SSHでログインに成功することを確認しました。

auth       required pam_env.so readenv=1
auth       required pam_env.so readenv=1 envfile=/etc/default/locale

auth       include  common-auth
account    include  common-account
session    include  common-session
session    include  common-session-noninteractive

編集後は、サービスを再起動します。

sudo systemctl restart xrdp xrdp-sesman

/etc/xrdp/xrdp.ini

/etc/xrdp/xrdp.iniは以下のように記述しています。(抜粋)
port=ask-1 は、前回ログイン時のセッションを表示する設定です。

 [Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1
#xserverbpp=24
#delay_ms=2000

 [Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

その他

該当パソコンのログイン環境、テスト結果は下記だったので、PAM と xrdp-sesman の組み合わせだけが失敗しており、/etc/pam.d/xrdp-sesman が怪しいと目星を付けることができました。

  • Samba AD ドメイン (ADS) に参加済み
  • Linux 側の認証は SSSD (pam_sss.so) 経由
  • /etc/pam.d/xrdp-sesman は SSSD 用に設定済み
  • id username は成功
  • id username @レルム名.ドメイン名 は成功

Comments