LDAPとPAMを使用したアカウントログインの制限


14

ここでPAM / LDAPの達人が助けてくれることを望んでいました。最近、Ubuntu ServerにLDAPディレクトリを設定して、クライアント(Webベースのシステムで使用)とスタッフ(SSH経由でログインする必要がある)の両方のアカウントを保持しています。

LDAP認証は完全に機能しています。ただし、アカウントの制限を機能させることはできません。スタッフアカウントはIDを2001持ち2999ssh-usersサーバーのログインを許可するグループのメンバーになります。

問題の制限は、、、/etc/ldap.confおよびpam_min_uidpam_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の初心者ですが、「ホームディレクトリを自動的に作成する」モジュールを機能させることができました:-)

ありがとう、アンディ

回答:


11

PAMには、アクセス制御リスト(少なくともUbuntuで)に基づいてアクセスを制限する機能があります。これは、kubanskamacの回答(+1)のように、LDAP /etc/groupまたはNISに保存されているグループをposixグループと見なします。

/etc/security/access.confアクセスリストファイルです。私のファイルでは、私は最後に入れました:

-:ALL EXCEPT root sysadmin (ssh-users):ALL

これにより、root、sysadmin、およびグループssh-users(LDAPにある)を除くすべてのユーザーが(2番目のALL)ログインから拒否されます。

次に、PAMアカウントファイル(これはアカウントモジュールです)の最後に追加します。

account required pam_access.so

このファイルを使用するようにPAMに指示します。それは御treat走になります:-)


PAMアカウントファイルの最初にpam_access.soを配置して有効にする必要がある場合があることに注意してください。
crb

5

私は単に使用します

auth required    pam_listfile.so   sense=accept item=group file=/etc/groups.allow onerr=fail

特定のグループのみを許可する(ローカルグループとLDAPグループの両方)。この方法では、で何も指定する必要はありませんldap.conf

許可をそのまま維持する場合は、「アカウント」パスでユーザーをフィルタリングしないでください。むしろ「auth」パスで行うべきだと思います。第二に、ご覧のとおり、pam_unixはローカルアカウントとLDAPアカウントの両方を(少なくとも「アカウント」パスで)処理するため、pam_ldapはまったく必要ないようです。

編集:第三に、「アカウント」パス(奇妙な副作用があると思う)に何かを置くことを主張する場合、シーケンスは次で終わる必要があります。 。つまり、他のモジュールがある場合は、pam_ldapの前に移動します。そうしないと、「十分な」句のためにLDAPアカウントでは無視されます。


pam_unixはgetent呼び出しを使用してアカウント情報を取得していると思います-/etc/nsswitch.confのようにLDAPを使用します。これらの行は、libpam-ldapパッケージインストーラーによってPAM構成ファイルに追加されました。pam_groupdnのデフォルトのアクションは何もしていませんでしたが、答えを検索しているときに、「アカウント」パスでpam_ldap.soモジュールを使用しないと有効にならないという人がいました。可能であれば、LDAPに特に関連しているため、ldap.confの設定を保持します。
アンディシェラム

(1)pam_unixについては正しいです。(2)pam_localuserのアドバイスで回答を更新しています。
クバンチク

私がPAMについて読んだすべてのことは、アカウントがこのための正しいセクションであることを示しています。auth-ユーザーを識別し、アカウントアカウントを認証します-パスワードエージング、ログイン時間制限、リモートログイン制限などのユーザーアカウントの特性を確認しますこれは認証の問題ではありません-ユーザー名/パスワードが正しいため、ユーザーは特定された。一部のアカウントがログインできないようにするため、これはアカウントの制限です。
アンディシェラム

0

@ 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.