zoukankan      html  css  js  c++  java
  • Linux服务器安全之 fail2ban的安装与配置

    近日在查看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 中,有许多模板可以学习并使用

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

  • 相关阅读:
    【Wyn Enterprise BI知识库】 什么是商业智能 ZT
    Wyn BI的机会在哪里:越靠近消费者的行业,比如零售、文娱和金融,信息化投入越大 ZT
    客户化软件时代的前夜 ZT
    在“非软件企业”开发软件的困局 ZT
    行业观察报告:从SAAS困局看行业趋势 ZT
    超级干货 :一文读懂数据可视化 ZT
    传统BI还是自助式BI---BI与数据分析 ZT
    【BI学习笔记】在Linux上安装Wyn Enterprise商业智能报表服务器
    MAMP 配置: Mac with OSX 10.8 + (Mac + Apache + MySQL + Php)
    Emule Xtreme Kid eD2K 设置
  • 原文地址:https://www.cnblogs.com/bestOPS/p/10616401.html
Copyright © 2011-2022 走看看