私はWindows Active Directory認証を使用するLinuxボックスをいくつか持っていますが、これは問題なく動作します(Samba + Winbind)。
私が今やりたいのは、特定の人または特定のグループのみがActive Directory資格情報を使用してログインできるようにすることです。現在、有効なADアカウントを持つ人なら誰でもログインできます。これを少数のグループのみに制限したい。これは可能ですか?
グループがLinuxシステムで使用可能であると想定して、編集することをお勧めします/etc/security/access.conf
Ubuntu、RedHatディストリビューション(およびそのフォーク)、そしておそらく他の束。これはPAMファイルを編集する必要がなく、それを行うための標準的な場所です。通常、ファイルにはコメントアウトされた例があります。
(ここでは、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
現在、/etc/ssh/sshd_config
のAllowGroups
ディレクティブを使用して、ログインできるユーザーを制限しています。その行で1つ以上のADグループを指定すると、それらのユーザーだけがログインできるようになります。
これが機能するのは、ユーザーがonlyでsshを介してサーバーにリモートアクセスしている場合のみであることに注意してください。ローカルで歌っている場合は、別の解決策を見つける必要があります。
はい、正確に達成しようとしていることに応じて、これを実行するいくつかの方法があります。
最初の方法は、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に新しいグループを作成することができます。
上記のいずれかをRHEL 7で動作させるのに苦労しました。以下は、動作させることができたものです。
/etc/sssd/sssd.conf
_access_provider = ad
_を_access_provider = simple
_ + _simple_allow_groups = @[email protected], @[email protected]
_に変更します
%[email protected] ALL=(ALL) ALL
sssdサービスを再起動します。