Login met PuTTy SSH of met de Console in het controlepaneel als root en installeer Fail2Ban via de volgende stappen:
- Download de rpm repository voor Fail2Ban:
rpm -Uhv http://mirrors.ircam.fr/pub/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
OF
yum install epel-release
yum install fail2ban
Of voor AlmaLinux:
sudo dnf -y install fail2ban
Type Y en dan klik je vervolgens op enter. Nu is Fail2Ban geïnstalleerd op je server, maar nog niet geconfigureerd en gestart.
Je kunt het configuratie bestand openen met een door jezelf gewenste editor, bijvoorbeeld nano of vi:
sudo vi /etc/fail2ban/jail.local
De onderstaande gegevens kun je erin zetten.
[DEFAULT]
bantime = 604800
bantime.increment = true
bantime.rndtime = 30m
bantime.maxtime = 60d
bantime.factor = 2
bantime.formula = ban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)
bantime.overalljails = true
findtime = 3600
sender = mail@domein.nl
destemail = mail@domein.nl
action = %(action_mwl)s
banaction = iptables-multiport
maxretry = 3
ignoreip = 127.0.0.1/8 ::1 ServerIPv4 ServerIPv6 JeIpEigenIPAdresv4 JeIpEigenIPAdresv6
[f2b-repeat2]
enabled = true
filter = f2b-repeat
bantime = 86400
findtime = 604800
logpath = /var/log/fail2ban.log
maxretry = 3
[f2b-repeat3]
enabled = true
filter = f2b-repeat
bantime = 604800
findtime = 2592000
logpath = /var/log/fail2ban.log
maxretry = 3
[f2b-repeat4]
enabled = true
filter = f2b-repeat
bantime = 2592000
findtime = 15552000
logpath = /var/log/fail2ban.log
maxretry = 3
Maak een bestand voor SSH configuratie
sudo vi /etc/fail2ban/sshd.local
#
# SSH servers
#
[sshd]
enabled = true
port = 22 #vervang de poortnummer door de poortnummer van je SSH
Maak een bestand voor FTP configuratie
sudo vi /etc/fail2ban/proftpd.local
#
# FTP servers
#
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
logpath = %(proftpd_log)s
backend = %(proftpd_backend)s
Maak een bestand voor mail server configuratie
sudo vi /etc/fail2ban/exim.local
#
# Mail servers
#
[exim]
enabled = true
filter = exim
logpath = /var/log/exim/mainlog
/exim_mainlog
Maak een bestand voor mail server configuratie
sudo vi /etc/fail2ban/dovecot.local
Maak een bestand voor DNS server configuratie
#
# Mail servers
#
[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps
filter = dovecot
logpath = /var/log/maillog
sudo vi /etc/fail2ban/named.local
#
# DNS servers
#
[named-refused-tcp]
enabled = true
port = domain,953
protocol = tcp
filter = named-refused
logpath = /var/named/data/named.run
[named-refused-udp]
enabled = true
port = domain,953
protocol = udp
filter = named-refused
logpath = /var/named/data/named.run
Als je Exim gebruikt kun je nog een filter toevoegen voor Exim
sudo vi /etc/fail2ban/filter.d/exim.conf
Voeg onderstaande inhoud aan het het einde van failregex-deel toe :
\[<HOST>\]: 535 Incorrect authentication data
Zo zou het er uit moeten zien:
[Definition]
failregex = ^%(pid)s %(host_info)ssender verify fail for <\S+>: (?:Unknown user|Unrouteable address|all relevant MX records point to non-existent hosts)\s*$
^%(pid)s \w+ authenticator failed for (?:[^\[\( ]* )?(?:\(\S*\) )?\[\](?::\d+)?(?: I=\[\S+\](:\d+)?)?: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time\(s\))?\s*$
^%(pid)s %(host_info)srejected RCPT [^@]+@\S+: (?:relay not permitted|Sender verify failed|Unknown user|Unrouteable address)\s*$
^%(pid)s SMTP protocol synchronization error \([^)]*\): rejected (?:connection from|"\S+") %(host_info)s(?:next )?input=".*"\s*$
^%(pid)s SMTP call from \S+ %(host_info)sdropped: too many nonmail commands \(last was "\S+"\)\s*$
^%(pid)s SMTP protocol error in "AUTH \S*(?: \S*)?" %(host_info)sAUTH command used when not advertised\s*$
^%(pid)s no MAIL in SMTP connection from (?:[^\[\( ]* )?(?:\(\S*\) )?%(host_info)sD=\d\S+s(?: C=\S*)?\s*$
^%(pid)s (?:[\w\-]+ )?SMTP connection from (?:[^\[\( ]* )?(?:\(\S*\) )?%(host_info)sclosed by DROP in ACL\s*$
\[<HOST>\]: 535 Incorrect authentication data
ignoreregex =
Oplopende Fail2ban-bantijd
Maak eerst het bestand /etc/fail2ban/filter.d/f2b-repeat.conf aan:
sudo vi /etc/fail2ban/filter.d/f2b-repeat.conf
Voeg de volgende inhoud toe:
[INCLUDES]
before = common.conf
[Definition]
failregex = \]\s+ban\s+<HOST>
ignoreregex = \[f2b-repeat.*\]\s+ban\s+<HOST>
In je jail.local heb je ook een bestand fail2ban.log aangegeven, maar dat logbestand moet je eerst aanmaken anders kun je Fail2ban niet starten.
sudo touch /var/log/fail2ban.log
Om Fail2Ban automatisch op te laten starten als de server start, dien je de onderstaande commando uit te voeren:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Nu is Fail2Ban actief! Elk IP-adres dat 5 keer foutief inlogt wordt vanaf nu automatisch in de firewall opgenomen.