@longj
2018-06-29T20:27:22.000000Z
字数 1447
阅读 1632
部署环境: Ubuntu 16.04 LTS server
前些天一直在写系统分析与设计小组的作业,写一个简单的点菜系统并部署到腾讯云主机上。然后在某一天晚上我发现我们的服务器突然之间登陆不上去了,查看一下控制台发现我们的服务器似乎出现了一点异常。
首先是CPU的使用率突然骤增,外网出入带宽也非常的大。我尝试先把云服务器关机之后,过一会儿重启就可以登陆进去了,查看 /var/log/auth..log
文件后,我发现原来我们的服务器被别人使用 SSH Brute Force 攻击了。
暴露在网络上的主机都是有风险的,其中一种风险就是ssh暴力破解攻击(ssh brute force attack)。可以看到我上面的 log 中出现了一系列的来自我不同的 ip 地址发来的 ssh 连接请求,并且不断地使用密码组合来进行暴力破解,这就导致我的服务器的 ssh 疲于应对这些请求而导致我的 ssh 登陆请求无法被正常处理。
为了防止类似的情况再次出现,我查找到了一个防御软件 denyhosts 并成功部署到了服务器。下面我记录一下如何安装部署。
进入 release list 并下载最新版本的 denyhosts.
解压并使用 Python 安装
$ tar zxvf DenyHosts-3.1.tar.gz
$ cd denyhosts
$ sudo setup.py install
在 root 用户的权限下
cp denyhosts.conf /etc
vim /etc/denyhosts.conf
然后根据文件内容的提示,按照你实际部署的系统环境进行必要的修改,然后保存。
在 root 用户的权限下:
# cp daemon-control-dist daemon-control
然后编辑 daemon-control
, 你一般只需要编辑前面的一小部分(如下),其他默认的设置一般可以满足绝大部分的系统情况。
###############################################
#### Edit these to suit your configuration ####
###############################################
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/etc/denyhosts.conf"
接着再给 daemon-control
赋予相应的运行权限
chown root daemon-control
chmod 700 daemon-control
有两种方法可以开启 denyhosts 软件。
一、使用 daemon-control
脚本
sudo daemon-control start
二、直接运行 denyhosts 的 python 脚本
python /usr/local/bin/denyhosts --config /etc/denyhosts.conf --daemon
至此, denyhosts 部署完成。
部署后的第二天,后台的小伙伴为了更新后台的代码文件频繁地登陆云服务器进行代码更新,结果在某一时刻被 denyhosts 给封掉了。说明这个软件最后 work 了,简单的 ssh brute force 的攻击方法应该可以被简单防御了~