Fail2Ban dient dazu IP Adressen zu blockieren die sich unerlaubt Zugriff zum System verschaffen wollen. Dazu überprüft es Logfiles auf bestimmte sich IP Adressen und sich wiederholende Ereignisse, wie z.B. fehlgeschlagen Loginversuche.

Standardmäßig verfügt Fail2Ban bereits über eine Vielzahl an vorgefertigten Filtern für verschiedene Dienste. OpenVPN gehört leider nicht dazu, lässt sich jedoch leicht hinzufügen.

Als erstes erstellen wir unter /etc/fail2ban/filter.d/ die Datei openvpn.conf.

sudo touch /etc/fail2ban/filter.d/openvpn.conf

und füllen sie mit folgendem Inhalt
[Definition]
failregex = <HOST>:d{1,5} TLS Auth Error
<HOST>:d{1,5} VERIFY ERROR:
<HOST>:d{1,5} TLS Error: TLS handshake failed

Damit teilen wir Fail2ban mit, wo es die IP Adressen findet und auf welche Aktionen es reagieren soll. In diesem Fall fehlgeschlagene Loginversuche, da der potentielle Angreifer kein gültiges Zertifikat vorlegen kann. Anschließend fügen wir den OpenVPN Dienst zur /etc/fail2ban/jail.local hinzu

[openvpn]
enabled = true
protocol = udp
port    = 1194
filter    = openvpn
logpath = /var/log/syslog
maxretry = 3

Falls bei der Einrichtung von OpenVPN die Standardwerte verändert wurden (z.B. der Port oder der Pfad für die Logfiles) müssen diese hier ebenfalls angepasst werden.

Nun muss Fail2ban nur noch neugestartet werden

sudo service fail2ban restart

Dieser Artikel ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz.

2 Comments

  1. Hi,
    irgendetwas passt in deiner [Definition] nicht, es fehlt die HOST-Definition. Wahrscheinlich sind die Einträge in deinem Text vorhanden werden aber wegen der Klammern durch dein WordPress heraus gefiltert?!

    • Niko

      Hallo,
      dankeschön für den Hinweis. Es scheint tatsächlich so zu sein dass WordPress bei Verwendung des < pre > Tags Zeichen zwischen den < >-Zeichen entfernt. Bei Verwendung des < code > Tags scheint es zu funktionieren.
      Es wurde in der Tat der Host Teil vor dem Doppelpunkt entfernt. Ich habe es wieder eingefügt und hoffe dass die Definition nun passt. Da ich diese Konfiguration derzeit nicht mehr einsetze kann ich es leider auf die schnelle nicht testen.