Fail2Ban installeren op CentOS

Een van de meest voorkomende aanvallen op een Linux-server is een brute-force aanval. Hierbij proberen geautomatiseerde scripts grote aantallen gebruikersnamen en wachtwoorden uit om toegang te krijgen tot diensten zoals SSH, FTP of een mailserver.

Met Fail2Ban kun je jouw server eenvoudig beschermen tegen dit soort aanvallen. Fail2Ban controleert logbestanden op mislukte inlogpogingen en blokkeert aanvallende IP-adressen automatisch via de firewall.

In deze handleiding laten we zien hoe je Fail2Ban installeert en configureert op een CentOS-server.

Stap 1: Inloggen op de server

Log in als root via PuTTY (SSH) of open de console vanuit het controlepaneel.

Stap 2: De EPEL Repository installeren

Fail2Ban is standaard niet opgenomen in de CentOS repositories. Installeer daarom eerst de EPEL repository.

Voor CentOS 5:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Voor CentOS 6:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Stap 3: Fail2Ban installeren

Installeer vervolgens Fail2Ban met YUM.

yum install fail2ban

Bevestig de installatie met Y wanneer hierom wordt gevraagd.

Na de installatie is Fail2Ban aanwezig, maar nog niet geconfigureerd.


Stap 4: Fail2Ban configureren

Maak een lokaal configuratiebestand aan.

vi /etc/fail2ban/jail.local

Plaats de onderstaande inhoud in het bestand.

[DEFAULT]

ignoreip = 127.0.0.1/8
bantime = 600
findtime = 600
maxretry = 5

destemail = mail@domein.nl
sender = fail2ban@domein.nl

action = %(action_mwl)s

banaction = iptables-multiport

Betekenis van de instellingen

  • ignoreip: IP-adressen die nooit geblokkeerd mogen worden.
  • bantime: Tijd (in seconden) dat een IP-adres wordt geblokkeerd.
  • findtime: Periode waarbinnen het maximum aantal inlogpogingen wordt geteld.
  • maxretry: Maximum aantal mislukte inlogpogingen.
  • destemail: E-mailadres waarop meldingen worden ontvangen.

Stap 5: SSH beveiligen

Maak een configuratiebestand aan.

vi /etc/fail2ban/jail.d/sshd.local

Voeg de volgende configuratie toe.

[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 5

Gebruik je een andere SSH-poort? Pas dan de poort aan in de configuratie.


Stap 6: ProFTPD beveiligen

Maak een nieuw configuratiebestand.

vi /etc/fail2ban/jail.d/proftpd.local

Voeg toe:

[proftpd]

enabled = true
port = ftp,ftp-data,ftps,ftps-data
logpath = /var/log/messages
maxretry = 5

Stap 7: Exim beveiligen

Maak een configuratiebestand.

vi /etc/fail2ban/jail.d/exim.local

Voeg de volgende regels toe.

[exim]

enabled = true
filter = exim
action = iptables-multiport[name=Exim, port=smtp, protocol=tcp]
logpath = /var/log/exim/mainlog
maxretry = 5

Wanneer je veel SMTP-authenticatie gebruikt, kun je ook het Exim-filter uitbreiden.

Open hiervoor:

vi /etc/fail2ban/filter.d/exim.conf

Voeg aan het einde van de failregex de volgende regel toe.

\[<HOST>\]: 535 Incorrect authentication data

Hierdoor worden mislukte SMTP AUTH-pogingen eveneens gedetecteerd.


Stap 8: Dovecot beveiligen

Maak een configuratiebestand aan.

vi /etc/fail2ban/jail.d/dovecot.local

Plaats hierin:

[dovecot]

enabled = true
port = pop3,pop3s,imap,imaps
filter = dovecot
logpath = /var/log/maillog
maxretry = 5

Stap 9: BIND (named) beveiligen

Gebruik je BIND als DNS-server, maak dan het volgende configuratiebestand aan.

vi /etc/fail2ban/jail.d/named.local

Voeg toe:

[named]

enabled = true
port = domain
protocol = udp
filter = named-refused
logpath = /var/named/data/named.run
maxretry = 5

Stap 10: Fail2Ban automatisch starten

Schakel de service in zodat deze automatisch start wanneer de server opnieuw wordt opgestart.

chkconfig fail2ban on

Start vervolgens Fail2Ban.

service fail2ban start

Controleer of de service actief is.

service fail2ban status

Controle

Je kunt de firewallregels controleren met:

iptables -L -n

Wanneer een IP-adres vijf keer achter elkaar een onjuiste gebruikersnaam of wachtwoord gebruikt, wordt dit automatisch gedurende tien minuten geblokkeerd.

Conclusie

Met Fail2Ban voeg je een extra beveiligingslaag toe aan je Linux-server. Vooral diensten zoals SSH, FTP en mailservers zijn regelmatig doelwit van brute-force aanvallen. Door verdachte IP-adressen automatisch te blokkeren, verklein je de kans op ongeautoriseerde toegang aanzienlijk.

Hoewel Fail2Ban geen vervanging is voor sterke wachtwoorden en regelmatige beveiligingsupdates, is het een waardevolle aanvulling op iedere CentOS-server.

Add a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *