最近登陆服务器的时候,发现有很多未知的ssh登录尝试。CentOS系统中ssh登录的日志文件在/var/log/secure
。使用cat /var/log/secure | grep Failed | tail -50
可以查看最近的50条记录。我查看这个文件的时候发现有一个ip尝试了7000次登录,并且在我登录期间仍然在不停进行尝试,真是丧心病狂,令人发指。必须要采取措施限制这些奇怪的行为。
修改SSH默认端口
ssh的默认端口是22,修改端口会增加被破解的障碍。
- 首先选一个你喜欢的端口,只要没被占用就可以。然后在防火墙中打开这一端口。
- sshd的配置文件位于
/etc/ssh/sshd_config
,修改端口设置之后重启sshd服务。
大多数情况下到这一步端口已经修改好了。但是有些主机商(比如linode)会要求使用semanger声明修改。 - (Option) 安装 policycoreutils-python:
yum install policycoreutils-python
,执行semanage port -a -t ssh_port_t -p tcp $PORT
。 - 运行
ss -tnlp | grep ssh
查看端口是否正确。自动封禁多次登录失败的IP
将多次登录失败的IP添加到/etc/hosts.deny
文件。
创建一个脚本:/usr/local/bin/autodeny.sh
在命令行中运行crontab -e
,添加一行:*/10 * * * * sh /usr/local/bin/autodeny.sh
,每十分钟自动执行一次。当登录失败超过10次之后IP会被加入黑名单。记得同时将你常用的IP添加到/etc/hosts.allow
文件中,以免出现乌龙。