CentOSはPAMを使用して複数回のログインに失敗したユーザーをロックするチュートリアル
Linuxにはpam_がありますtally2.soのPAMモジュールは,ユーザのログイン失敗回数を制限し,回数が設定した閾値に達するとユーザをロックする.
PAMのプロファイルのコンパイル
# vim /etc/pam.d/login
#%PAM-1.0 auth required pam_tally2.so deny=3lock_time=300 even_deny_root root_unlock_time=10 auth [user_unknown=ignoresuccess=okignoreignore=ignore default=bad] pam_securetty.so auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session optional pam_keyinit.so force revoke session required pam_loginuid.so session include system-auth session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open
各パラメータの解釈
even_deny_root 也限制root用户; deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒; root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒; 此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。#%PAM-1.0の下、つまり2行目にコンテンツを追加するには、必ず前に書き、後ろに書くと、ユーザーはロックされていますが、ユーザーが正しいパスワードを入力すれば、ログインできます!
最終効果は下図のようです
これはユーザのttyからのログインを制限するだけであり,リモートログインを制限するものではなく,リモートログインを制限するにはSSHDファイルを変更する必要がある.
# vim /etc/pam.d/sshd
#%PAM-1.0 auth required pam_tally2.so deny=3unlock_time=300 even_deny_root root_unlock_time=10 auth include system-auth account required pam_nologin.so account include system-auth password include system-auth session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so
同じく2行目に追加!
ユーザーのログインに失敗した回数の表示[root@node100 pam.d]# pam_tally2 --user redhat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1指定したユーザーのロック解除
[root@node100 pam.d]# pam_tally2 -r -u redhat Login Failures Latest failure From redhat 7 07/16/12 15:18:22 tty1
このリモートsshの时、ヒントがなくて、私はXshellを使って、他の端末がヒントがあるかどうか分からないで、设定の値を超えて、正しいパスワードを入力してもログインできません!