ssh防暴力破解

ssh防暴力破解

前两天找小布要了一台美国的vps,打算部署我的代理项目。检查系统日志/var/log/secure的时候,发现几乎每秒都有ssh连接失败的记录,这明显是有黑客在对主机尝试暴力破解ssh密码。

屏幕快照 2016-05-14 上午3.24.24

(⊙o⊙)…额,以前我自己也都没留意过这个日志,赶紧去看了下我自己的阿里云,发现也有一些ssh登录失败的记录,好在没有小布这台这么密集。这也吓的我赶紧查了一下怎么样有效地防止服务器被暴力破解。

一、封杀多次验证失败的ip

你可以自己写个脚本扫描ssh登录日志,判断某个ip多次尝试登录失败后,将其写入/etc/hosts.deny或iptables来拒绝该ip的访问。不过本着避免重复制造轮子原则,网上有不少开源的脚本程序帮忙做这件事了,比如fail2bandenyhost

二、使用认证登录而不是账号密码登录

当手头的服务器多起来的时候,你会发现,使用ras认证的方式进行ssh免密码登录是多么方便。同时认证登录也比简单的密码更安全。因此一个非常有效的防暴力破解的方法就是设置ssh认证登录,然后关闭ssh账号密码登录。亚马逊主机默认就是这么干的,不允许ssh的账号密码登录,只允许非root用户进行认证登录,root账号必须由非root账号认证登录后使用su – 来提权。

1. 将本地机器的ssh公钥写到服务器的~/.ssh/authorized_keys文件中:

另外,建议将.ssh目录与authorized_keys文件的读写权限设置为如下(并非权限越高越好,我试过在centos 7生成的authorized_keys默认权限为664,反而无法登录,提示Permission denied)

 

2. 修改服务器的sshd配置文件/etc/ssh/sshd_config:

修改后使用service sshd restart命令重启sshd守护进程即可生效。

发表评论

电子邮件地址不会被公开。 必填项已用*标注