nginx下使用fail2ban防止网站被CC

本文详细介绍了如何使用Fail2Ban防火墙软件保护服务器免受恶意登录尝试和DDoS攻击。包括安装步骤、配置HTTP和SSH保护的具体参数设置,以及如何定时清理日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--安装fail2ban
yum install -y epel-release
yum install -y fail2ban


--配置fail2ban
vi /etc/fail2ban/jail.conf
[http-get-dos]
enabled = true
port = http
filter = http-get-dos
logpath = /home/wwwlogs/access.log
maxretry = 100
findtime = 5
bantime = 600
action = iptables[name=HTTP,port=http,protocol=tcp]

/* 参数含义
filter = http-get-dos #--filter.d/http-get-dos.conf 文件名
logpath = /home/wwwlogs/access.log #--需要监控nginx日志log
maxretry = 100 #-- 最多访问100
findtime = 10 #-- 10秒
bantime = 1200 #-- 20分钟
*/

vi /etc/fail2ban/filter.d/http-get-dos.conf
[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =


--配置fail2ban日志
vi /etc/fail2ban/fail2ban.conf
loglevel = WARNING
logtarget = /var/log/fail2ban.log

 

--重启生效
service fail2ban restart


--屏蔽日志
tail -f /var/log/fail2ban.log


--#删除屏蔽
iptables -D f2b-HTTP 1

 

 

--定时清理 nginx / fail2ban 日志

vi /root/scripts/del_cc_log.sh
#! /bin/bash

cat /dev/null > /home/wwwlogs/access.log
cat /dev/null > /var/log/fail2ban.log

 

crontab -e
30 3 * * 0 sh /root/scripts/del_cc_log.sh


--开启crontab
/etc/init.d/crond start

chkconfig --list|grep crond

 

 

--屏蔽ssh探测
vi /etc/fail2ban/jail.conf

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 10
bantime = 144000

 


--#删除屏蔽
iptables -D f2b-SSH 1

转载于:https://www.cnblogs.com/justdba/p/7231903.html

当你使用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配置文件中指定的路径一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值