Îmi vin în minte câteva lucruri:
- Ai putea folosi string-match cu iptables:
iptables -A INPUT -m șir --algo bm --șir "GET /foro" -j DROP
sau dacă este posibil în sistemul dumneavoastră, cu TARPIT
iptables -A INPUT -m șir --algo bm --șir "GET /foro" -j TARPIT
- În loc să utilizați fail2ban, creați-vă propriul script care scanează pentru jurnalele cu ultimele 1000 de linii, de exemplu, și blochează potrivirile cu ipset-uri.
Adăugați asta la scriptul dvs. iptables:
- ipset distruge toaleta
- ipset -N toaletă iphash
- toaletă cu apă ipset
Apoi utilizați scriptul pentru a adăuga adrese IP pe care doriți să le blocați în fișierul text.În cele din urmă, trebuie doar să buclați toate adresele IP la acea listă de toalete.
- ipset -O toaletă „$ipaddress”
Utilizarea ipset și în special a măștilor este o modalitate mult mai eficientă decât blocarea adreselor IP. Am aproximativ 20 000 de adrese blocate și aproximativ 200 de rețele.
S-ar putea să ai câteva idei despre scenariul meu foarte dezordonat.
https://pastebin.com/4v5se0kh
Știu că este dezordonat, dar funcționează pentru mine mult mai rapid și este mult mai ușor decât fail2ban. Am numit acel script suc2ban. Trebuie doar să găsiți propriile potriviri pentru fișierul dvs. de jurnal (probabil aveți apache access.log, în loc de exemplul meu care folosește auth.log).