同じRedOSイメージ(CentOS 7ベース)で構成された「31」個のサーバーがあります。 LDAP Sambaドメインに移動し、LDAPユーザーグループに基づいてSSH経由で認証するように構成されています。このために、以下の変更が行われた。
ルートとして作成
echo "Domain admins" > /etc/ssh/access_groups.conf && chmod 600 /etc/ssh/access_groups.conf
/etc/pam.d/sshd 修正
____missed default____
account required pam_nologin.so
account sufficient pam_localuser.so
account required pam_listfile.so onerr=fail item=group sense=allow file=/etc/ssh/access_groups.conf
account include password-auth
_______ missed default____
visudo /etc/sudoers.d/01-domain-user
#sudo admin users LDAP auth
"%mydomain.local\Domain admins" ALL=(ALL) NOPASSWD:ALL
systemctl sshdの再起動
この構成は、約30台以上のサーバーに正常に適用され実行されています。サーバー31では、この構成は機能しません。ログインしようとすると、クライアントはサーバーによって接続が終了したことを示します。
debug3: failed to open file:C:/dev/tty error:3
debug1: read_passphrase: can't open /dev/tty: No such file or directory
t1_rushao@ruyansvap38's password:
debug3: send packet: type 50
debug2: we sent a password packet, wait for reply
Connection closed by 10.65.201.61 port 22
サーバー側から
sshd[18238]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.65.90.176 user=t1_rushao
sshd[18238]: pam_listfile(sshd:account): Refused user t1_rushao for service sshd
sshd[18238]: Failed password for t1_rushao from 10.65.90.176 port 59786 ssh2
sshd[18238]: fatal: Access denied for user t1_rushao by PAM account configuration [preauth]
コメントしたら「アカウントpam_listfile.soが必要です...」ドメインユーザーとしてSSH経由で接続できますが、sudoも機能しません。同時に、
id t1_rushao
uid=1006007868(t1_rushao) gid=1006000513(domain users) groups=1006000513(domain users),1006000512(domain admins)
sssdサービスが動作しており、サーバーのドメインユーザー認証も機能しているようで、kinit、net Ads Joinを数回試しました。 /etc/security/access.conf はデフォルトで完全にコメントされています。
この構成がこのサーバーで機能しない理由はわかりません。問題がドメイングループのどこかにあり、システムがユーザーグループを設定に一致させることができないことがわかりますが、なぜですか?
答え1
可能な大文字と小文字の問題:id
コマンドはグループをdomain admins
すべて小文字として報告しましたが、ユーザー/etc/ssh/access_groups.conf
と/etc/sudoers.d/01-domain-users
その両方がDomain admins
最初の大文字としてグループを指定しました。
pam_listfile.so
Unix / Linuxシステムは通常大文字と小文字を区別するため、これがルールの例外であると信じる理由はありません。私はこれがsudo
間違いなく大文字と小文字を区別することを知っています。
access_groups.conf
一致するように、sudoers設定でグループ名をすべて小文字に変更してみてくださいid
。
sssd
(/etc/sssd/sssd.conf
およびすべてのファイル)/etc/sssd/conf.d/*.conf
には、ドメインの構成や設定などにfull_name_format
若干のuse_fully_qualified_names
違いがある場合がありますcase_sensitive
。
あなたの作業サーバーには明らかにこれが必要ですcase_sensitive = false
。これはsssdのデフォルト設定ではないようです。たぶん、機能していないサーバーの一部が欠落している可能性があります。
答え2
通信会社、まさに!実際に働く。最後のサーバーでは、sssd.conf
1行だけ追加すると他のサーバーとは異なります。
re_expression = (?P<name>[a-z0-9._-]+)
他のサーバーにはそのような行はありません。すべてのサーバーにsssd.conf設定がありますcase_sensitive = False
分析しましたが、このファイルはjoin-to-domain
RedOS開発チームのスクリプトパッケージによって自動的に構成され、サーバーをLDAPドメインに追加します。数日前に新しいバージョンのスクリプトがリリースされましたが、このサーバー(数日前に作成されたもの)では、sssdは他のサーバーとは異なる構成になっています。
その結果、Domain admins
スペースで区切られ、sssd構成は大文字と小文字を区別する両方の条件が満たされます。単に名前付きグループをテストし、小文字で構成されたグループ名を解決することで動作します。すべてを無効にし、すべてがグループと大文字と小文字を区別しない構成re_expression
で機能します。Domain admins
開発者になぜこのようなことをしたのか尋ねる必要があります。