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.