• 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 中,有许多模板可以学习并使用

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

  • 相关阅读:
    mysql5.6版本修改密码
    ASP.NET Core MVC 运行所选代码生成器时出错
    abp ef codefirst 设置默认值
    resharper激活
    Ioc(控制反转)、DI(依赖注入)
    统计mysql数据库中数据表/字段等数量的sql
    HeidiSQL安装和使用教程
    mysql的安装步骤
    项目分层的好处
    Python IDLE 的使用与调试
  • 原文地址:https://www.cnblogs.com/bestOPS/p/10616401.html
Copyright © 2020-2023  润新知