不得不说,把服务器暴露在公网上还是非常危险的。这不,刚撸到的某云服务器,部署博客没几天,就遭到黑客持续的暴力攻击——持续的暴力破解SSH账号密码!
案发现场
今天闲来摸鱼,打开终端,通过ssh登录到我的云服务器,顺手看了一眼SSH登录日志。不看不要紧,一看吓一跳,请看下图:
tail -500 /var/log/secure
每隔几秒就出现一次SSH登录记录,也就是黑客正在利用字典暴力破解我的服务器SSH账号密码。
好家伙,是从德国发起的攻击。那么遇到这种情况,该如何避免SSH账号密码被黑客暴力破解呢?
解决方案
1、修改SSH端口
千万不要使用默认的22端口,否则面临的暴力攻击会更多。所以,拿到服务器后,首先就应该将SSH端口改成其他的,建议改成一个比较大的端口号。具体操作如下:
sudo vim /etc/ssh/sshd_config
找到 Port 22
项,将端口号改为其他值,比如1046
。
然后重启SSH服务
sudo service ssh restart
2、将攻击者的IP加入到黑名单
sudo vim /etc/hosts.deny
编辑此文件,然后在文件中加入攻击者的IP配置,即可拦截攻击者的IP,使其无法正常访问我们的服务器。
sshd:ip:deny
下面就是将IP加入黑名单后的效果,可以看到凡是来自黑名单IP的请求都被服务器直接拒绝。
3、关闭SSH密码登录
SSH最安全的使用方式,就是不要用账号密码的方式登录,而是使用密钥登录。所以,我们也可以关闭SSH密码登录功能和root登录账号,并设置密钥登录。
- 创建一个新的账号
adduser myuser
passwd myuser
首先使用root账号登录服务器,然后再执行上面的命令,设置用户名和密码。
- 将你的RSA公钥添加到服务器的
authorized_keys
文件中
sudo vim ~/.ssh/authorized_keys
将本地电脑上生成的RSA公钥内容追加到文件中。(非常重要,不添加或添加错了你就登不上服务器了!!!)
- 编辑SSH配置文件,禁用密码登录和Root账号登录
sudo vim /etc/ssh/sshd_config
修改以下配置项:
PermitRootLogin no # 禁止root账号登录
PasswordAuthentication no # 禁止基于密码认证的登录
ChallengeResponseAuthentication no # 关闭质疑-应答模式
重启SSH服务
sudo service ssh restart
完成以上操作后,基本上可以保证服务器不会被暴力攻破了。

文章评论