Перейти до основного вмісту
Головна
нотатки кодера

Navigation

  • Головна
  • Про мене
  • Портфоліо
User account menu
  • Вхід

Рядок навіґації

  1. Головна

Fail2Ban: Постійний бан

від vetal, 5 липня, 2013
Категорія
Адміністрування
  • Щоб додати коментар, увійдіть або зареєструйтесь

Fail2ban це Python скрипт, котрий сканує ваші журнали для пошуку атак та створює правила iptable, що дозволяють ігнорувати трафік з цих IP-адрес. Це дуже зручно для забезпечення SSH захисту, а також захисту інших сервісів.

У нього є можливість назавжди заблокувати трафік з IP-адреси. Він отримує список атакуючих IP з логу /var/log/secure. Після ротації журналів і перезапуску процесу fail2ban IP більше не будуть заблокованими. Так що я оптимізував цей процес, щоб зберегти усі заблоковані IP-адреси в файл, щоб їх завжди можна було внести до черного списку.

Всі зміни були проведені в файлі конфігурації /etc/fail2ban/actions.d/iptables.conf. Це дозволяє завантажити в правила iptables список IP из файлу (/etc/fail2ban/ip.deny), під час перезапуску file2ban.

actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I INPUT -p <protocol> –dport <port> -j fail2ban-<name>
for IP in `cat /etc/fail2ban/ip.deny`; do iptables -I fail2ban-SSH 1 -s $IP -j DROP;done

Під час виявлення атакуючого IP варто зробити перевірку чи він не входить до списку дозволених адрес, що зберігаються в /etc/fail2ban/ip.allow. Після перевірки цього IPб в разі його відсутності, можна додавати до списку заблокованих, що міститься в  /etc/fail2ban/ip.deny:

actionban =  if [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.allow` ]; then iptables -I fail2ban-<name> 1 -s <ip> -j DROP;fi
if [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.deny` ] && [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.allow` ]; then echo “<ip>” >> /etc/fail2ban/ip.deny;fi

Наступні зміни обов'язкові тому, що функціональність видалення бану не було додано в fail2ban (до версії 0.9):

actionunban = if [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.deny` ]; then iptables -D fail2ban-<name> -s <ip> -j DROP;fi
if [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.deny` ] && [ -z `awk '$1 == "<ip>" { print "true" }' /etc/fail2ban/ip.allow` ]; then echo “<ip>” >> /etc/fail2ban/ip.allow;fi

Завжди можна відмінити блокування для певних IP-адрес, добавивши їх в файл ip.allow, але варто використовувати змінну "ignoreip" в jail.conf поки функціонал видалення бана не будет завершено.

security

Категорії

  • Історії
  • Адміністрування
  • Поради
  • Програмування

Останні матеріали

  • SCP з докачуванням
    1 рік 9 місяців ago
  • Таблиці IPFW
    1 рік 11 місяців ago
  • Як видалити порт FreeBSD з залежностями
    1 рік 11 місяців ago
  • screen — кращий друг адміна
    1 рік 11 місяців ago
  • gd-png: fatal libpng error
    1 рік 11 місяців ago
  • OpenCart облік прибутку
    1 рік 11 місяців ago
  • Fail2Ban: Постійний бан
    2 роки ago
  • Як отримати список змінених файлів між ревізіями
    7 років ago
  • Що робити якщо svn: database disk image is malformed
    8 років ago
  • Як виправити пошкоджений /etc/sudoers файл
    9 років 1 місяць ago

1980-2025 © All rights reserved. vetal.insky.one // нотатки кодера.