sakibmoon.fail2ban

Rollenname

Ansible Galaxy Build Status
Eine Ansible-Rolle zur Installation und Verwaltung von Fail2ban.

Voraussetzungen

Ansible Version 2.6 oder höher.

Installation

Ansible Galaxy

Verwende ansible-galaxy install sakibmoon.fail2ban

Git

Verwende git clone https://github.com/sakibmoon/ansible-role-fail2ban.git

Anwendung

Installiere und aktiviere Fail2ban und konfiguriere SSH mit Fail2ban.

    - hosts: servers
      vars:
        fail2ban_services:
          - name: "sshd"
            enabled: "true"
            port: "ssh"
            filter: "sshd"
            logpath: "/var/log/auth.log"
            maxretry: 6       
      roles:
         - sakibmoon.fail2ban

Siehe Rollenvariablen und Beispiel-Playbook für komplexere Anwendungsfälle und wie du alle Optionen anpassen kannst.

Rollenvariablen

Service-Überwachungsoptionen

fail2ban_services
Eine Liste von Diensten, die von Fail2ban überwacht werden sollen. Jede Listenoption muss den Dienstnamen und den Logpfad enthalten. Gib nur die Einstellungen an, die du ändern möchtest. Der Rest der Konfiguration stammt aus der globalen Gefängniskonfiguration, wie hier zu sehen/setzen hier.

Service-Optionen:

name: Name des Dienstes
logpath: Logpfad des Dienstes, der überwacht werden soll
port: Durch Komma getrennte Ports zur Überwachung
enabled: Ob dieses Gefängnis aktiviert werden soll

Aktionsliste

fail2ban_actionlist
Eine Liste von Aktionen, die erstellt werden sollen. Die Aktionen werden im Verzeichnis /etc/fail2ban/action.d/ gespeichert. Eine einzelne Aktion kann folgende Optionen enthalten:

name: Aktionsname. Der Name der Datei.
sections: Eine Liste von Abschnitten wie Definition, Init usw., die ein Wörterbuch von Einträgen enthält
file_ext: (Optional) Die Dateierweiterung. Kann entweder local oder conf sein. Standard: local

Beispiel:

    fail2ban_actionlist:
      - name: toy-action1
        sections:
          - name: Definition
            options:
              - name: actionstart
                value: "ActionStart Wert"
              - name: actionflush
                value: "Actionflush Wert"
          - name: Init
            options:
              - name: timeout
                value: "timeout Wert"
        file_ext: "local"
      - name: toy-action2
        sections:
          - name: INCLUDES
            options:
              - name: before
                value: something-to-include.local
          - name: Definition
            options:
              - name: actionstart
                value: "ActionStart Wert"
              - name: actionflush
                value: "Actionflush Wert"
          - name: Init
            options:
              - name: timeout
                value: "timeout Wert"

Filterliste

fail2ban_filterlist
Eine Liste von Filtern, die erstellt werden sollen. Der Filter wird im Verzeichnis /etc/fail2ban/action.d/ gespeichert. Das Format ist dasselbe wie bei fail2ban_actionlist, wie oben gezeigt.

Fail2ban-Konfigurationsoptionen

Variablenname Fail2ban-Optionsname Optionswerte Standardwert Beschreibung
fail2ban_confpath [DATEI] /etc/fail2ban/fail2ban.local Der Pfad, wo die Fail2ban-Konfigurationen geschrieben werden.
fail2ban_loglevel loglevel CRITICAL
ERROR
WARNING
INFO
DEBUG
\
[0-3]
ERROR für Version > 0.8.x
1 für Version 0.8.x
Legt die Logausgabestufe fest.
fail2ban_logtarget logtarget [DATEI]
STDOUT
STDERR
SYSLOG
/var/log/fail2ban.log Legt das Log-Ziel fest. Nur ein Log-Ziel kann angegeben werden.
fail2ban_syslogsocket syslogsocket auto
[DATEI]
auto Legt die Syslog-Socket-Datei fest.
fail2ban_socket socket [DATEI] /var/run/fail2ban/fail2ban.sock Legt die Socket-Datei fest. Diese wird verwendet, um mit dem Daemon zu kommunizieren.
fail2ban_pidfile pidfile [DATEI] /var/run/fail2ban/fail2ban.pid Legt die PID-Datei fest. Diese wird verwendet, um die Prozess-ID des Fail2ban-Servers zu speichern.
fail2ban_dbfile dbfile None
:memory:
[DATEI]
/var/lib/fail2ban/fail2ban.sqlite3 Legt die Datei fest, in der die persistenten Daten von Fail2ban gespeichert werden.
fail2ban_dbpurgeage dbpurgeage [ SEKUNDEN ] 86400 Legt das Alter fest, ab dem Sperren aus der Datenbank gelöscht werden sollen.
fail2ban_dbmaxmatches dbmaxmatches [ INT ] 20 Anzahl der im Speicher gehaltenen Übereinstimmungen pro Ticket.
fail2ban_stacksize stacksize [ GRÖSSE ] 0 Legt die Stapelgröße (in KiB) für neu erstellte Threads fest und muss 0 oder eine positive ganze Zahl von mindestens 32 sein.

