web-dev-qa-db-ja.com

設定ファイルに従ってLinuxマシンへのユーザーログインを制御する方法

PAMを使用してユーザーのログインを認証します

からの情報- http://linux.die.net/man/8/pam_listfile

linux Red-Hatマシンには、5人のdiffユーザーがいます

user1
user2
user3
user4
user5

最初の3人のユーザーに対してのみsshログインを有効にしたい

そう

ファイルを作成しました

more /etc/logins_users.txt

user1
user2
user3

そして私は/ etc/pam.d/sshdファイルに以下を追加します

   auth required pam_listfile.so item=user onerr=fail sense=allow file=/etc/logins_user.txt

Sshdサービスを再起動します

しかし、user4user5は、それにもかかわらずLinuxマシンにアクセスできますlogins_users.txtファイルで定義されていません

私の構成の何が問題になっていますか?

user4およびuser5がブロックされているにもかかわらず、sshログインアクセスを保持している理由???

4
maihabunash

構成に問題はありません。

このように/etc/pam.d/sshdの最初の行に構成を記述します

#%PAM-1.0 
 auth required pam_listfile.so item = user onerr = failsense = allow file =/etc/logins_user.txt 
 auth required pam_sepermit.so 
 auth include password-auth 
 account required pam_nologin.so 
 account include password-auth 
 password include password-auth 
#pam_selinux.so closeは、最初のセッションルール
セッションが必要pam_selinux.soclose 
セッションが必要pam_loginuid.so 
#pam_selinux.so openの後には、ユーザーコンテキストで実行されるセッションのみが続く必要があります
セッションが必要pam_selinux.soopen env_params 
セッションオプションpam_keyinit.so強制取り消し
セッションインクルードパスワード-auth 
 

これは、PAMがこれらすべての構成を1行ずつチェックするためです。構成を最後の行に配置すると、条件をチェックする前に他の条件が通過します。そのため、すべてのユーザーがログインできます。これをチェックして私に知らせてください。

これを試すときは注意してください

何かを変更する前に、ファイルのバックアップを取ります。

このように構成すると

 auth required pam_listfile.so item = user onerr = failsense = allow file =/etc/logins_user.txt 
 auth include password-auth 
 account required pam_nologin.so 
。
。
 session include password-auth 
 

そして、条件は失敗しますが、PAMは残りのルールをチェックします。

このように構成すると

 auth requisite pam_listfile.so item = user onerr = failsense = allow file =/etc/logins_user.txt 
 auth include password-auth 
 account required pam_nologin.so 
。
。
 session include password-auth 

そして、上記の条件が失敗した場合、PAMは残りのルールをチェックしません。

必須

Failure also results in denial of authentication, although PAM will still call all the other modules listed for this service before denying authentication. 

必要条件

Failure to authenticate via this module results in immediate denial of authentication. 

したがって、あなたの場合、許可を与える条件を下回っている可能性があります

 auth include password-auth 

Ssh中に正しいパスワードを入力しています。

1
max