doc:appunti:linux:sa:fail2ban
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:appunti:linux:sa:fail2ban [2020/10/30 12:38] – niccolo | doc:appunti:linux:sa:fail2ban [2025/07/04 11:14] (current) – [Integrazione con shorewall] niccolo | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Appena si installa il pacchetto vengono automaticamente abilitate delle regole, ad esempio per bloccare gli IP che falliscono l' | Appena si installa il pacchetto vengono automaticamente abilitate delle regole, ad esempio per bloccare gli IP che falliscono l' | ||
| - | Esiste un demone in esecuzione | + | Con Debian |
| < | < | ||
| - | / | + | systemctl |
| </ | </ | ||
| + | |||
| + | ===== Integrazione con shorewall ===== | ||
| + | |||
| + | La configurazione predefinita del pacchetto Debian prevede che l' | ||
| + | |||
| + | Le impostazioni predefinite sono generalmente in ''/ | ||
| + | |||
| + | < | ||
| + | [DEFAULT] | ||
| + | ignoreip = 185.211.173.7 127.0.0.1/8 ::1 | ||
| + | bantime | ||
| + | findtime | ||
| + | maxretry = 10 | ||
| + | destemail = sysadmin@rigacci.org | ||
| + | sender = sysadmin@rigacci.org | ||
| + | banaction = shorewall | ||
| + | banaction_allports = shorewall | ||
| + | </ | ||
| + | |||
| + | Se si cambia il file di configurazione dovrebbe bastare il **reload** del servizio. | ||
| + | |||
| + | ====== fail2ban-client 0.11 ====== | ||
| + | |||
| + | Il programma di controllo del servizio è **fail2ban-client**. La versione **0.11.2** fornita da Debian 11 Bullseye supporta la seguente sintassi (che è notevolmente diversa ad esempio dalla versione 0.9.6 fornita con Debian 9 Stretch). | ||
| + | |||
| + | < | ||
| + | fail2ban-client status | ||
| + | fail2ban-client banned | ||
| + | fail2ban-client unban 172.105.41.121 | ||
| + | </ | ||
| + | |||
| + | Per vedere lo stato di un jail: | ||
| + | |||
| + | < | ||
| + | fail2ban-client status sshd | ||
| + | Status for the jail: sshd | ||
| + | |- Filter | ||
| + | | |- Currently failed: 9 | ||
| + | | |- Total failed: | ||
| + | | `- File list: / | ||
| + | `- Actions | ||
| + | |- Currently banned: 6 | ||
| + | |- Total banned: | ||
| + | `- Banned IP list: | ||
| + | </ | ||
| + | |||
| + | È possibile anche entrare nel dettaglio delle azioni configurate per un certo //jail// (il servizio monitorato che può essere bloccato). Ad esempio per il servizio sshd si scopre che è stata configurata l' | ||
| + | |||
| + | < | ||
| + | fail2ban-client get sshd actions | ||
| + | The jail sshd has the following actions: | ||
| + | iptables-multiport | ||
| + | </ | ||
| + | |||
| + | È possibile anche sapere quale azione effettiva corrisponde ad esempio ad // | ||
| + | |||
| + | < | ||
| + | fail2ban-client get sshd action iptables-multiport actionban | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ====== fail2ban-client 0.9 ====== | ||
| + | |||
| + | :!: **ATTENZIONE**! Questa sintassi è obsoleta, dalla versione 0.10 di Fail2ban (fornita con Debian 10 Buster) si deve usare la nuova sintassi. | ||
| Il demone si controlla tramite **'' | Il demone si controlla tramite **'' | ||
| Line 144: | Line 208: | ||
| ^ Nome ^ Contesto | ^ Nome ^ Contesto | ||
| - | ^ action | + | ^ action |
| ^ action_* | ^ action_* | ||
| ^ banaction | ^ banaction | ||
| ^ banaction_allports | ^ banaction_allports | ||
| - | ^ actionban | + | ^ actionban |
| - | ^ actionunban | + | ^ actionunban |
| - | ===== Integrazione con Shorewall ===== | ||
| - | Per modificare la configurazione predefinita | + | ===== 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 | ||
| + | |||
| + | < | ||
| + | 185.120.86.118 - - [21/Jul/2022: | ||
| + | 185.120.86.118 - - [21/ | ||
| + | </ | ||
| + | |||
| + | 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 **/ | ||
| < | < | ||
| - | [DEFAULT] | + | [Definition] |
| - | banaction | + | failregex |
| - | banaction_allports | + | |
| + | ^< | ||
| + | ^< | ||
| + | ignoreregex | ||
| </ | </ | ||
| + | |||
| + | Come si vede si approfitta per bloccare anche gli accessi a **xmlrpc.php**, | ||
| + | |||
| + | Quindi si definisce la regola di ban creando il file **/ | ||
| + | |||
| + | < | ||
| + | [wordpress] | ||
| + | enabled = true | ||
| + | usedns = no | ||
| + | port = http,https | ||
| + | filter = wordpress-local | ||
| + | logpath = / | ||
| + | maxretry = 4 | ||
| + | findtime = 120 | ||
| + | bantime = 7200 | ||
| + | </ | ||
| + | |||
| + | Dopo aver fatto il reload del servizio fail2ban, chi accede a '' | ||
doc/appunti/linux/sa/fail2ban.1604057923.txt.gz · Last modified: by niccolo