Globale Gefängniskonfigurationsoptionen

Variablenname Fail2ban-Optionsname Optionswerte Standardwert Beschreibung
fail2ban_jailpath [DATEI] /etc/fail2ban/jail.local Die Datei zum Schreiben der standardmäßigen Gefängniskonfiguration von Fail2ban.
fail2ban_ignoreself ignoreself boolean
true
false
true Gibt an, ob das Sperren der eigenen IP-Adressen verhindert werden soll.
fail2ban_ignoreip ignoreip Liste von IP-Adressen Liste von IPs, die nicht gesperrt werden sollen.
fail2ban_ignorecommand ignorecommand /path/to/command Externer Befehl, der taggespeicherte Argumente ignoriert.
fail2ban_ignorecache ignorecache disabled Cache-Parameter für die Überprüfung von Fehlern.
fail2ban_bantime bantime [ SEKUNDEN ] 600 Effektive Sperrdauer (in Sekunden).
fail2ban_findtime findtime [ SEKUNDEN ] 600 Zeitintervall (in Sekunden), bevor die aktuellen Fehler zur Sperrung zählen.
fail2ban_maxretry maxretry [ INT ] 5 Anzahl der Fehler, bevor ein Host gesperrt wird.
fail2ban_backend backend pyinotify
gamin
polling
systemd
auto
auto Gibt den Backend an zur Dateimodifikationserkennung.
fail2ban_usedns usedns yes
warn
no
raw
warn Gibt an, ob die Gefängnisse Hostnamen in Logs vertrauen sollen.
fail2ban_logencoding logencoding auto
ascii
utf-8
etc.
auto Legt die Kodierung der von dem Gefängnis verwalteten Logdateien fest.
fail2ban_mode mode normal
ddos
extra
aggressive
normal Der Modus des Filters.
fail2ban_filter filter Filtername %(__name__)s[mode=%(mode)s] Der Filter, der von dem Gefängnis verwendet werden soll.
fail2ban_logtimezone logtimezone UTC
UTC+0200
GMT-0100
usw.
Zwingt die Zeitzone für Logzeilen, die keine haben.
fail2ban_banaction banaction iptables, iptables-new, iptables-multiport, shorewall, usw. iptables-multiport Standard-Baßaktion.
fail2ban_banaction_allports banaction_allports iptables, iptables-new, iptables-multiport, shorewall, usw. iptables-allports Dasselbe wie die Banaction, aber für „alle Ports“-Gefängnisse.
fail2ban_action action %(action_)s Wähle die Standardaktion. Zum Ändern überschreibe einfach den Wert von 'action'.
fail2ban_failregex failregex Python-Regulärer Ausdruck regex, die dem Filter hinzugefügt werden soll.
fail2ban_ignoreregex ignoreregex Regex, die, wenn der Logzeile übereinstimmt, dazu führt, dass Fail2Ban diese Zeile nicht betrachtet.
fail2ban_maxmatches maxmatches [INT] Maximale Anzahl der übereinstimmenden Logzeilen, die das Gefängnis im Speicher pro Ticket speichert.

Abhängigkeiten

Keine Abhängigkeiten.

Unterstützte Plattformen

Diese Rolle sollte auf jeder Redhat- oder Debian-basierten Linux-Distribution funktionieren. Sie wurde auf den folgenden Plattformen getestet:

  • CentOS 8
  • CentOS 7
  • Ubuntu 18.04
  • Ubuntu 16.04
  • Debian 10
  • Debian 9

Beispiel-Playbook

Das folgende Playbook installiert, aktiviert Fail2ban und fügt ein SSH-Gefängnis hinzu.

    - hosts: servers
      vars:
        fail2ban_services:
          - name: "sshd"
            enabled: "true"
            port: "ssh"
            filter: "sshd"
            logpath: "/var/log/auth.log"
            maxretry: 6       
      roles:
         - sakibmoon.fail2ban

Lizenz

MIT

Autoreninformation

Diese Rolle wurde von sakibmoon @2020 erstellt.

Über das Projekt

An ansible role to install and manage Fail2ban

Installieren
ansible-galaxy install sakibmoon.fail2ban
GitHub Repository
Lizenz
mit
Downloads
592
Besitzer