PAM/LDAPの達人が私を助けてくれることを願っていました。最近、Ubuntu ServerにLDAPディレクトリを設定して、クライアント(Webベースのシステムで使用)とスタッフ(SSH経由でログインする必要がある)の両方のアカウントを保持します。
LDAP認証は完全に機能しています。ただし、アカウント制限を機能させることはできません。スタッフアカウントには2001
と2999
のIDがあり、ssh-users
グループのメンバーになってサーバーへのログインを許可します。
問題の制限は/etc/ldap.conf
にあり、pam_min_uid
、pam_max_uid
およびpam_groupdn
です。
pam_groupdn
には、私のssh-users
グループへの完全なDNが含まれています。 pam_min_uid
= 2000
およびpam_max_uid
= 2999
。
今、私はそれらを追加することによってそれらを機能させることができました:
account [success=1 default=ignore] pam_ldap.so
pam_unix.so
の/etc/pam.d/common-account
行の上。ただし、ローカルのUnixアカウントはログインできません。SSHサーバーは、試行するとすぐに接続を強制終了します。
上記のファイルでpam_ldap.so
モジュールをsufficient
に設定しましたが、無効なユーザーはログインできないというメッセージが表示されますが、とにかくログインします。
では、UNIXユーザーのログインを許可しながら、LDAPユーザーにこれらのアカウント制限を設定するにはどうすればよいですか?
おそらくあなたはおそらく私がPAMの初心者だと思いますが、「ホームディレクトリを自動的に作成する」モジュールを機能させることができましたが:-)
どうもありがとう、アンディ
PAMには、アクセス制御リスト(少なくともUbuntuでは)に基づいてアクセスを制限する機能があります。これは、kubanskamacの回答(+1)のように、グループがLDAPに格納されているかどうかにかかわらず、グループをposixグループと見なします/etc/group
またはNIS。
/etc/security/access.conf
はアクセスリストファイルです。私のファイルでは、最後に入れました:
-:ALL EXCEPT root sysadmin (ssh-users):ALL
これにより、root、sysadmin、およびグループssh-users(LDAP内)以外のすべてのユーザーがログイン元(2番目のALL
)で拒否されます。
次に、PAMアカウントファイル(これはISアカウントモジュール)ですが、最後に追加します。
account required pam_access.so
これは、PAMにこのファイルを使用するように指示します。それは御馳走を働きます:-)
私は単に使用します
auth required pam_listfile.so sense=accept item=group file=/etc/groups.allow onerr=fail
特定のグループのみを許可する(ローカルグループとLDAPグループの両方)。これにより、ldap.conf
で何も指定する必要がなくなります。
承認を維持したい場合は、「アカウント」パスでユーザーをフィルタリングしないでください。むしろ「auth」パスで行うべきだと思います。次に、ご存じのように、pam_unixはローカルアカウントとLDAPアカウントの両方を処理するため(少なくとも「アカウント」パス上で)、pam_ldapはまったく必要ないようです。
編集:3番目に、「アカウント」パスにものを置くことを主張する場合(奇妙な副作用があると思われます)、シーケンスは次のように終了する必要があります:...、「十分なpam_ldap」、「必須のpam_localuser」、「必須のpam_unix」 。つまり、他のモジュールがある場合は、それらをpam_ldapの前に移動します。そうしないと、「十分な」節があるため、LDAPアカウントではそれらが無視されます。
@ andy-shellamに追加するために、これが私のcommon-account
ファイル:
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_access.so
account required pam_permit.so