debian:fail2ban

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
debian:fail2ban [14/09/2023 11:27] Methoddebian:fail2ban [06/12/2024 22:34] (поточний) – [SSH] Method
Рядок 1: Рядок 1:
 ====== Fail2Ban ====== ====== Fail2Ban ======
  
 +Встановимо fail2ban
   apt install fail2ban -y   apt install fail2ban -y
-  cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local + 
-  nano /etc/fail2ban/jail.local +Збережемо оригінальні налашування (на всякий випадок) 
-  + 
 +  cp -a /etc/fail2ban/ /etc/fail2ban.orig
 + 
 +Додамо виправлення до '/etc/fail2ban/jail.local' для роботи з nftables 
 <code bash> <code bash>
 +cat <<EOF > /etc/fail2ban/jail.local
 [DEFAULT] [DEFAULT]
 # Destination email for action that send you an email # Destination email for action that send you an email
Рядок 13: Рядок 19:
 sender    = fail2ban@mydomain.example sender    = fail2ban@mydomain.example
  
-Default action. Will block user and send you an email with whois content and log lines. +Specify chain where jumps would need to be added in ban-actions expecting parameter chain 
-##action    %(action_mwl)s +chain     input
-action    = %(action_)s+
  
 # configure nftables # configure nftables
 banaction = nftables-multiport banaction = nftables-multiport
 banaction_allports = nftables-allports banaction_allports = nftables-allports
-chain     input+ 
 +# 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> </code>
 +
 +Додамо виправлення до /etc/fail2ban/fail2ban.local
  
 <code bash> <code bash>
-tee /etc/fail2ban/fail2ban.local<<EOF+cat <<EOF > /etc/fail2ban/fail2ban.local
 [Definition] [Definition]
 allowipv6 = auto allowipv6 = auto
Рядок 30: Рядок 41:
 EOF EOF
 </code> </code>
-  + 
 +  systemctl enable fail2ban
   fail2ban-client reload   fail2ban-client reload
-  fail2ban-client status  sshd +  fail2ban-client status
-  systemctl enable fail2ban +
- +
  
-  nano /etc/nftables/fail2ban.conf+Створюємо каталог для конфігурації fail2ban для файрвола 
 +  mkdir -p /etc/nftables/
  
 <code bash> <code bash>
 +cat <<EOF > /etc/nftables/fail2ban.conf
 #!/usr/sbin/nft -f #!/usr/sbin/nft -f
  
 # Use ip as fail2ban doesn't support ipv6 yet # Use ip as fail2ban doesn't support ipv6 yet
-table ip fail2ban {+table inet fail2ban {
         chain input {         chain input {
                 # Assign a high priority to reject as fast as possible and avoid more complex rule evaluation                 # Assign a high priority to reject as fast as possible and avoid more complex rule evaluation
Рядок 49: Рядок 60:
         }         }
 } }
 +EOF
 </code> </code>
  
-Then add line include "/etc/nftables/fail2ban.conf" in /etc/nftables.conf.+Додамо створений файл в оновну конфігурацію файрвола 
 +  echo "include \"/etc/nftables/fail2ban.conf\"" >> /etc/nftables.conf
  
-Finally activate your rule in nftables+Також підвантажимо його в роботу
   nft -f /etc/nftables/fail2ban.conf   nft -f /etc/nftables/fail2ban.conf
  
-<code bash> +===== Налаштування Fail2Ban для запуску/зупинки за допомогою nftables =====
-</code> +
- +
- +
-<code bash> +
-</code> +
- +
- +
-<code bash> +
-</code> +
- +
- +
- +
-====== Налаштування Fail2Ban для запуску/зупинки за допомогою nftables ======+
  
 Ми намагаємося досягти наступного: Ми намагаємося досягти наступного:
- 
   * під час завантаження сервер запускає спочатку nftables.service, а потім fail2ban.service;   * під час завантаження сервер запускає спочатку nftables.service, а потім fail2ban.service;
   * якщо ми запускаємо nftables.service, він також повинен запускати fail2ban.service;   * якщо ми запускаємо nftables.service, він також повинен запускати fail2ban.service;
Рядок 83: Рядок 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 спочатку встановлено як сервісний блок:
Рядок 99: Рядок 101:
   # systemctl daemon-reload   # systemctl daemon-reload
  
-===== Як саме це працює? =====+==== Як саме це працює? ====
  
 У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри: У нашому файлі заміни або повному файлі конфігурації (див. нижче) ми включаємо такі параметри:
Рядок 111: Рядок 113:
 WantedBy=multi-user.target nftables.service "змушує цю службу запускатися, коли запускається будь-яка з перелічених служб." WantedBy=multi-user.target nftables.service "змушує цю службу запускатися, коли запускається будь-яка з перелічених служб."
 </code> </code>
-Як бачите, нам потрібно встановити Requires , PartOf і WantedBy , щоб отримати бажану поведінку.+Як бачите, нам потрібно встановити 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> 
 + 
  
  • debian/fail2ban.1694690847.txt.gz
  • Востаннє змінено: 14/09/2023 11:27
  • повз Method