User Tools

Site Tools


linux:fail2ban

fail2ban

context

dit document beschrijft de werking van fail2ban, een intrusion-prevention system (IPS) dat ip adressen blokkeert waarvan meermaals gefaalde aanmeldpogingen afkomstig zijn.

werking

fail2ban monitort logboeken van Linux services op gefaalde aanmeldpogingen. Zodra het aantal pogingen is overschreden, voegt fail2ban een firewall regel toe waardoor het ipdres voor bepaalde tijd wordt geblokkkeerd.
Zodra die tijd is verstreken, wordt de firewall regel automatisch verwijderd waardoor het adres wordt vrijgegeven en de host opnieuw kan aanmelden.

Het programma bestaat uit 3 componenten: server, client en configuratiebestanden

server

  • fail2ban-server monitort de logboeken van Linux services op basis van filters.
    Voor elke gefaalde of onrechtmatige aanmeldpoging bestaat er een reguliere expressie
  • op basis van het aantal gefaalde pogingen onderneemt de server actions die meestal neerkomen op een firewall regel toevoegen die verkeer vanaf die bepaalde host blokkeert (ban)
  • voor elke service die wordt bewaakt, wordt een zgn jail aangemaakt, een combinatie van filters en actions.
  • na bepaalde tijd wordt die firewall regel automatisch gewist zodat een host vrijgegeven (unban) wordt.
  • het logbestand staat onder /var/log/fail2ban.log

client

  • fail2ban-client: configureert de server en kan ipadressen handmatig vrijgeven.
  • meestbruikte commando's:
    • status van faiL2ban
       fail2ban-client status 
    • status van een specifieke jail:
       fail2ban-client status sshd 
    • ip adres vrijgeven:
       fail2ban-client unban 10.11.12.13 

configuratiebestanden

/etc/fail2ban/

fail2ban.conf

  • algemene programma werking
  • bewaar je eigen instellingen in fail2ban.local zodat je instellingen niet overschreven worden bij eerstvolgende update. vb:
    [Definition]
    loglevel = DEBUG
    logtarget = /var/log/fail2ban.log

filter.d

  • deze directory bevat voor elke Linux service een .conf-bestand waarin de reguliere expressies staat voor een gefaalde aanmeldpoging.

actions.d

  • voor elke firewall staat hier de specifieke syntax om een firewall regel toe te voegen om een ipadres te bannen en unbannen.
  • bevat ook enkele bruikbare mail configuraties zodat een mail kan verstuurd worden zodra een ipadres is geblokkeerd.

jail.conf

  • globale instellingen voor het vergrendelingsbeleid:
    • maximaal aantal foutieve aanmeldpogingen
    • hoelang wordt het ip adres geblokkeerd
    • welke ipadressen moeten gewhitelist worden?
  • bewaar je eigen instellingen in jail.local zodat je instellingen niet overschreven worden bij eerstvolgende update. vb:
    [DEFAULT]
    bantime = 30m
    findtime = 10m
    maxretry = 10
    banaction = ufw
    banaction_allports = ufw

jail.d

  • een jail per service
  • voorbeeld:
    [sshd]
    enabled = true
    port = 12345
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 10 min

Great Fun

Als je fail2ban es lekker aan het werk wilt zetten:

  • zet een Linux bakkie op het internet
  • maak die bereikbaar op een standaard poort.
  • zorg dat er enkel kan aangemeld worden met private/public key
  • stel fail2ban in dattie gedurende 1 uur ip adressen blokkeert
  • laat em een weekje ongemoeid en ga dan es door je logboek.

opvolgen

meer info

linux/fail2ban.txt · Last modified: 2024/11/16 18:14 by 127.0.0.1