debian:fail2ban

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
debian:fail2ban [07/10/2022 23:08] – [Як саме це працює?] Methoddebian:fail2ban [06/12/2024 22:34] (поточний) – [SSH] Method
Рядок 1: Рядок 1:
 ====== Fail2Ban ====== ====== Fail2Ban ======
  
 +Встановимо fail2ban
   apt install fail2ban -y   apt install fail2ban -y
-  sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local + 
-  sudo nano /etc/fail2ban/jail.local +Збережемо оригінальні налашування (на всякий випадок) 
-  sudo fail2ban-client reload + 
-  sudo fail2ban-client status  sshd+  cp -a /etc/fail2ban/ /etc/fail2ban.orig/ 
 + 
 +Додамо виправлення до '/etc/fail2ban/jail.local' для роботи з nftables 
 + 
 +<code bash> 
 +cat <<EOF > /etc/fail2ban/jail.local 
 +[DEFAULT] 
 +# Destination email for action that send you an email 
 +destemail = fail2ban@mydomain.example 
 + 
 +# Sender email. Warning: not all actions take this into account. Make sure to test if you rely on this 
 +sender    = fail2ban@mydomain.example 
 + 
 +# Specify chain where jumps would need to be added in ban-actions expecting parameter chain 
 +chain     = input 
 + 
 +# configure nftables 
 +banaction = nftables-multiport 
 +banaction_allports = nftables-allports 
 + 
 +# Default action. Will block user and send you an email with whois content and log lines. 
 +## action    = %(action_mwl)s 
 +action    = %(action_)s 
 +EOF 
 +</code> 
 + 
 +Додамо виправлення до /etc/fail2ban/fail2ban.local 
 + 
 +<code bash> 
 +cat <<EOF > /etc/fail2ban/fail2ban.local 
 +[Definition] 
 +allowipv6 = auto 
 +#allowipv6 = yes 
 +EOF 
 +</code> 
   systemctl enable fail2ban   systemctl enable fail2ban
 +  fail2ban-client reload
 +  fail2ban-client status
  
-  banaction = nftables-multiport +Створюємо каталог для конфігурації fail2ban для файрвола 
-  banaction_allports = nftables-allports+  mkdir -p /etc/nftables/
  
 +<code bash>
 +cat <<EOF > /etc/nftables/fail2ban.conf
 +#!/usr/sbin/nft -f
  
