nickjj.fail2ban

Czym jest ansible-fail2ban? Status budowy

To rola ansible służąca do instalacji i konfiguracji fail2ban.

Jaki problem rozwiązuje i dlaczego jest przydatna?

Bezpieczeństwo jest ważne, a fail2ban to doskonałe narzędzie do wzmocnienia zabezpieczeń serwera przy minimalnej lub zerowej konfiguracji.

Zmienne roli

Poniżej znajduje się lista domyślnych wartości wraz z opisem ich funkcji.

# Na jakim poziomie powinny być zapisywane logi?
# 1 = BŁĄD, 2 = OSTRZEŻENIE, 3 = INFO, 4 = DEBUG
fail2ban_loglevel: 3

# Gdzie powinny być wysyłane logi?
# SYSLOG, STDERR, STDOUT, plik
fail2ban_logtarget: /var/log/fail2ban.log

# Gdzie powinien być tworzony socket?
fail2ban_socket: /var/run/fail2ban/fail2ban.sock

# Który adres IP, znak CIDR lub host DNS powinny być ignorowane?
fail2ban_ignoreip: 127.0.0.1/8

# Jak długo w sekundach ban powinien trwać?
fail2ban_bantime: 600

# Ile razy mogą spróbować przed zbanowaniem?
fail2ban_maxretry: 6

# Jak powinny być wykrywane zmiany w plikach?
# gamin, polling, auto
fail2ban_backend: polling

# Gdzie powinny być wysyłane raporty e-mail?
fail2ban_destemail: root@localhost

# Jak powinno być stosowane zbanowanie?
# iptables, iptables-new, iptables-multiport, shorewall, itd.
fail2ban_banaction: iptables-multiport

# Jaką akcję e-mail powinno używać?
# sendmail lub mail
fail2ban_mta: sendmail

# Jaki powinien być domyślny protokół?
fail2ban_protocol: tcp

# Do którego łańcucha powinny być dodawane JUMP-y w iptables-*?
fail2ban_chain: INPUT

# Jaka powinna być domyślna akcja banowania?
# action_, action_mw, action_mwl
fail2ban_action: action_

# Jakie usługi powinny być monitorowane przez fail2ban?
# Możesz zdefiniować fail2ban_services jako pusty ciąg, aby nie monitorować niczego.
# Możesz zdefiniować wiele usług jako standardową listę YAML.
fail2ban_services:
    # Nazwa usługi
    # WYMAGANE.
  - name: ssh

    # Czy jest włączona?
    # OPCJONALNE: Domyślnie "true" (musi być ciągiem).
    enabled: "true"

    # Z którego portu korzysta usługa?
    # Oddziel wiele portów przecinkiem, bez spacji.
    # WYMAGANE.
    port: ssh

    # Jakiego protokołu używa usługa?
    # OPCJONALNE: Domyślnie protokół podany powyżej.
    protocol: tcp

    # Jakiego filtra powinna użyć?
    # WYMAGANE.
    filter: sshd

    # Jaka ścieżka loga powinna być monitorowana?
    # WYMAGANE.
    logpath: /var/log/auth.log

    # Ile razy mogą spróbować przed zbanowaniem?
    # OPCJONALNE: Domyślnie maxretry podane powyżej.
    maxretry: 6

    # Jaka powinna być domyślna akcja banowania?
    # OPCJONALNE: Domyślnie akcja podana powyżej.
    action: action_

    # Jak powinno być stosowane zbanowanie?
    # OPCJONALNE: Domyślnie banaction podane powyżej.
    banaction: iptables-multiport

# Czas w sekundach na caching apt-update.
apt_cache_valid_time: 86400

Przykład playbooka

Dla tego przykładu załóżmy, że masz grupę o nazwie app i typowy plik site.yml.

Aby użyć tej roli, edytuj swój plik site.yml, aby wyglądał mniej więcej tak:

---
- name: zapewnij, że serwery aplikacji  skonfigurowane
- hosts: app

  roles:
    - { role: nickjj.fail2ban, sudo: true, tags: fail2ban }

Powiedzmy, że chcesz edytować kilka wartości, możesz to zrobić, otwierając lub tworząc group_vars/app.yml, który znajduje się w katalogu relatywnym do twojego katalogu inventory, a następnie sprawiając, aby wyglądał mniej więcej tak:

---
fail2ban_services:
  - name: ssh
    port: ssh
    filter: sshd
    logpath: /var/log/auth.log
  - name: postfix
    port: smtp,ssmtp
    filter: postfix
    logpath: /var/log/mail.log

Instalacja

$ ansible-galaxy install nickjj.fail2ban

Wymagania

Testowano na Ubuntu 12.04 LTS, ale powinno działać na podobnych wersjach.

Ansible galaxy

Możesz go znaleźć na oficjalnej ansible galaxy, jeśli chcesz go ocenić.

Licencja

MIT

O projekcie

Install and configure fail2ban.

Zainstaluj
ansible-galaxy install nickjj.fail2ban
Licencja
mit
Pobrania
50.7k
Właściciel
Currently a self employed freelance developer & teacher. I mainly work with Flask, Rails, Bash, Docker, Kubernetes, Ansible & Terraform. Also a @docker captain.