Fail2ban su Devuan Beowulf —
Fail2ban come noto è un programma pensato per prevenire gli attacchi brute force.
Scansiona i file di log e blocca quegli indirizzi che hanno troppi fallimenti di password, è scritto in Python e a mio avviso ricade nella categoria IDS/IPS.
Questo articoletto sostituisce tutti i precedenti, per due ragioni principali:
a) il framework di packet filtering ora è nftables
b) cercherò di scriverlo un po meglio
Come detto il nuovo tool che filtra i pacchetti è nftables, quindi nello script di configurazione del firewall ale.nft c’è una table con una chain fatta a questa maniera:
table inet fail2ban {
chain fail2ban {
type filter hook input priority 100;
}
}
Fatto questo andiamo ad istruire il nostro fail2ban in modo che faccia quello che sa fare molto bene, dal repository ufficiale vado a scaricarmi il file nftables.conf e lo metto in /etc/fail2ban/action.d, nella stessa directory vado a modificare i files nftables-allports.conf
[INCLUDES]
before = nftables-common.conf
[Definition]
# Option: nftables_mode
# Notes.: additional expressions for nftables filter rule
# Values: nftables expressions
#
#nftables_mode = meta l4proto <protocol>
type = allports
[Init]
e nftables-multiport.conf
[INCLUDES]
before = nftables-common.conf
[Definition]
# Option: nftables_mode
# Notes.: additional expressions for nftables filter rule
# Values: nftables expressions
#
#nftables_mode = <protocol> dport \{ <port> \}
type = multiport
[Init]
in questa maniera, sempre nella stessa directory creo il file nftable-common.local che contiene questo
[Init]
nftables_family = inet
nftables_table = fail2ban
blocktype = drop
nftables_set_prefix =
nella directory superiore cioè in /etc/fail2ban/ creo il file jail.local che contiene:
[DEFAULT]
destmail = clark@myfirm.local
sender = fail2ban@sangiorgio.myfirm.local
action = %(action_mwl)s
banaction = nftables-multiport
chain = input
Come ultimo passo vado a creare il file recidive.conf in /etc/fail2ban/jail.d che contiene:
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
banaction = nftables-allports
bantime = 86400 ; 1 day
findtime = 86400 ; 1 day
maxretry = 3
protocol = 0-255
una volta fatto questo fail2ban èpronto per essere lanciato da init.d
reference:
https://wiki.meurisse.org/wiki/Fail2Ban
https://www.fail2ban.org/wiki/index.php/Main_Page
Categorised as: IDS | Linux | Work
Comments are disabled on this post