同事买的服务器被暴力破解了

546 阅读1分钟

前言

今天同事说他前几天买的xx云的服务器,被暴力破解了。然后我偷偷看了下我自己买的云服务器,不看不知道,一看吓一跳。

lastb

lastb 用于列出登入系统失败的用户相关信息。

# 显示前10行,显示的行数可以通过参数 -n 指定
$ lastb | head

我们可以通过ip地址查询,查询到登录失败的ip地址信息

如何防止别人暴力破解

修改ssh端口

$ vim /etc/ssh/sshd_config

把端口22修改成其他端口,保存:wq,然后重启sshd服务

$ systemctl restart sshd.service

重新连接服务器的时候,需要修改连接端口

$ ssh root@host -p port

禁用密码登录,用RSA公钥登录

所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个:

$ ssh-keygen

运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。

这时再输入下面的命令,将公钥传送到远程主机host上面:

$ ssh-copy-id user@host

好了,从此你再登录,就不需要输入密码了。

如果还是不行,就打开远程主机的/etc/ssh/sshd_config这个文件,检查下面几行前面"#"注释是否取掉。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

然后,重启远程主机的ssh服务。

$ systemctl restart sshd.service

测试用密钥登录

$ ssh -i .ssh/id_rsa root@host -p port

登录成功后,可以关闭密码登录

$ vim /etc/ssh/sshd_config

打开远程主机的/etc/ssh/sshd_config这个文件,将 PasswordAuthentication yes 修改为 PasswordAuthentication no

PasswordAuthentication no

重启sshd服务

$ systemctl restart sshd.service

小结

其实也不用上面的操作,把密码设置复杂一点也行。