Server mit Fail2Ban absichern

  • Jetzt will ich endlich mal das nachholen was ich im Thread
    pdAdmin-Server schützen
    versprochen habe und erstelle hiermit eine kurzes HowTo um einen pdAdmin-Server mithilfe von "fail2ban" ein wenig abzusichern.


    Auf CentOS können wir das „Atomic“-Repository nutzen um „fail2ban“ zu installieren.
    Um das Repository zu installieren genügt folgende Zeile:

    Code
    1. wget -q -O - http://www.atomicorp.com/installers/atomic | sh

    Selbstverständlich kann auch jedes andere repository genutzt werden das "fail2ban" zur installation zur Verfügung stellt.


    Anschliessend kann „fail2ban“ per

    Code
    1. yum install fail2ban

    Installiert werden.


    Fail2Ban wird über folgende Dateien eingerichtet:

    • jail.conf
    • filter.d/<filtername>.conf

    Zudem ist es wichtig zu wissen welche LogFiles von fail2ban durchsucht werden müssen damit ein bestimmter Filter greifen kann!


    Wenn eine Regel greift, wird/kann eine eMail an den Admin erfolgen das einen bestimmte Aktion von fail2ban ausgelöst wurde bzw. ein Filter gerade gegriffen hat.


    vi /etc/fail2ban/jail.conf
    Die folgenden Zeilen einfach am Ende der Datei einfügen:

    Nachdem die jail.conf nun fertig eingerichtet ist, müssen die entsprechenden Filterregeln noch erstellt werden. Diese werden im verzeichnis /etc/fail2ban/filder.d/ erstellt und heissen:


    vi /etc/fail2ban/filter.d/pdqmail-imap.conf


    vi /etc/fail2ban/filter.d/pdqmail-pop.conf


    vi /etc/fail2ban/filter.d/pdqmail-smtp.conf


    Die Default-ProFTP-Regel von fail2Ban muss ein wenig angepasst werden (Fett markiert):
    vi /etc/fail2ban/filter.d/proftpd.conf

    Anschliessend starten wir das ganze mit /etc/init.d/fail2ban restart bzw. start und sorgen per chkconfig fail2ban on dafür das dieser auch beim Booten gestartet wird.


    Mit „fail2ban-client –d“ kann man prüfen ob die Configs in Ordnung sind. Etwaige Fehler werden zu Begin mit „Error“ eingeleitet.

  • Anmerkung:
    Mit den Ergänzungen von blocklist.de kann man denen ihren Dienst nutzen und automatisch abuse-meldungen von blocklist.de schicken lassen. (Allerdings sollte man dann darauf achten dass man fail2ban so einstellt dass nicht 99% false positives erzeugt wird) Über den Erfolg der abuse-mitteilung kann sich jeder selbst ein Bild machen...


    PS: Wenn der Link nicht erlaubt ist bitte löchen :)

  • Hallo webby,
    ich habe nun auch centOS drauf und habe diese Anleitung von dir befolgt aber leider bekomme ich beim neustarten von Fail2ban immer ein Failed!

    Code
    1. [root@v12022811380xxxx ~]# /etc/init.d/fail2ban restart
    2. Stopping fail2ban: [FAILED]
    3. Starting fail2ban: [FAILED]
    4. [root@v12022811380xxxx ~]#


    so sieht meine jail.conf aus und meine filter


    weißt du woran das liegen könnte?


    Bei den Befehl fail2ban-client –d kommt

    Code
    1. [root@v12022811380xxxx ~]# fail2ban-client .d
    2. ERROR Unable to contact server. Is it running?
    3. [root@v12022811380xxxx ~]#
  • Das ist eigenartig... ich habe das ganze schon auf 5 oder 6 Server genau wie hier beschrieben installiert und es läuft...


    Was passiert wenn Ihr in der Jail.conf mal alle "filter" deaktiviert.. also anstelle von "True" auf "False" setzt?... dann mal nacheinander auf "True" setzten und jeweils per

    Code
    1. /etc/init.d/fail2ban restart

    schauen was passiert.


    Interessant wäre auch was in


    Code
    1. /var/log/fail2ban.log


    steht :)

  • Vielen Dank webby für deine fail2ban Regeln hier. Ich teste das gerade mal aus, allerdings eine Frage zu dem ProFTP Logfile: Das existiert so ja gar nicht bzw. wenn ich mir die proftpd.conf von der SEU anschaue dann ist da gar kein Logfile außer dem xferlog eingetragen?

  • Zitat

    Original von Nergal
    Vielen Dank webby für deine fail2ban Regeln hier. Ich teste das gerade mal aus, allerdings eine Frage zu dem ProFTP Logfile: Das existiert so ja gar nicht bzw. wenn ich mir die proftpd.conf von der SEU anschaue dann ist da gar kein Logfile außer dem xferlog eingetragen?


    Hi Nergal,


    bei CentOS sind die entsprechenden Logs in "/var/log/messages" zu finden.
    Also müsste in "jail.conf" bei bei proFTP-Regel stehen:

    Code
    1. logpath = /var/log/messages
  • Bei Debian übrigens auch. ;) Danke für den Hinweis noch mal...


    Ich hab noch das Problem mit dem POP3 Login:

    Code
    1. Apr 23 00:20:45 xxxxx02 pdadmin[27739]: User [EMAIL]xxxxxxxxxx@xxxx-xxx.de[/EMAIL]: login failure from xx.xxx.232.1
    2. Apr 23 00:20:45 xxxxx02 pdadmin[27743]: User [EMAIL]xxxxxxxxxx@xxxx-xxx.de[/EMAIL]: login from xx.xxx.232.1


    So kommt es nach einigen Abrufen (mehrere POP3 Konten von diesem User/IP) zu einer Sperre. Irgendwie versucht Outlook oder was auch immer erst eine Authentifizierung die nicht hinhaut und dann eine die funktioniert. Also failure und danach ok.


    Hast du da noch eine Idee?

  • Also das verhalten kenne ich noch nicht...


    Sicher das in Outlook auch wirklich kein weiteres Konto eingerichtet ist?
    Oder ein anderes eMail-Programm das zusätzlich läuft?...

  • kann mir vlt jemand helfen wie diese hier für Debian Squeeze ausehen müßten?


  • Hallo,


    ich habe Squeeze und bei mir sieht es so aus

  • das ist komisch ,bekomme immer ein


    Restarting authentication failure monitor: fail2ban failed!


    muss sonst noch was geändert werden ausser die filter?




    edit



    nun gehts lag an den filter namen.Vielen dank nochmal für deine Hilfe :]


    Hast du noch mehr für den Apache?

  • Abend,


    hat jemand nen Tipp für mich, wie ich per Regex den Dateiaufruf der Datei /images/sh.php mit fail2ban verbieten kann?


    Jemand hat von einem Kunden eine alte Joomla install übernommen und führt POST Anfragen permanent auf diese Datei durch..! --> DDoS-Lastig - verschiedene IP's..!


    Datei ist gelöscht, passwort mit htaccess abgesichert..!


    Freue mich auf Input,
    Danke!

  • Ich habe derzeit ein ähnliches Problem das ich angehen möchte mit einem skript das noch immer permanent versucht wird aber nicht mehr auf dem server vorhanden.


    ich hoffe ich schaue es diese woche noch eine entsprechende fail2ban regel zu erstellen die im access_log nach aufrufen dieser datei sucht und bei aufrufen die entsprechende ip blockt..


    falls du bereits ein passendes regex gefunden hast - kannst du das hier posten?
    Ansonsten werd ich dran denken mein ergebnis zu posten wenn ichs hinbekomme :)

  • Zitat

    Original von webby
    falls du bereits ein passendes regex gefunden hast - kannst du das hier posten?
    Ansonsten werd ich dran denken mein ergebnis zu posten wenn ichs hinbekomme :)


    Hi,


    leider nicht! ich habe jetzt einfach die Dateien gelöscht, und den Ordner dagelassen mit einem .htaccess-File geblockt..!


    Mittlerweile hat der "Angriff" auch aufgehört..!


    Hab viel gesucht und auch gefunden - aber funktioniert hat nichts..!


    lg Patrick

  • vielleicht kannst du die im plugin befindliche "wordpress.conf" direkt in die serverweite fail2ban einbinden und es prüft dann alle aufrufe aller wp-seiten - aber dafür kenn ich mich zu wenig mit der konfig-datei aus.


    kann das evtl. jemand bestätigen?