Pam_accessと/etc/security/access.confを使用して、Rhel6.5ホストにログインできるユーザーを制限しています。
私は多様なユーザーベースのLDAPサーバーを持っていますが、セキュリティ担当者は誰が何にログインできるかのリストを求めています。
アカウントがホストにログインできるかどうかを確認するためのわかりやすい方法が必要です。 getent passwd、id、finger、groups、および私が試した他のすべてのツールは、アカウントのログインが制限されているかどうかにかかわらず、同じ出力を返します。 passwd -Sは、LDAPアカウントではまったく機能しないようです。
特定のアカウントにログイン権限があるかどうかを確認する方法はありますか? Solarisでは、ユーザーまたはネットグループが/ etc/passwdにない場合、どのツールも制限されたアカウントを識別できませんが、Linuxではまったく逆のようです。
ありがとう!
編集:これは/etc/pam.d/system-authのアカウントセクションです:_account required pam_access.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_krb5.so account required pam_permit.so
_
私のpuppet設定は、pam設定を変更する可能性のある次のことだけを行います。 _/usr/sbin/authconfig --enablemkhomedir --updateall /usr/sbin/authconfig --enablekrb5 --updateall /usr/sbin/authconfig --enablepamaccess --updateall /usr/sbin/authconfig --enablesssd --updateall /usr/sbin/authconfig --nisdomain=domainname.corp --updateall
_ my /etc/security/access.conf _+ : root : ALL .... all system accounts + : @ngunix_admins : ALL - : ALL : ALL
_ My netgroup getent netgroup ngunix_admins ngunix_admins ( ,danw,domainname.corp)
私はngunix_adminsネットグループにいるので、これは理にかなっています% id danw uid=355400001(danw) gid=355400001(danw) groups=355400001(danw) % getent passwd danw danw:*:355400001:355400001:unixadmin:/home/danw:/bin/bash
しかし、この他のユーザーはngunix_adminsネットグループに含まれていないため、彼がログインできないことを特定する方法が必要です。id testuser uid=355400003(testuser) gid=355400003(testuser) groups=355400003(testuser) getent passwd testuser testuser:*:355400003:355400003:first last:/home/testuser:/bin/bash
2番目の編集:ログイン権限を調整していないが、監査のためにアクセスについてレポートしようとしていることを明確にします。
私は最近、非常によく似た性質のPCI監査(これらのシステムにログインできるユーザーとその権限は何か)を実行する必要があったので、ここで達成しようとしていることをよく理解してください。方法は、PAMとLDAPの構成方法に応じて、環境ごとに異なります。
次の要因が環境に当てはまるようです。
passwd
データベース(getent passwd
)には、システムへのアクセスを許可してはならないユーザーが含まれています。shadow
の制限を考慮する必要があります。時々、とにかく。 broken_shadow
が有効になっています。pam_access
制限を含みます。これにより、実際に呼び出しを実行せずにこれを実行するオールインワンツールを見つける可能性が大幅に低下します pam_acct_mgmt
)PAMスタックをテストするユーティリティがなければ、この割り当ての複雑さを「高くて時間がかかる」と評価します。 pamtester
はそれが仕事をするように見えます。 getent passwd
内のすべてのユーザーをループして、認証後のアカウンティングチェックを実行する必要があります。
pamtester sshd $user acct_mgmt
これは、ssh
を介してアクセスをテストするだけでよいことを前提としています。それ以上のテストが必要な場合は、そうしてください。構成したサービスの/etc/pam.d
を確認し、必要なものは何でも監査します。
(最初の回答をお詫びします。私の最後の努力は、PAM監査よりもSudo監査に重点を置いており、「すべてを手作業で行う」という考え方が多すぎました。)