sakibmoon.fail2ban

Nazwa Roli

Ansible Galaxy Status budowy
Rola ansible do instalacji i zarządzania Fail2ban

Wymagania

Wersja Ansible 2.6 lub nowsza

Instalacja

Ansible Galaxy

Użyj ansible-galaxy install sakibmoon.fail2ban

Git

Użyj git clone https://github.com/sakibmoon/ansible-role-fail2ban.git

Podstawowe użycie

Zainstaluj i włącz fail2ban oraz skonfiguruj ssh z fail2ban

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

Zobacz Zmienne Roli i Przykładowy Playbook dla bardziej złożonych przypadków użycia oraz jak dostosować wszystkie opcje.

Zmienne Roli

Opcje Monitorowania Usług

fail2ban_services
Lista usług monitorowanych przez fail2ban. Każda opcja na liście musi zawierać nazwę usługi i ścieżkę do logów. Określ tylko ustawienia, które chcesz zmienić. Reszta konfiguracji będzie pochodzić z globalnej konfiguracji, jak pokazano tutaj.

Opcje usługi:

name: Nazwa usługi
logpath: Ścieżka do logów monitowanej usługi
port: Porty do monitorowania, oddzielone przecinkami
enabled: Czy włączyć tę pułapkę

Lista Akcji

fail2ban_actionlist
Lista akcji do utworzenia. Akcje są zapisywane w katalogu /etc/fail2ban/action.d/. Pojedyncza akcja może zawierać następujące opcje:

name: Nazwa akcji. Nazwa pliku.
sections: Lista sekcji takich jak Definition, Init, które zawierają słownik wpisów
file_ext: (Opcjonalnie) Rozszerzenie pliku. Może być local lub conf. Domyślnie: local

Przykład:

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

Lista Filtrów

fail2ban_filterlist
Lista filtrów do utworzenia. Filtr jest zapisywany w katalogu /etc/fail2ban/action.d/. Format jest taki sam jak fail2ban_actionlist, jak pokazano powyżej.

Opcje Konfiguracji Fail2ban

Nazwa Zmiennej Nazwa Opcji Fail2ban Wartości Opcji Wartość Domyślna Opis
fail2ban_confpath [FILE] /etc/fail2ban/fail2ban.local Ścieżka, w której zapisywana jest konfiguracja fail2ban.
fail2ban_loglevel loglevel CRITICAL
ERROR
WARNING
INFO
DEBUG
\
[0-3]
ERROR dla wersji > 0.8.x
1 dla wersji 0.8.x
Ustaw poziom logowania.
fail2ban_logtarget logtarget [FILE]
STDOUT
STDERR
SYSLOG
/var/log/fail2ban.log Ustaw cel logowania. Można określić tylko jeden cel logowania.
Jeśli zmienisz logtarget z wartości domyślnej i używasz logrotate — również dostosuj lub wyłącz rotację w odpowiednim pliku konfiguracyjnym (np. /etc/logrotate.d/fail2ban w systemach Debian).
fail2ban_syslogsocket syslogsocket auto
[FILE]
auto Ustaw plik gniazda syslog.
Używane tylko gdy logtarget to SYSLOG. auto wykorzystuje platform.system() do określenia wstępnie zdefiniowanych ścieżek.
fail2ban_socket socket [FILE] /var/run/fail2ban/fail2ban.sock Ustaw plik gniazda.
Używane do komunikacji z demonem. Nie usuwaj tego pliku, gdy Fail2ban działa. Inaczej nie będzie możliwe komunikowanie się z serwerem.
fail2ban_pidfile pidfile [FILE] /var/run/fail2ban/fail2ban.pid Ustaw plik PID. Używane do przechowywania identyfikatora procesu serwera fail2ban.
fail2ban_dbfile dbfile None
:memory:
[FILE]
/var/lib/fail2ban/fail2ban.sqlite3 Ustaw plik do przechowywania danych trwałych fail2ban.
Wartość :memory: oznacza, że baza danych jest przechowywana tylko w pamięci i dane są tracone, gdy fail2ban zostaje zatrzymany.
Wartość None wyłącza bazę danych.
fail2ban_dbpurgeage dbpurgeage [ SECONDS ] 86400 Ustawia wiek, po którym bany powinny być usuwane z bazy danych
fail2ban_dbmaxmatches dbmaxmatches [ INT ] 20 Liczba dopasowań przechowywanych w bazie danych na zgłoszenie.
fail2ban_stacksize stacksize [ SIZE ] 0 Określa rozmiar stosu (w KiB) używany dla później tworzonych wątków, musi być 0 lub dodatnią wartością całkowitą co najmniej 32.

Opcje Globalnej Konfiguracji Pułapki

