Glam Prestige Journal

Bright entertainment trends with youth appeal.

I use my own server (nginx, I use as a CP) as a screenshot uploader with ShareX (). During the upload process of the screenshots the filenames are randomized.

The problem: Recently many people have been coding bruteforcers for these image uploading sites. They just write a small program that sends random httprequest to the url and check if it returns 404 and if not it saves the url. These people could gain access to semi-private screenshots they're not supposed to see.

The solution: These programs don't use any proxies, so you should be able to block these requests with fail2ban. I don't have any experience with it so I can't do it myself so I'm asking you.

I need a fail2ban regex and jail that blocks IP's of too many requests that result with error 404 (for example if someone sends 5 requests per second (404!), it bans them).

I hope anyone can help me.

Best regards KNIF

1 Answer

For details see the articleHow to setup Fail2ban to detect Apache 404 attacks?

To summarize:

1. Create fail2ban filter

Create the file /etc/fail2ban/filter.d/apache-404.conf containing:

failregex = ^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)
  • failregex identifies IP addresses that make too many 404 requests
  • ignoreregex excludes the valid files such as robots.txt, favicon.ioand images.

2. Create a custom jail

Add the following code in the file /etc/fail2ban/jail.conf:

[apache-404]
enabled = true
port = http,https
filter = apache-404
logpath = /var/log/httpd/error_log
logpath = /var/log/httpd/access_log
bantime = 3600
findtime = 600
maxretry = 5
  • logpath specifies the apache log file
  • bantime species how many seconds an offending IP is banned
  • maxretry specifies the total number of connection attempts.

So, if a client makes more than maxretry retry attempts within the time specified in findtime, they will be banned.

See also the postMitigating 404 bomb with Nginx.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy