任务目标
配置 Linux 服务器ssh远程登录失败处理机制,防止黑客爆破服务器密码
操作步骤
- 备份原配置文件
$ sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- 安装
pam_tally2
统计登陆失败次数
# 对于Debian/Ubuntu系统:
$ sudo apt install libpam-modules
# 对于CentOS/RHEL系统:
$ sudo yum install pam
- 使用 Sed 命令直接编辑
$ sudo sed -i '$a auth required pam_faillock.so preauth silent audit deny=5 unlock_time=1800' /etc/pam.d/sshd
$ sudo sed -i '$a auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=1800
' /etc/pam.d/sshd
$ sudo sed -i 's/#LoginGraceTime 2m/LoginGraceTime 30m/' /etc/ssh/sshd_config
$ sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 5/' /etc/ssh/sshd_config
- 重启使配置生效
$ sudo systemctl restart sshd
封禁原理为登录失败五次,将该账号锁定五分钟,无论什么 IP 都无法继续登录,适合作为内网服务器 ssh 策略,如果部署在外网的服务器配置了该策略,很有可能永远都访问不了了(外网一直有机器人在爆破 ssh 端口)