通常采取防范:限制服务器ssh登入次数,账号锁定,IP拉黑,日志查看等等...
pam_tally2-账号锁定测试主机:Centos 7
因为pam_tally2模块在centos8后已淘汰掉,centos8用pam_faillock 模块替换。
修改配置文件
vi /etc/pam.d/sshd
新增一行:
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
修改后保存退出重启一下ssh服务。
解除锁定端口配置、登录次数pam_tally2 -u root -r #清空root用户的错误登录次数
pam_tally2 --user 用户名 --reset #清空指定用户的错误登录次数
修改ssh配置文件:
vim /etc/ssh/sshd_config
去掉前面的#号注释
port 22 #ssh默认端口号22
MaxAuthTries=6 #登入6次就断开
PermitRootLogin yes #允许root用户登录
然后重新启动一下ssh服务使配置生效。
faillock-账号锁定测试主机:Centos 8
因为pam_tally2模块在centos8后已淘汰掉,centos8用faillock 模块替换。
修改配置文件
vi /etc/pam.d/system-auth
添加如下代码到指定行数,必须按顺序添加 :
auth required pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300
auth [default=die] pam_faillock.so even_deny_root authfail audit deny=3 unlock_time=300
account required pam_faillock.so
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
vi /etc/pam.d/password-auth
修改这个文件和上个文件内容一样:
添加如下代码到指定行数,必须按顺序添加
auth required pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300
auth [default=die] pam_faillock.so even_deny_root authfail audit deny=3 unlock_time=300
account required pam_faillock.so
查看所有用户的登录失败次数记录
faillock
显示的valid值,v表示有效,i表示无效。
只查看单个用户登录情况
faillock --user 用户名
解锁一个用户账户
faillock --user 用户名 --reset
解锁所有用户
防火墙限制IPfaillock --reset
查看登入成功的用户日志:
last -f /var/run/utmp
last
查看登入失败的用户日志:
last -f /var/log/btmp
lastb
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject" #禁止单个IP
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject" #禁止IP段
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept" #允许单个IP的某个端口
reject 拒绝,accept 允许。重新载入让配置生效:
firewalld-cmd --reload
使用 'last -f /var/log/btmp' 查看登入失败的IP,查到这些IP后使用IP封禁命令进行封禁。
查看被封禁的IP:
firewall-cmd --list-rich-rules
结语
已无暇估计过去,要向前走。



