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 [2014/02/10 15:34] – [Servizio personalizzato Apache mod_evasive] niccolo | doc:appunti:linux:sa:fail2ban [2023/10/30 10:32] (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 | ||
+ | </ | ||
+ | |||
+ | ====== 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 18: | Line 80: | ||
</ | </ | ||
- | Per **sbloccare** qualcuno ad esempio dal servizio ssh: | + | Per **sbloccare** qualcuno ad esempio dal servizio ssh (**ATTENZIONE!** funziona solo dalla **versione 8.8** in poi): |
< | < | ||
fail2ban-client set ssh unbanip 151.40.102.53 | fail2ban-client set ssh unbanip 151.40.102.53 | ||
</ | </ | ||
+ | |||
+ | Con le **versioni precedenti** si può interrogare Fail2ban su quale è l' | ||
+ | |||
+ | < | ||
+ | fail2ban-client get asterisk-iptables actionunban iptables-allports | ||
+ | iptables -D fail2ban-< | ||
+ | </ | ||
+ | |||
+ | In questo caso si ottiene il **comando iptables** necessario a rimuovere il blocco. | ||
+ | |||
Il tempo di ban predefinito è 600 secondi ('' | Il tempo di ban predefinito è 600 secondi ('' | ||
Line 30: | Line 102: | ||
< | < | ||
[DEFAULT] | [DEFAULT] | ||
- | ignoreip = 185.21.73.97 | + | ignoreip = 185.21.73.97 192.168.1.0/ |
- | ignoreip = 192.168.1.0/ | + | |
</ | </ | ||
Line 44: | Line 115: | ||
**ATTENZIONE: | **ATTENZIONE: | ||
+ | |||
+ | ===== Altre configurazioni ===== | ||
+ | |||
+ | In **''/ | ||
+ | |||
+ | < | ||
+ | [DEFAULT] | ||
+ | ignoreip = 127.0.0.1 62.48.51.8 | ||
+ | </ | ||
+ | |||
+ | ===== Logging e reporting ===== | ||
+ | |||
+ | La configurazione va in **''/ | ||
+ | |||
+ | < | ||
+ | destemail = support@texnet.it | ||
+ | </ | ||
===== Servizio personalizzato Apache mod_evasive ===== | ===== Servizio personalizzato Apache mod_evasive ===== | ||
Line 103: | Line 191: | ||
Nel caso in cui si utilizzi Shorewall come firewall, è interessante l' | Nel caso in cui si utilizzi Shorewall come firewall, è interessante l' | ||
+ | |||
+ | ===== Jail reference ===== | ||
+ | |||
+ | ^ enabled | ||
+ | ^ filter | ||
+ | ^ port | Porta o elenco di porte separate da virgola da bloccare. Porte multiple richiedono l' | ||
+ | ^ action | ||
+ | ^ logpath | ||
+ | ^ maxretry | ||
+ | ^ findtime | ||
+ | ^ bantime | ||
+ | |||
+ | ===== Reference configurazione predefinita ===== | ||
+ | |||
+ | ^ Nome ^ Contesto | ||
+ | ^ action | ||
+ | ^ action_* | ||
+ | ^ banaction | ||
+ | ^ banaction_allports | ||
+ | ^ actionban | ||
+ | ^ actionunban | ||
+ | |||
+ | |||
+ | ===== 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 il tentativo che può essere in GET oppure in POST: | ||
+ | |||
+ | < | ||
+ | 185.120.86.118 - - [21/ | ||
+ | 185.120.86.118 - - [21/ | ||
+ | </ | ||
+ | |||
+ | In questo caso si agisce sull' | ||
+ | |||
+ | < | ||
+ | [Definition] | ||
+ | failregex = ^< | ||
+ | ^< | ||
+ | ^< | ||
+ | ^< | ||
+ | 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.txt · Last modified: 2023/10/30 10:32 by niccolo