web-dev-qa-db-ja.com

pam_accessの使用時にアカウントが許可されているかどうかを確認してください

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番目の編集:ログイン権限を調整していないが、監査のためにアクセスについてレポートしようとしていることを明確にします。

1
danw

私は最近、非常によく似た性質のPCI監査(これらのシステムにログインできるユーザーとその権限は何か)を実行する必要があったので、ここで達成しようとしていることをよく理解してください。方法は、PAMとLDAPの構成方法に応じて、環境ごとに異なります。

次の要因が環境に当てはまるようです。

  • 列挙されたpasswdデータベース(getent passwd)には、システムへのアクセスを許可してはならないユーザーが含まれています。
  • shadowの制限を考慮する必要があります。時々、とにかく。 broken_shadowが有効になっています。
  • PAMの制限を考慮する必要があります。 (pam_access制限を含みます。これにより、実際に呼び出しを実行せずにこれを実行するオールインワンツールを見つける可能性が大幅に低下します pam_acct_mgmt
  • アカウントを持っているユーザーには、KRB5の制限を考慮する必要があります。

PAMスタックをテストするユーティリティがなければ、この割り当ての複雑さを「高くて時間がかかる」と評価します。 pamtesterはそれが仕事をするように見えます。 getent passwd内のすべてのユーザーをループして、認証後のアカウンティングチェックを実行する必要があります。

pamtester sshd $user acct_mgmt

これは、sshを介してアクセスをテストするだけでよいことを前提としています。それ以上のテストが必要な場合は、そうしてください。構成したサービスの/etc/pam.dを確認し、必要なものは何でも監査します。

(最初の回答をお詫びします。私の最後の努力は、PAM監査よりもSudo監査に重点を置いており、「すべてを手作業で行う」という考え方が多すぎました。)

0
Andrew B