web-dev-qa-db-ja.com

Linux + Active Directory認証+特定のグループのみにログインを許可

私はWindows Active Directory認証を使用するLinuxボックスをいくつか持っていますが、これは問題なく動作します(Samba + Winbind)。

私が今やりたいのは、特定の人または特定のグループのみがActive Directory資格情報を使用してログインできるようにすることです。現在、有効なADアカウントを持つ人なら誰でもログインできます。これを少数のグループのみに制限したい。これは可能ですか?

14
Luma

グループがLinuxシステムで使用可能であると想定して、編集することをお勧めします/etc/security/access.conf Ubuntu、RedHatディストリビューション(およびそのフォーク)、そしておそらく他の束。これはPAMファイルを編集する必要がなく、それを行うための標準的な場所です。通常、ファイルにはコメントアウトされた例があります。

6
Slartibartfast

(ここでは、Samba 3について話していますが、Samba 4の経験はありません。)

これらの/etc/pam.d/xxxファイルを編集する必要はありません。 pam_winbind.confは必要なファイルで、通常/ etc/security/pam_winbind.confにあります。

これはpam_winbindモジュールの設定ファイルであり、CentOS/RedhatとDebian/Ubuntuの両方で動作します。 pam_winbind.confのmanページ を参照してください。

以下はファイルの例です。

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#

[global]

# turn on debugging
;debug = no

# turn on extended PAM state debugging
;debug_state = no

# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes

# authenticate using kerberos
;krb5_auth = no

# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =

# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794

# password expiry warning period in days
;warn_pwd_expire = 14

# omit pam conversations
;silent = no

# create homedirectory on the fly
mkhomedir = yes
4
yanqian

現在、/etc/ssh/sshd_configAllowGroupsディレクティブを使用して、ログインできるユーザーを制限しています。その行で1つ以上のADグループを指定すると、それらのユーザーだけがログインできるようになります。

これが機能するのは、ユーザーがonlyでsshを介してサーバーにリモートアクセスしている場合のみであることに注意してください。ローカルで歌っている場合は、別の解決策を見つける必要があります。

3
EEAA

はい、正確に達成しようとしていることに応じて、これを実行するいくつかの方法があります。

最初の方法は、samba構成を使用して行うことができます。これにより、これらのユーザーのみがSambaに接続できるようになり、他のユーザーは他のサービス(ssh、ローカル用語など)を介してログインできます。これにより、smb.confの[global]セクションに行を追加する必要があります。

valid users = @groupA @groupB

もう1つの方法は、PAMルールを変更することです。ディストリビューションが異なると、ここでは若干の違いがありますが、一般的に言えば、サービスごとのPAMルールと共通ルールがあり、どれが最適かを決定できます。 pam_requireモジュールを使用してアカウント制限を追加する必要があります。私のラップトップ(Fedora 13)の例は、/ etc/pam.d/system-authのアカウントセクションを次のように変更することです。

account     required      pam_unix.so
account     required      pam_require.so @groupA @groupB
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

管理を簡略化するために、このサーバーにログインできるユーザーを追跡する目的で、ADに新しいグループを作成することができます。

3
Ryan Bair

上記のいずれかをRHEL 7で動作させるのに苦労しました。以下は、動作させることができたものです。

/etc/sssd/sssd.conf

_access_provider = ad_を_access_provider = simple_ + _simple_allow_groups = @[email protected], @[email protected]_に変更します

visudo

sssdサービスを再起動します。

1
Adam S