文档章节

Linux服务器安全之 fail2ban的安装与配置

o
 osc_a22drz29
发布于 2019/03/28 17:22
字数 689
阅读 65
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 

近日在查看Nginx的访问日志中,发现了大量404请求,仔细研究一番发现有人正在试图爆破网站。

我刚上线你就企图攻击我?????? 这怎么能忍。。

于是乎 --- 查资料后得知有一个神奇的工具 fail2ban 可以配合 iptables 自动封IP

iptables 是Centos6 的一种防火墙策略,在Centos7 中已被 Firewall所取代

本次实验系统为Centos6 

不说了开干

 

1. 下载并安装fail2ban

1   cd /usr/loca/src
2   wget https://github.com/fail2ban/fail2ban/archive/0.9.4.tar.gz
3   tar -zxf 0.9.4.tar.gz
4   mv 0.9.4 fail2ban-094
5   cd fail2ban-094
6   ./setup.py

 

2. 目录结构

1 /etc/fail2ban                    # fail2ban 服务配置目录
2 /etc/fail2ban/action.d           # iptables 、mail 等动作文件目录
3 /etc/fail2ban/filter.d           # 条件匹配文件目录,过滤日志关键内容
4 /etc/fail2ban/jail.conf          # fail2ban 防护配置文件
5 /etc/fail2ban/fail2ban.conf      # fail2ban 配置文件,定义日志级别、日志、sock 文件位置等
6 
7 cd /etc/fail2ban                 # 进入配置文件所在的目录
8 cp jail.conf jail.local          # 备份配置文件

 

3. 配置防护
首先编写封禁访问nginx 404状态码的ip地址的配置规则

1 vim /etc/fail2ban/filter.d/nginx.conf
2 
3 [Definition]
4 failregex = <HOST> -.*- .*HTTP/1.* 404 .*$
5 ignoreregex =

 

保存后测试配置文件相对于日志是否正确

1 fail2ban-regex /home/wwwlogs/access.log /etc/fail2ban/filter.d/nginx.conf 


然后将封禁规则加入配置文件

 1 vim /etc/fail2ban/jail.conf   # 文件尾部写入
 2 
 3 [nginx]
 4 enabled = true
 5 port = http,https
 6 filter = nginx                          # 规则文件的名字
 7 action = iptables[name=nginx, port=http, protocol=tcp]
 8         # sendmail-whois[name=tomcat, dest=abc@mail.com] 发送邮件功能  
 9 logpath = /home/wwwlogs/access.log     # 日志路径
10 bantime = 14400                           # 封禁的时间
11 findtime = 3                          # 在几秒内       
12 maxretry = 2                           # 有几次


4. 启动

1 /etc/init.d/iptables start
2 /etc/init.d/fail2ban start 或 fail2ban-client start

 

5. 查看状态等命令

1 fail2ban-client start # 启动
2 fail2ban-client reload # 重载
3 fail2ban-client stop # 停止
4 fail2ban-client status # 查看状态
5 fail2ban-client set nginx addignoreip 180.158.35.30 # 将ip加入nginx监狱的白名单
6 fail2ban-client set nginx delignoreip 180.158.35.30 # 将ip移除nginx监狱的白名单
7 fail2ban-client set nginx banip IP地址 # 手工ban
8 fail2ban-client set nginx unbanip IP地址 # 手工解

 

6. 查看fail2ban的日志

fail2ban的日志默认在 /var/log/fail2ban.log

日志中记录着Ban IP的记录和UnBan IP的记录

也有修改配置文件重载后的记录

cat /var/log/fail2ban

 

 

7. 小结

fail2ban 还有许多强大的功能待研究,在 /etc/fail2ban/filter.d 中,有许多模板可以学习并使用

 

虽说把非法请求封禁一段时间看似安全些,但只要有对外的端口就不能保证服务器的绝对安全。多了解不同工具的组合使用,才会使服务器更加安全。

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

unity的UGUI之中锚点(Anchors)和中心点(Pivot)、Shift和Alt键功能

在UGUI的控件属性之中,最上方的Rect Transform一栏可以看到锚点和中心点: 锚点Anchors 控件用于定位自身的基准点 可以点击左上角的方框,在其中选择锚点的不同方式: 注意图中,黄色的小点...

路过暴风
50分钟前
7
0
如何将div放置在其容器的底部? - How can I position my div at the bottom of its container?

问题: Given the following HTML: 鉴于以下HTML: <div id="container"> <!-- Other elements here --> <div id="copyright"> Copyright Foo web designs </div> </div> I would like #cop......

富含淀粉
今天
10
0
Distinct()与lambda? - Distinct() with lambda?

问题: Right, so I have an enumerable and wish to get distinct values from it. 是的,所以我有一个可枚举的,并希望从中获得不同的值。 Using System.Linq , there's of course an ext......

法国红酒甜
今天
16
0
学习编写编译器[关闭] - Learning to write a compiler [closed]

问题: Preferred languages : C/C++, Java, and Ruby. 首选语言 :C / C ++,Java和Ruby。 I am looking for some helpful books/tutorials on how to write your own compiler simply for......

技术盛宴
今天
17
0
OSChina 周一乱弹 —— 毛巾又怎么样?!我在乎的是大姐姐温柔的怀抱!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《雨 因你而下,于你而止》- Seto 手机党少年们想听歌,请使劲儿戳(这里) @Dan...

小小编辑
今天
48
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部