User Tools

Site Tools


doc:appunti:linux:sa:fail2ban

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:sa:fail2ban [2020/10/30 15:15] – [Reference configurazione predefinita] niccolodoc:appunti:linux:sa:fail2ban [2022/07/21 11:22] – [Integrazione con Shorewall] niccolo
Line 148: Line 148:
 ^ banaction           | Jail  | Nella configurazione predefinita è una variabile utilizzata dalle varie **%%action_*%%** e contiene finalmente il nome effettivo dello script da eseguire. Secondo la configurazione predefinita, il valore nella sezione **[DEFAULT]** è **iptables-multiport**.   | ^ banaction           | Jail  | Nella configurazione predefinita è una variabile utilizzata dalle varie **%%action_*%%** e contiene finalmente il nome effettivo dello script da eseguire. Secondo la configurazione predefinita, il valore nella sezione **[DEFAULT]** è **iptables-multiport**.   |
 ^ banaction_allports  | Jail  | Altra variabile utilizzata nella catena di sostituzioni della **action**. Secondo la configurazione predefinita, il valore nella sezione **[DEFAULT]** è **iptables-allports**.  | ^ banaction_allports  | Jail  | Altra variabile utilizzata nella catena di sostituzioni della **action**. Secondo la configurazione predefinita, il valore nella sezione **[DEFAULT]** è **iptables-allports**.  |
-^ actionban           | Action +^ actionban           | Action  | È la sezione di uno script ti tipo //action// (nella directory **/etc/fail2ban/action.d/**) che definisce le azioni da intraprendere per bloccare un IP.  | 
-^ actionunban         | Action  |+^ actionunban         | Action  | Azioni che sbloccano in indirizzo IP, annullando l'effetto di //actionban// |
  
 ===== Integrazione con Shorewall ===== ===== Integrazione con Shorewall =====
Line 160: Line 160:
 banaction_allports = shorewall banaction_allports = shorewall
 </file> </file>
 +
 +===== Esempio per WordPress wp-login.php =====
 +
 +Un caso tipico di attacco a forza bruta è quello contro il login di WordPress, nei file di log Apache si legge:
 +
 +<code>
 +185.120.86.118 - - [21/Jul/2022:11:00:25 +0200] "GET /wp/wp-login.php HTTP/1.1" 200 7004 ...
 +185.120.86.118 - - [21/Jul/2022:11:00:26 +0200] "POST /wp/wp-login.php HTTP/1.1" 200 7373 ...
 +</code>
 +
 +In questo caso si agisce sull'accesso al file **wp-login.php** indipendentemente dal fatto che il login abbia successo o meno (i due casi non sono distinguibili nei log). Si definisce anzitutto una regola di controllo log creando il file **/etc/fail2ban/filter.d/wordpress-local.conf**:
 +
 +<file>
 +[Definition]
 +failregex = ^<HOST> .* "POST .*wp-login.php
 +            ^<HOST> .* "POST .*xmlrpc.php
 +            ^<HOST> .* "GET .*wp-login.php
 +            ^<HOST> .* "GET .*xmlrpc.php
 +ignoreregex =
 +</file>
 +
 +Come si vede si approfitta per bloccare anche gli accessi a **xmlrpc.php**, un altro vettore comune di attacco a WordPress (fra l'altro il protocollo XML-RPC è da considerarsi obsoleto e rimpiazzato dalle API native di WordPress).
 +
 +Quindi si definisce la regola di ban creando il file **/etc/fail2ban/jail.d/wordpress-local.conf**:
 +
 +<file>
 +[wordpress]
 +enabled = true
 +usedns = no
 +port = http,https
 +filter = wordpress-local
 +logpath = /var/log/apache2/*/access.log
 +maxretry = 4
 +findtime = 120
 +bantime = 7200
 +</file>
 +
 +Dopo aver fatto il reload del servizio fail2ban, chi accede a ''wp-login.php'' per più di 4 volte in 2 minuti verrà bloccato per 2 ore.
  
doc/appunti/linux/sa/fail2ban.txt · Last modified: 2023/10/30 10:32 by niccolo