阿里云提示:存在攻击事件,您有两次网络攻击
一早醒来,看手机两条信息,“您的云服务器发现安全风险,请及时处理”,赶忙登录查看,发现有两条被攻击的记录,下如下图所示:
如图,我们可以看出,最近网站一直被别人暴力破解SSHD服务密码。虽然没有成功,但会导致系统负载很高。
所以,我们做出相应的加固防范:
- 密码要大于8位最好大于20位。密码的复杂密码足够的复杂,密码的长度是密码要尽可能有数字、大小写字母和特殊符号混合组成。
- 修改默认的端口号。
- 不允许root账号直接登陆,添加普通账号,授予root的权限。
- 通过开源的防护软件来防护安全。
我们今天主要使用的是第四个:开源分防护软件:fial2ban
如上图分析:近网站一直被别人暴力破解 SSHD 服务密码。虽然没有成功,但会导致系统负载很高,原因是在暴力破解的时候,系统会不断地认证用户,从而增加了系统资源额外开销,导致访问网站速度很慢。
今天应用的 fail2ban 程序可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,很实用、很强大!
简单来说其功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到dorp列表一定时间。
注意:重启iptables服务的话,所有DORP将重置。
安装 fial2ban:
-
yum 安装:
yum install fail2ban -y fail2ban的配置文件路径:/etc/fail2ban 日志文件:/var/log/fail2ban.log 达到阈值之后的执行的动作的配置文件: action.d/ 包含所有的过滤规则:filter.d/
-
源码安装:
wget https://github.com/fail2ban/fail2ban/archive/0.10.3.tar.gz tar -zxvf 0.10.3.tar.gz cd fail2ban-0.10.3/ python setup.py install echo $? 生成服务启动脚本并开机自启: cp files/redhat-initd /etc/init.d/fail2ban chkconfig --add fail2ban chkconfig --list fall2ban
在配置时,我们应该避免修改由fail2ban
安装创建的文件,我们应该去编写具有.local扩展名的新文件。在.local
新文件里配置的内容会覆盖jail.conf
内容里相同的值。
当配置发生改变可以使用 fail2ban-client reload
,来重新加载新的配置。
vim /etc/fail2ban/jail.d/jail.local
#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
[DEFAULT]
# 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。(根据自己具体地址写)
ignoreip = 127.0.0.1/20
# 客户端主机被禁止的时长(默认单位为秒)
bantime = 3600
# 过滤的时长(秒)
findtime = 600
# 匹配到的阈值(次数)
maxretry = 3
[ssh-iptables]
# 是否开启
enabled = true
# 过滤规则
filter = sshd
# 动作
action = iptables[name=SSH, port=ssh, protocol=tcp]
# 日志文件的路径
logpath = /var/log/secure
启动服务
/etc/init.d/fail2ban start
完成之后即可进行测试,用 iptables -nL 进行查看
iptables -nL
Chain f2b-SSH (1 references)
target prot opt source destination
REJECT all -- 121.41.132.222 0.0.0.0/0 reject-with icmp-port-unreachable