-====== Налаштування Fail2Ban для запуску/зупинки за допомогою nftables ======+# Use ip as fail2ban doesn't support ipv6 yet 
 +table inet fail2ban { 
 +        chain input { 
 +                # Assign a high priority to reject as fast as possible and avoid more complex rule evaluation 
 +                type filter hook input priority 100; 
 +        } 
 +
 +EOF 
 +</code>
  
-Ми намагаємося досягти наступного:+Додамо створений файл в оновну конфігурацію файрвола 
 +  echo "include \"/etc/nftables/fail2ban.conf\"" >> /etc/nftables.conf
  
 +Також підвантажимо його в роботу
 +  nft -f /etc/nftables/fail2ban.conf
 +
 +===== Налаштування Fail2Ban для запуску/зупинки за допомогою nftables =====
 +
 +Ми намагаємося досягти наступного:
   * під час завантаження сервер запускає спочатку nftables.service, а потім fail2ban.service;   * під час завантаження сервер запускає спочатку nftables.service, а потім fail2ban.service;
   * якщо ми запускаємо nftables.service, він також повинен запускати fail2ban.service;   * якщо ми запускаємо nftables.service, він також повинен запускати fail2ban.service;
Рядок 26: Рядок 82:
  
   mkdir -p /etc/systemd/system/fail2ban.service.d/   mkdir -p /etc/systemd/system/fail2ban.service.d/
-  nano /etc/systemd/system/fail2ban.service.d/override.conf 
  
-  [Unit] +<code bash> 
-  Requires=nftables.service +cat <<EOF >  /etc/systemd/system/fail2ban.service.d/override.conf 
-  PartOf=nftables.service +[Unit] 
-   +Requires=nftables.service 
-  [Install] +PartOf=nftables.service 
-  WantedBy=multi-user.target nftables.service+ 
 +[Install] 
 +WantedBy=multi-user.target nftables.service 
 +EOF 
 +</code>
  
 Оскільки ми змінили розділ [Install], нам потрібно повторно ввімкнути відповідну службу, щоб створити відповідні символічні посилання. Ми також переконаємося, що nftables спочатку встановлено як сервісний блок: Оскільки ми змінили розділ [Install], нам потрібно повторно ввімкнути відповідну службу, щоб створити відповідні символічні посилання. Ми також переконаємося, що nftables спочатку встановлено як сервісний блок:
Рядок 42: Рядок 101:
   # systemctl daemon-reload   # systemctl daemon-reload
  
-===== Як саме це працює? =====+==== Як саме це працює? ====
  
 У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри: У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри:
  
-  [Unit] +<code bash> 
-  Requires=nftables.service +[Unit] 
-  запуск цієї служби спочатку запустить nftables.service. +Requires=nftables.service "запуск цієї служби спочатку запустить nftables.service." 
-  PartOf=nftables.service +PartOf=nftables.service "змушує цю службу зупинятися або перезапускатися (але не запускатися) за допомогою nftables.service." 
-  змушує цю службу зупинятися або перезапускатися (але не запускатися) за допомогою nftables.service. + 
-   +[Install] 
-  [Install] +WantedBy=multi-user.target nftables.service "змушує цю службу запускатися, коли запускається будь-яка з перелічених служб.
-  WantedBy=multi-user.target nftables.service +</code> 
-  змушує цю службу запускатися, коли запускається будь-яка з перелічених служб.+Як бачите, нам потрібно встановити Requires, PartOf і WantedBy, щоб отримати бажану поведінку. 
 + 
 +===== Блокувальники ===== 
 + 
 +Після додавання або видалення блокувальниуів необхідно перезавантажити fail2ban 
 + 
 +  fail2ban-client reload 
 + 
 +Також можна переглянути статус fail2ban 
 + 
 +  fail2ban-client status  
 + 
 +==== Рецедив ==== 
 + 
 +Повторно блокує по всіх портах іп адреси які раніше вже блокувались по іншим блокувальникам 
 + 
 +<code bash> 
 +cat <<EOF > /etc/fail2ban/jail.d/recidive.local 
 +# Jail for more extended banning of persistent abusers 
 +# !!! WARNINGS !!! 
 +# 1. Make sure that your loglevel specified in fail2ban.conf/.local 
 +#    is not at DEBUG level -- which might then cause fail2ban to fall into 
 +#    an infinite loop constantly feeding itself with non-informative lines 
 +# 2. If you increase bantime, you must increase value of dbpurgeage 
 +#    to maintain entries for failed logins for sufficient amount of time. 
 +#    The default is defined in fail2ban.conf and you can override it in fail2ban.local 
 +
 +# Manages the fail2ban history for hosts repeatedly banned by Fail2Ban and bans them 
 +# according to the settings defined 
 +
 + 
 +[recidive] 
 +enabled   = true 
 +logpath   = /var/log/fail2ban.log 
 +banaction = nftables-allports 
 +backend   = systemd 
 +bantime   = 9w 
 +findtime  = 3d 
 +maxretry  = 3 
 +protocol  = 0-255 
 +EOF 
 +</code> 
 + 
 +==== SSH ==== 
 + 
 +Вмикаємо блокувальник ssh. Оскільки всі значення стандартні то файл простий 
 + 
 +<code bash> 
 +cat <<EOF > /etc/fail2ban/jail.d/sshd.local 
 +[sshd] 
 +enabled   = true 
 +backend   = systemd 
 +EOF 
 +</code> 
  
-Як бачите, нам потрібно встановити Requires , PartOf і WantedBy , щоб отримати бажану поведінку. 
  
  • debian/fail2ban.1665184104.txt.gz
  • Востаннє змінено: 07/10/2022 23:08
  • повз Method