Nginx + fail2ban 提高安全性

通过Nginx做web server时,发现error.log中有很多连接尝试,这个时候fail2ban可以比较好的对付这些爬虫,探测程序等。

1. Policy配置

# Install fail2ban
sudo apt-get install fail2ban

# Copy jail.conf at /etc/fail2ban/jail.local and edit it.

[nginx-noscript]

enabled = true
port = http,https
filter = nginx-noscript
logpath = /usr/local/nginx-1.8.0/logs/error.log
maxretry = 1
findtime = 60
bantime = 7200

# Create /etc/fail2ban/filter.d/nginx-noscript.conf

[Definition]

failregex = ^.*(.*\.php).*failed.*client: 
  
  
   
   ,.*"$

ignoreregex =


# To block php script attack.

# Restart fail2ban service
sudo service fail2ban restart

# fail2ban Logs
/var/log/fail2ban.log

# Debug filter
fail2ban-regex /usr/local/nginx-1.8.0/logs/error.log /etc/fail2ban/filter.d/nginx-noscript.conf

# List all rule in iptables
sudo iptables -L --line-numbers

# Remove some rule added by fail2ban, n is rule id.
sudo iptables -D fail2ban-nginx-noscript n

  
  


    2. 查找分析Log

    因为fail2ban会定期备份日志,所以需要查看IP地址时需要对所有的log进行查找,可以用zgrep 

            zgrep -c 210.213. /var/log/fail2ban.


    3. 配置文件

         /etc/fail2ban/fail2ban.


    4. Log rotate 配置  /etc/logrotate.d/fail2ban

      1 /var/log/fail2ban.log {
      2    
      3     weekly
      4     rotate 4
      5     compress
      6 
      7     delaycompress
      8     missingok
      9     postrotate
     10     fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
     11     endscript
     12 
     13     # If fail2ban runs as non-root it still needs to have write access
     14     # to logfiles.
     15     # create 640 fail2ban adm
     16     create 640 root adm
     17 }
    


    5. Permanently Ban Repeat Offenders With Fail2Ban


    Avatar for Todd


    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 1
      评论
    当你使用Nginx作为网页服务器时,可以结合使用Fail2Ban来增加安全性Fail2Ban是一个用于防止恶意登录和暴力破解的工具,它监视日志文件并采取相应的措施来阻止攻击者。 要在Nginx上启用Fail2Ban,你可以按照以下步骤操作: 1. 安装Fail2Ban:使用适合你的操作系统的包管理器来安装Fail2Ban。例如,在Ubuntu上可以运行以下命令: ``` sudo apt-get install fail2ban ``` 2. 配置Fail2Ban:编辑Fail2Ban的配置文件 `/etc/fail2ban/jail.conf` 或 `/etc/fail2ban/jail.local`,根据你的系统选择一个文件。在该文件中,你可以定义Fail2Ban监视的日志文件和设置封禁规则。 3. 创建自定义NginxFail2Ban规则:在 `/etc/fail2ban/filter.d/` 目录下创建一个名为 `nginx.conf` 的文件,并添加以下内容: ``` [Definition] failregex = ^<HOST>.*"(GET|POST).*HTTP.*" (444|403|401) ignoreregex = ``` 4. 更新Fail2Ban配置:编辑 `/etc/fail2ban/jail.local` 文件,在 `[DEFAULT]` 部分添加以下内容: ``` [nginx] enabled = true filter = nginx action = iptables[name=nginx, port=http, protocol=tcp] logpath = /var/log/nginx/access.log findtime = 3600 maxretry = 5 ``` 这将启用针对NginxFail2Ban规则,并定义了一些参数,如查找时间(findtime)和最大重试次数(maxretry)。 5. 重启Fail2Ban服务:根据你的操作系统,使用适当的命令重启Fail2Ban服务。例如,在Ubuntu上可以运行以下命令: ``` sudo service fail2ban restart ``` 现在,Fail2Ban将开始监视Nginx的访问日志文件,并根据你在配置文件中定义的规则来封禁恶意IP地址。 请注意,以上步骤仅提供了一个简单的示例配置。你可以根据自己的需求进行定制化设置,例如增加更多的Fail2Ban规则或调整封禁参数。同时,确保你的Nginx日志文件路径与Fail2Ban配置文件中指定的路径一致。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值