Nazwa Zmiennej Nazwa Opcji Fail2ban Wartości Opcji Wartość Domyślna Opis
fail2ban_jailpath [FILE] /etc/fail2ban/jail.local Plik do zapisywania domyślnej konfiguracji pułapki Fail2ban
fail2ban_ignoreself ignoreself boolean
true
false
true Wskazuje, że banowanie własnych adresów IP powinno być zablokowane.
fail2ban_ignoreip ignoreip Lista adresów IP Lista IP, które nie będą banowane. Mogą również zawierać maskę CIDR. Opcja wpływa również na ignoreself (jeśli jest ustawione na true) i nie musi zawierać własnych adresów IP lub DNS hosta.
fail2ban_ignorecommand ignorecommand /path/to/command Zewnętrzna komenda, która weźmie oznaczone argumenty do zignorowania, np. , i zwróci true, jeśli IP ma być ignorowane. False w przeciwnym razie.
fail2ban_ignorecache ignorecache disabled Umożliwienie parametrów pamięci podręcznej dla sprawdzenia błędów (pamięć wyników z ignoreip, ignoreself i ignorecommand)
fail2ban_bantime bantime [ SECONDS ] 600 Czas efektywnego bana (w sekundach).
fail2ban_findtime findtime [ SECONDS ] 600 Interwał czasowy (w sekundach) przed bieżącym czasem, w którym awarie będą liczone na bana.
fail2ban_maxretry maxretry [ INT ] 5 Liczba niepowodzeń przed zablokowaniem hosta.
fail2ban_backend backend pyinotify
gamin
polling
systemd
auto
auto Określa backend używany do uzyskiwania modyfikacji plików.
fail2ban_usedns usedns yes
warn
no
raw
warn Określa, czy pułapki powinny ufać nazwom hostów w logach, ostrzegać, gdy są wykonywane zapytania DNS, czy ignorować wszystkie nazwy hostów w logach
fail2ban_logencoding logencoding auto
ascii
utf-8
itp.
auto Określa kodowanie plików logów obsługiwanych przez pułapkę. Domyślna wartość auto używa aktualnej lokalizacji systemu.
fail2ban_mode mode normal
ddos
extra
aggressive
normal Tryb filtra
fail2ban_filter filter nazwa filtra %(__name__)s[mode=%(mode)s] Filtr używany przez pułapkę.
Domyślnie pułapki mają nazwy odpowiadające ich nazwom filtrów
fail2ban_logtimezone logtimezone UTC
UTC+0200
GMT-0100
itp.
Wymusza strefę czasową dla linii logów, które jej nie mają.
Jeśli ta opcja nie jest określona, linie logów, dla których nie znaleziono wyraźnej strefy czasowej, są interpretowane przez fail2ban w jego własnej strefie czasowej.
fail2ban_banaction banaction iptables, iptables-new, iptables-multiport, shorewall, itp. iptables-multiport Domyślna akcja banowania. Służy do definiowania zmiennych action_*. Może być nadpisana globalnie lub na każdym poziomie w pliku jail.local
fail2ban_banaction_allports banaction_allports iptables, iptables-new, iptables-multiport, shorewall, itp. iptables-allports To samo, co banaction, ale dla niektórych "wszystkich portów" pułapek, takich jak "pam-generic" lub "recidive"
fail2ban_action action %(action_)s Wybierz domyślną akcję. Aby zmienić, po prostu nadpisz wartość 'action' z interpozycją do wybranej akcji (np. action_mw, action_mwl, itp.) lub wybierz akcję z /etc/fail2ban/action.d/ bez rozszerzenia .conf/.local.
fail2ban_failregex failregex Wyrażenie regularne Pythona regex (wyrażenie regularne Pythona), które zostanie dodane do failregexów filtra (zobacz failregex w sekcji PLIKI FILTRÓW dla szczegółów).
fail2ban_ignoreregex ignoreregex regex, który, jeśli linia logów pasuje, spowoduje, że Fail2Ban nie weźmie tej linii pod uwagę. Linia ta zostanie zignorowana, nawet jeśli pasuje do failregex pułapki lub któregokolwiek z jej filtrów.
fail2ban_maxmatches maxmatches [INT] maksymalna liczba dopasowanych linii logów, które pułapka przechowuje w pamięci na każde zgłoszenie. Domyślnie jest to ta sama wartość co maxretry pułapki (lub domyślna)

Zależności

Brak zależności

Obsługiwane Platformy

Ta rola powinna działać na dowolnej dystrybucji Linuksa opartej na Redhat lub Debian. Została przetestowana na następujących platformach:

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

Przykładowy Playbook

Poniższy playbook instaluje, włącza fail2ban i dodaje pułapkę ssh

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

Licencja

MIT

Informacje o autorze

Ta rola została stworzona przez sakibmoon w 2020 roku

O projekcie

An ansible role to install and manage Fail2ban

Zainstaluj
ansible-galaxy install sakibmoon.fail2ban
Licencja
mit
Pobrania
592
Właściciel