Linux認証プロセス(NSS - > PAM - > AD)

Linux認証プロセス(NSS - > PAM - > AD)

私は組織の新しいシステム管理者であり、NSS、PAM、WINBINDが連携する方法の認証プロセスについて学びたいと思います。 winbindに問題があり、構成を改善しようとしています。

以下は、いくつかの主要な構成ファイルです。簡潔さのために一部だけコピーしたことに注意してください。

/etc/ssh/sshd_config

UsePAM yes

/etc/nsswitch.conf

passwd: files ldap winbind
shadow: files ldap winbind
group: files ldap winbind
services: files ldap

/etc/pam.d/ssh

auth required pam_env.so
auth sufficient pam_winbind.so
auth sufficient pam_krb5.so
auth sufficient pam_unix.so nullok
auth required pam_deny.so

たとえば、ADドメインのアカウントを使用してSSH経由でLinuxシステムにアクセスしたいとします。 Linuxシステムはwinbindを使用してADと対話します。

プロセスの仕組みは次のとおりです。私の考えではこれは働きます:

  1. SSHサービスはポート22を介してアクセス要求を受け取ります。ユーザーが資格情報を入力します。
  2. SSH サービスは認証に PAM を使用するように構成されているため、「/etc/pam.d/ssh」を参照して、使用する PAM モジュールを確認します。
  3. PAMでは、SSHは最初に "pam_winbind.so"モジュールを試すように設定されています。このモジュールの機能は、認証のためにADを照会することです。成功すれば、PAM を満たすのに十分なので、ユーザーにアクセス権を与えます。それ以外の場合は、リストの下に移動し続けます。

この過程でNSSはどのような役割を果たしますか? NSSが実際にどのような用途に使用されているのかを理解するのは困難です。私の考えでは、エクスプロイトが特定の「名前」を探すようにOSに知らせるシステムのようです。たとえば、上記のnsswitch.confファイルを使用してユーザーアカウントを見つける場合は、まずローカルの「ファイル」を見つけます。そこにアカウント情報が見つからない場合は、「ldap」サーバーを探し、最後に「winbind」を見つけます。

しかし、それがPAMがすることではありませんか?

PAMは「pam_winbind.so」ライブラリを利用して、ドメインコントローラのwinbind設定内容を認証します。 NSSに「winbind」がリストされているのはなぜですか?おそらく、これはPAMを使用しないサービスにも適用できますか?普通はどちらか?

ここに知識を伝えていただきありがとうございます!

関連情報