Fail2ban – Beveilig je server met Fail2ban op Ubuntu server

Fail2ban Server – VPS

In een eerder topic heb ik het gehad over het beveiligen van WordPress tegen de wel bekende bruteforce aanvallen. Mocht je het artikel niet gezien hebben Check hem dan hier: http://cybertalk.nl/wordpress-blog-beveiligen/

In dit artikel ga ik behandelen hoe je een Ubuntu (linux distributie) kan beveiligen middels Fail2ban. Omdat hier nogal wat configuratie aan vooraf gaat heb ik besloten dit in een los artikel te behandelen.

Wat is een VPS

Een VPS is eigenlijk een server die speciaal voor jouw is ingericht. Echter bestaat deze niet uit hardware. maar is deze virtueel geïnstalleerd middels een virtualisatie laag zoals Hyper-V of bijvoorbeeld ESXI.

VPS staat voor: Virtual private server

Het kan ook zijn dat je een server hebt die geheel is ingericht voor alleen jouw doelen. Dit noem je dan een Dedicated server. Mocht deze term je niet bekend voor komen heb je kans dat jij een Shared host hebt. Indien dit het geval is dan is de kans groot dat je niet mee kan doen aan dit artikel. De rechten zijn vaak erg streng om gedeelde hosting servers. Mocht je hier vragen over hebben contact dan je hosting partner.

Verbinden met je server

Ik hoef je waarschijnlijk niet te vertellen hoe je op je eigen server moet inloggen maar ik geef wel een paar opties hoe je dat kan doen.

Als je een VPS hebt afgenomen bij een hosting bedrijf kan je vaak inloggen via hun klantportaal of met SSH / Telnet.

Om met SSH in te loggen kun je een handig tooltje downloaden. Putty. Download deze wel van de originele website.
http://www.putty.org/

Met de volgende instellingen moet het lukken om een Terminal venster met jouw server te krijgen.
Fail2ban putty settings

Beginnen met het instellen

Log in op de server die we gaan beveiligen. in mijn geval is dit een Ubuntu server 16.04 LTS (Long term support).

Log in met je gegevens.

Indien nodig update je server door middel van:

apt-get update && apt-get upgrade
typ later Y voor YES.

fail2ban - root on server

Typ vervolgens het volgende commando om Root te worden op je server (hierdoor worden we niet steeds gevraagd om het wachtwoord.)

Sudo -i

Voer het wachtwoord in voor de Superuser. SUDO.

Installeer Fail2ban:

apt-get install fail2ban

Zoals je ziet is Sudo nu ook niet meer nodig- we zijn immers al root. Loop deze installatie door tot je weer root@servernaam ziet.

Maak nu een copie van de mee geinstalleerde Jail. een jail kun je zien als een regel of voorwaarde. mocht de hacker of aanvaller niet luisteren beland hij in een jail en wordt zijn IP geband. De server is nu offline vanaf de aanvaller zijn locatie.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

open met het volgende commando de jail.local file.

nano /etc/fail2ban/jail.local

 

Voer de volgende regels in de Fail2ban jail.

[DEFAULT]
ignoreip = 127.0.0.1
bantime = 3600
findtime = 600
maxretry = 3

CTRL + O voor opslaan ENTER |  CTRL + X  ENTER voor afsluiten en terug naar terminal.

Deze regels geven aan dat er een standaard regel is ingesteld die het toestaat om 3 keer te proberen in te loggen en daarna blokkeerd.

De regel met ignoreip = 172.0.0.1 geeft aan dat de localhost (je eigen server dus) niet geband raakt.

De jail voor SSH is standaard al actief.

Nu we een standaard regel hebben ingesteld en SSH is actief dan kunnen we ons nu richten op wordpress login pogingen.

Fail2ban voor WordPress inlog pogingen

voor WordPress kun je een plugin installeren waarmee het een stuk eenvoudiger wordt om de fouten te loggen en ook echt te blokkeren.

Log in op je wordpress Admin en download de plugin WP fail2ban gemaakt door Charles lecklider.

Voer vervolgens de volgende stappen uit om een filter aan te maken en om de pogingen te blokkeren.

  1. cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/
    Dit kopieerd de code uit de plugin naar de fail2ban jails
  2. nano /etc/fail2ban/jail.local
  3. plaats de volgende code in de jail.local file
    [wordpress-hard]
    enabled = true
    filter = wordpress-hard
    logpath = /var/log/auth.log
    maxretry = 3
    port = http,https
    ignoreip = 172.0.0.1/8
    findtime = 172800
    bantime = 604800
  4. service fail2ban restartHiermee herstart je Fail2ban zodat deze de nieuwe regels toepast.
  5. Test of alles werkt kun je doen met het volgende commando:
    fail2ban-client status wordpress-hardDit geeft de output zoals je in de afbeelding hier onder kan zien.
    Herhaal dit commando zo vaak als je wilt. het laat slechts de status zien.

Fail2ban working

Heb je het goed geconfigureerd dan krijg je een output gelijk aan het mijne. Mocht het niet lukken laat dan gerust een berichtje achter.

Neem ook eens een kijkje naar bijvoorbeeld FTP / WEBMIN / EMAIL etc. hier kun je de zelfde werkwijze voor gebruiken.

 

Geef een reactie

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

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.