操作系统:CentOS 7
(一)修改SSH远程登录端口
SSH默认端口22/TCP,可以通过SSH密钥扫描或者root账户登录尝试进行暴利破解,如下图即为境外IP尝试登录失败的记录信息:
lastb
通过统计登录失败次数,发现来自新加坡的159.89.199.153这个货在短时间内尝试登录了1635次,如下:
lastb | awk '{ print " IP地址:" $3}' | sort | uniq -c | sort -n
所以,我们先修改默认端口,这样就减少了普遍性暴利攻击的概率。
设置步骤:
1)编辑配置文件
vim /etc/ssh/sshd_config取消Port 22前的注释符号“#”,新增Port 5000作为SSH远程登录的端口,两条记录并存是为了防止修改操作失误导致无法远程登录,修改成功后删除Port 22即可。

重启SSH服务
systemctl restart sshd2)开放防火墙端口
firewall-cmd --zone=public --add-port=5000/tcp –permanent重启防火墙服务使修改生效。
systemctl restart firewalld查看防火墙已开放的端口,输出结果应该包括5000。
firewall-cmd --list-ports3)由于我用的是云服务器,所以需要在安全组设置规则,在入方向增加5000/5000的端口范围。

4)使用5000端口远程连接成功后,可删除Port 22。
5)提示:如果开启了Selinux,需要进行相应的设置。
检查Selinux是否开启。
sestatus disabled表示关闭状态,enabled表示开启状态。

如果开启状态执行下面命令:
semanage port -a -t ssh_port_t -p tcp 5000(二)设置登录密码错误锁定用户
根据前文提到的来自新加坡的货不断尝试登录,我们可以通过设置限制密码错误次数锁定用户,禁止他继续尝试登录,如果用户解锁后输入的密码仍然错误,则再次重新锁定。
设置步骤:
1)备份sshd和login文件,备份的目的是怕搞砸了,有备无患。
cp /etc/pam.d/sshd /etc/pam.d/sshd.bakcp /etc/pam.d/login /etc/pam.d/login.bak检查是否备份成功。

2)检查pam的pam_tally2.so模块,其用途就是实现锁定和解锁的功能。
find / -name "pam_tally2.so"如下图正常。

3)修改文件,该文件用于密码设置及登陆控制。
vim /etc/pam.d/system-auth在第一行添加如下:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=40 even_deny_root root_unlock_time=30onerr=fail:表示连续失败。
deny=3:表示用户(普通和root用户)登录密码连续错误3次后锁定用户。
unlock_time=40:表示普通用户解锁时间,单位是秒。
root_unlock_time=30:表示root用户解锁时间,单位是秒
4)修改配置文件/etc/pam.d/sshd,限制ssh远程登录尝试。
vim /etc/pam.d/sshd在第一行添加如下:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30保存退出后,重启SSH服务。
systemctl restart sshd5)修改登录配置文件/etc/pam.d/login,限制tty方式登录尝试。
vim /etc/pam.d/login在第一行添加如下:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30解除用户锁定:
查看用户的错误登录次数
pam_tally2 –-user清空root用户的错误登录次数
pam_tally2 -u root -r清空指定用户的错误登录次数
pam_tally2 --user 用户名 --reset原文链接:https://mp.weixin.qq.com/s/Uv2b6qyXwaYxu0jn5fUSMQ