Update techniques/fail2ban/howto_rate_limit_fail2ban.md
This commit is contained in:
parent
1877d31968
commit
63e76f6be1
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
The Church of Malware (CoM) does not condone the use or introduction of bans onto any individual, human, or animal; however, AI is neither natural, a human, nor actual intelligence. This focused installation and configuration tutorial provides complete, production-ready steps for built-in rate limiting and automatic banning with Fail2Ban. It covers nginx, Apache, and Fail2Ban integration with the aggressive-bot UA list.
|
The Church of Malware (CoM) does not condone the use or introduction of bans onto any individual, human, or animal; however, AI is neither natural, a human, nor actual intelligence. This focused installation and configuration tutorial provides complete, production-ready steps for built-in rate limiting and automatic banning with Fail2Ban. It covers nginx, Apache, and Fail2Ban integration with the aggressive-bot UA list.
|
||||||
|
|
||||||
## 1. nginx Rate Limiting (Built-in)
|
## 1 -- nginx Rate Limiting (Built-in)
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
limit_req_zone $binary_remote_addr zone=ai_limit:10m rate=1r/s;
|
limit_req_zone $binary_remote_addr zone=ai_limit:10m rate=1r/s;
|
||||||
|
|
@ -14,7 +14,7 @@ server {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 2. Apache Rate Limiting (mod_ratelimit)
|
## 2 -- Apache Rate Limiting (mod_ratelimit)
|
||||||
|
|
||||||
```apache
|
```apache
|
||||||
<Location />
|
<Location />
|
||||||
|
|
@ -23,7 +23,7 @@ server {
|
||||||
</Location>
|
</Location>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 3. Fail2Ban Configuration
|
## 3 -- Fail2Ban Configuration
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
# /etc/fail2ban/jail.local
|
# /etc/fail2ban/jail.local
|
||||||
|
|
@ -33,20 +33,32 @@ filter = anubis-tarpit
|
||||||
logpath = /var/log/nginx/ai_violators.log
|
logpath = /var/log/nginx/ai_violators.log
|
||||||
maxretry = 5
|
maxretry = 5
|
||||||
bantime = 86400
|
bantime = 86400
|
||||||
|
|
||||||
|
[nepenthes-tarpit]
|
||||||
|
enabled = true
|
||||||
|
filter = nepenthes-tarpit
|
||||||
|
logpath = /var/log/nginx/ai_violators.log
|
||||||
|
maxretry = 3
|
||||||
|
bantime = 86400
|
||||||
```
|
```
|
||||||
|
|
||||||
Filter example (`/etc/fail2ban/filter.d/anubis-tarpit.conf`):
|
Filter examples:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
|
# /etc/fail2ban/filter.d/anubis-tarpit.conf
|
||||||
|
[Definition]
|
||||||
|
failregex = ^<HOST> - .* "GET /tarpit/.*" 200
|
||||||
|
|
||||||
|
# /etc/fail2ban/filter.d/nepenthes-tarpit.conf
|
||||||
[Definition]
|
[Definition]
|
||||||
failregex = ^<HOST> - .* "GET /tarpit/.*" 200
|
failregex = ^<HOST> - .* "GET /tarpit/.*" 200
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. Integration with Aggressive-Bot Map
|
## 4 -- Integration with Aggressive-Bot Map
|
||||||
|
|
||||||
Use the same `map` or `SetEnvIf` from the Anubis and Nepenthes guides so rate limiting and Fail2Ban only apply to known violators.
|
Use the same `map` or `SetEnvIf` from the Anubis and decompression how-tos so rate limiting and Fail2Ban only apply to known violators.
|
||||||
|
|
||||||
## 5. Testing
|
## 5 -- Testing
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -I -A "GPTBot/1.0" https://example.com/ # rate limited or banned after retries
|
curl -I -A "GPTBot/1.0" https://example.com/ # rate limited or banned after retries
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user