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

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

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

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

本次实验系统为Centos6

不说了开干

1. 下载并安装fail2ban

   cd /usr/loca/src
  wget https://github.com/fail2ban/fail2ban/archive/0.9.4.tar.gz
  tar -zxf 0.9..tar.gz
  mv 0.9. fail2ban-
  cd fail2ban-
  ./setup.py

2. 目录结构

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

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

 vim /etc/fail2ban/filter.d/nginx.conf

 [Definition]
failregex = <HOST> -.*- .*HTTP/.* .*$
ignoreregex =

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

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

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

 vim /etc/fail2ban/jail.conf   # 文件尾部写入

 [nginx]
enabled = true
port = http,https
filter = nginx # 规则文件的名字
action = iptables[name=nginx, port=http, protocol=tcp]
# sendmail-whois[name=tomcat, dest=abc@mail.com] 发送邮件功能
logpath = /home/wwwlogs/access.log # 日志路径
bantime = # 封禁的时间
findtime = # 在几秒内
maxretry = # 有几次

4. 启动

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

5. 查看状态等命令

 fail2ban-client start # 启动
fail2ban-client reload # 重载
fail2ban-client stop # 停止
fail2ban-client status # 查看状态
fail2ban-client set nginx addignoreip 180.158.35.30 # 将ip加入nginx监狱的白名单
fail2ban-client set nginx delignoreip 180.158.35.30 # 将ip移除nginx监狱的白名单
fail2ban-client set nginx banip IP地址 # 手工ban
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 中,有许多模板可以学习并使用

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

Linux服务器安全之 fail2ban的安装与配置的更多相关文章

  1. linux下jdk与tomcat的安装与配置

    Linux中jdk与tomcat的安装与配置 1.搭建环境: (1)Linux环境:CentOS6.1 (2)jdk-1.8 (3)tomcat-9.0 2.在Linux系统上创建目录 在usr/lo ...

  2. LINUX操作系统(centos6.9)安装与配置

    LINUX操作系统(centos6.9)安装与配置_百度经验 https://jingyan.baidu.com/article/acf728fd6bdba1f8e510a3f7.html cento ...

  3. Linux下MyCat和MyCat_web的安装和配置

    Linux下MyCat和MyCat_web的安装和配置 Mycat 是一个数据库分库分表中间件 Mycat web 可以对 Mycat进行监控,这里分享一下 Mycat web 的搭建过程 详细内容可 ...

  4. Apache服务器最新版下载、安装及配置(win版)

    Apache服务器最新版下载.安装及配置(win版) Apache的下载: 登录http://httpd.apache.org/download.cgi 这个地址,找到2.4.10,如下图位置:   ...

  5. linux服务器nginx的卸载和安装

    刚接触的linux服务器上,nginx配置乱的有点令人发指,就把老的卸载了重新装一下. 卸载 linux有一系列的软件管理器,比如常见的linux下的yum.Ubuntu下的apt-get等等.通过这 ...

  6. Linux服务器pxe+kickstart部署无人值守安装

    一.    使用光盘镜像安装好一台Redhat6.8系统的虚拟机(图形化界面) 二.    部署相关服务程序 1.     安装并配置dhcpd服务程序 a)安装dhcp服务程序 b)对dhcp服务进 ...

  7. Linux环境下SVN服务器端的安装与配置

    最近尝试了下在Linux(CentOS6.5)环境下安装与配置SVN服务器端,安装过程中碰到了一些问题,参看了网友们分享的一些心得,并通过自己实际的操作,最终安装与配置成功!总的来说网上的说法芸芸,大 ...

  8. Linux服务器部署javaweb项目,从环境配置,到最终系统运行

    部署准备:javaJDK1.7,Tomcat7.0,MySQL5.8,可运行的javaWeb项目,linux环境的服务器(可以是安装在windows电脑上的linux虚拟机,安装了linux系统的电脑 ...

  9. Linux CentOS 7 & JDK 1.7 安装与配置

    前言 简单记录一下在CentOS 7中安装配置JDK 1.7的全过程~ 下载 首先是jdk 1.7 64bit & 32bit的下载地址: jdk-7u79-linux-x64.tar.gz ...

随机推荐

  1. CSS应用的小问题总结

    1.两个元素换行书写时,在实际的布局中展示为两个元素之间多了一个区间(这个区间通常是因为代码在换行时,解析会自动默认为一个空格字符),所以在实际应用时,如果想要将两个元素完全无缝隙的放置在一起并排显示 ...

  2. JAVA后端笔试试题(一)

    2017年6月7日,天气晴转阴.心情还不错. 上周六参加了自己的第一场笔试,感觉很糟糕,主要是对基础知识掌握不扎实,现在把笔试中的部分问题总结归纳如下,便于以后查看. 1.GC是什么?为什么要GC? ...

  3. 借助form表单向web服务器发送消息

    form表单是常用的,在网页浏览器中 用户点击的请求经htto协议发送回web容器,请求处理 建立用户的页面 <!DOCTYPE html> <html> <head&g ...

  4. JSP内置对象——session对象

    举个购物流程的例子: 这整个购物过程,它是属于一次回话.那么这个session是保存在服务器内存当中,并且它保存着不同用户对应的session,一个用户对应一个session.看下面这幅图: 从图中可 ...

  5. 存折打印机测量和毫米方式Form配置说明

    一.打印一把尺子(单位:mm) 存折打印机测试程序:D:\Inspur\InspXfs\Bin\InspPassbook\NuDevPassbookTest.exe .) 二.测量存折(横向和纵向) ...

  6. 表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)

     这周完成了一张表单,重点碰到以下问题: 1.freemaker获取年份的type值取year,类型直接为Long,传至后台和获取数据不需要转换: 2.freemaker获取日期type值为date, ...

  7. Mac逆向--思维导图

  8. Python抓取zabbix性能监控图

    一.通过查询zabbix db的方式通过主机IP获取到所需要的graphid(比如CPU监控图.内存监控图等,每个图对应一个graphid),最后将图片保存到本地 注:该graph必须要在 scree ...

  9. python基础学习2

    一.算数运算符 +加法,-减法,*乘法,/除法,//地板除,%求余,**幂运算. 二.逻辑运算符 非not.且and.或or.优先级依次为not,and,or. 三.print()end结尾 prin ...

  10. MySQL面试题36道

    MySQL数据库是在免费的数据库中最受欢迎的一款,尤其是在一些小型项目以及项目资金有限的情况下,选择MySQL来作为数据存储的工具,那些不差钱并且数据吞吐量非常大的互联网公司一般都是会用付费的Orac ...