Ehoco.nl

Home Automation

How-toRaspberryUITGELICHT

Fail2Ban installeren op een Raspberry Pi

Indien je jouw Raspberry Pi als een server gebruikt, bijvoorbeeld als ssh of webserver, dan zitten er ‘gaten’ in de firewall. Door deze gaten gaat het gewenste verkeer. Echter, kwaadwillenden kunnen via deze gaten ook naar binnen komen en daar kan Fail2ban goed van pas komen. Fail2ban, geschreven in Python, is een scanner die de logbestanden van de Raspberry Pi bekijkt op verdachte activiteiten. Zaken als brute-force pogingen om in te loggen zullen opgemerkt worden. Vervolgens wordt de geïnstalleerde firewall ‘geïnformeerd’ dat verdere log in pogingen van een verdacht IP adres geblokkeerd moeten worden. Je hoeft dus zelf de logbestanden niet meer te bekijken voor ongewenste pogingen en je hoeft de firewall zelf ook niet meer aan te passen.

 

Benodigdheden

 

Fail2Ban installeren

Installeer Fail2ban met het volgende commando:


Let op dat de versie van Fail2ban in de repository (v.0.8.13) geen IPv6 netwerken ondersteunt. Indien je IPv6 gebruikt dan moet je versie v0.10 of hoger installeren. Kijk op de website van Fail2ban voor meer informatie hoe je dit precies kunt doen.

Tijdens de installatie creëert Fail2ban een folder /etc/fail2ban waar het configuratiebestand jail.conf in staat. Dit moet gekopieerd worden naar jail.local om het te actieveren. In het configuratiebestand staat een set van standaard opties. Geef onderstaande commando’s bij de terminal in:


Ga opzoek naar de sectie[ssh]. Je zal iets soortgelijks als onderstaand zien (mocht je [ssh] niet vinden voeg onderstaande regels dan toe aan het bestand):


Zoals je kunt zien heet deze sectie ssh, is ingeschakeld, betreft de ssh poort, filters gebruiken de \etc\fail2ban\filters.d\sshd.conf parameters, maakt een logbestand aan in /var/log/auth.log voor verdachte activiteiten en staat zes pogingen toe, voordat er daadwerkelijk actie wordt ondernomen. We zien dat de standaard ban actie het volgende is:


iptables-multiport betekent dat het Fail2ban systeem het /etc/fail2ban/action.d/iptables-multiport.conf bestand uitvoert indien aan de voorwaarden wordt voldaan. Er is een aantal verschillende actie configuratiebestanden die gebruikt kunnen worden. Multiport blokkeert alle toegang tot alle poorten.

 

IP-adres permanent blokkeren

Indien je een IP adres permanent wilt blokkeren na drie gefaalde pogingen dan kun je de waarde van maxretry in de[ ssh] sectie op 3 zetten en de bantime een negatief nummer geven:


Verdere specifieke informatie over settings van Fail2ban kun je hier vinden. Nadat je alle settings goed gezet hebt gaan we Fail2ban herstarten, zodat alle wijzigingen ook actief zijn:


Vanaf nu is je Raspberry Pi beschermd tegen brute-force aanvallen, hoewel alle bans worden opgeheven indien je Fail2ban of je Raspberry Pi herstart. Mocht je het voor elkaar krijgen om jezelf te bannen, dan kun je simpelweg de Raspberry Pi rebooten.

Je kunt jouw IPTables bekijken om alle gebande IP adressen in te zien met commando:


 

IP-adressen whitelisten

Uiteraard wil je niet dat je zelf geblokkeerd wordt, indien je een verkeerd wachtwoord intypt. We gaan de het LAN-netwerk op de whitelist van Fail2Ban zetten:


Zoek nu naar de regel ignoreip = 127.0.0.1/8. Wijzig deze regel naar ignoreip = 127.0.0.1/8 192.168.1.0/24 (uiteraard moet je hier wel jouw LAN IP-range neerzetten. Mocht je nog meer vertrouwde IP-adressen hebben dan kun je deze aan het einde van de regel toevoegen (de IP-adressen moeten gescheiden worden met een spatie).

Om alle wijzigingen door te voeren moeten we Fail2Ban herstarten:


 

Unban IP-adres

Mocht er per abuis een IP-adres geblokkeerd zijn dan kun je dat uiteraard ongedaan maken. Dit doen we met onderstaand commando:


IPADDRESSHERE moet je vervangen door het IP-adres dat je weer wilt deblokkeren. YOURJAILNAMEHERE moet je vervangen door de desbetreffende jailname. De jailnames kun je opvragen met commando:


fail2ban

Om te controleren dat het IP-adres werkelijk gedeblokkeerd is geef je onderstaand commando in:


 

Voorbeeld logbestand Fail2Ban

Mocht je nog niet overtuigd zijn van het nut van Fail2ban, bekijk dan eens onderstaand lijstje. Dit is de vangst van een paar uurtjes:


Indien je bovenstaande stappen hebt uitgevoerd is je Raspberry Pi uitstekend beveiligd tegen indringers van buitenaf!

In deel 2 wordt uitgelegd hoe je Domoticz toe kun voegen aan Fail2Ban.

Een gedachte over “Fail2Ban installeren op een Raspberry Pi

  • Fred vd Poel

    Hallo,
    Ik heb wel 10 keer de installatie van Fail2Ban over gedaan maar blijf met een niet werkend programma zitten.
    Wat doe ik fout?
    Hieronder wat ik gedaan heb.
    Ik hoop dat je me kan helpen
    Groet,
    Fred

    pi@raspberrypi:~ $ sudo apt-get install fail2ban
    Pakketlijsten worden ingelezenā€¦ Klaar
    Boom van vereisten wordt opgebouwd
    De statusinformatie wordt gelezenā€¦ Klaar
    fail2ban is reeds de nieuwste versie (0.10.2-2.1).
    0 opgewaardeerd, 0 nieuw geĆÆnstalleerd, 0 te verwijderen en 23 niet opgewaardeerd.
    pi@raspberrypi:~ $ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    pi@raspberrypi:~ $ sudo nano /etc/fail2ban/jail.local
    pi@raspberrypi:~ $ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    pi@raspberrypi:~ $ sudo nano /etc/fail2ban/jail.local
    pi@raspberrypi:~ $ sudo service fail2ban restart
    pi@raspberrypi:~ $ sudo iptables -L -n ā€“line
    Chain INPUT (policy ACCEPT)
    num target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    num target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    num target prot opt source destination
    pi@raspberrypi:~ $ sudo nano /etc/fail2ban/jail.conf
    pi@raspberrypi:~ $ sudo fail2ban-client status
    Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?
    pi@raspberrypi:~ $ sudo iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination
    pi@raspberrypi:~ $

    Beantwoorden

Geef een reactie

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