Постоянный блок IP после n повторения с помощью fail2ban

Вы, вероятно, имеете, это врезалось в Ваш мозг навсегда в этой точке, но на пользу тем, кто приезжает после, Вы не должны Просматривать Интернет с Вашего Сервера

38
задан 7 August 2012 в 14:59
6 ответов

Пока у вас нет каких-либо зависимых служб, таких как кластеры или SQL-сервер, вы, вероятно, в порядке. Очевидно, что любой простой повлияет на доступ к ресурсам, но то же самое верно и для физического блока. Похоже, у вас все покрыто и учтено.

Просто к сведению, но вы также можете бесплатно скачать VisualSVN, если вам нужен SVN в Windows для экономии ресурсов.

не было функции по умолчанию или настройки в fail2ban для достижения этого. Но начиная с грядущей версии 0.11 время бана рассчитывается автоматически и экспоненциально увеличивается с каждым новым нарушением, что в долгосрочной перспективе будет означать более или менее постоянный блок. подход, вероятно, заключается в настройке fail2ban для мониторинга собственного файла журнала . Это двухэтапный процесс ...

Шаг 1

Нам может потребоваться создать фильтр для проверки наличия BAN в файле журнала (файл журнала fail2ban )

Шаг 2

Нам нужно определить тюрьму , как показано ниже ...

[fail2ban]
enabled = true
filter = fail2ban
action = iptables-allports[name=fail2ban]
logpath = /path/to/fail2ban.log
# findtime: 1 day
findtime = 86400
# bantime: 1 year
bantime = 31536000

Технически это не постоянный блок , а только блоки на год (что мы тоже можем увеличить).

В любом случае, на ваш вопрос (можно ли этого достичь только с помощью fail2ban или мне нужно написать свой собственный скрипт для этого?) ... написание собственного скрипта может сработать. Я бы порекомендовал настроить сценарий для извлечения часто запрещенных IP-адресов и затем поместить их в /etc/hosts.deny .

32
ответ дан 28 November 2019 в 19:47

Перейдите к энергии, открытому/etc/fail2ban/jail.conf

и просто измените после fail2ban service restart:

# "bantime" is the number of seconds that a host is banned.
bantime  = ***1296000***

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = ***60000***

# "maxretry" is the number of failures before a host get banned.
maxretry = ***3***
0
ответ дан 28 November 2019 в 19:47

Я считаю, что если вы поместите bantime = -1 в этот раздел конфигурации, это будет постоянный блок.

30
ответ дан 28 November 2019 в 19:47

Чтобы расширить ответ Чина, это довольно просто . Просто отредактируйте 2 параметра в /etc/fail2ban/jail.local в соответствии с вашими предпочтениями.

 # ban time in seconds. Use -1 for forever. Example is 1 week.
 bantime  = 604800
 # number of failures before banning
 maxretry = 5
6
ответ дан 28 November 2019 в 19:47

Фил Хаген написал отличная статья на эту тему. " Постоянно запрещать повторных нарушителей с помощью fail2ban ".

Его предложение такое же, как и у Поти, но содержит пошаговое руководство.

Это включало:

  • отдельный список запретов по тюрьме (ip.blocklist.ssh, ip.blocklist.xxx)
  • списки запретов автоматически загружается при перезапуске службы (главное преимущество этого метода imho)
  • уведомление по электронной почте, если задействован ретранслятор.
13
ответ дан 28 November 2019 в 19:47

fail2ban уже имеет тюрьму для запрета рецидивов. Если вы посмотрите /etc/fail2ban/jail.conf, вы найдете :

# Jail for more extended banning of persistent abusers
# !!! WARNING !!!
#   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
[recidive]

enabled  = false
filter   = recidive
logpath  = /var/log/fail2ban.log
action   = iptables-allports[name=recidive]
           sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
bantime  = 604800  ; 1 week
findtime = 86400   ; 1 day
maxretry = 5

Как добавить в jail.local ?

[recidive]
enabled  = true
bantime  = 31536000  ; 1 year
findtime = 18144000  ; 1 month
maxretry = 2

Для проверки уровня журнала можно сделать : fail2ban-клиент получает уровень журнала.

  • set loglevel MYLEVEL : sets logging level to MYLEVEL. Уровни: CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG
  • More command on the wiki.

Со старой версией fail2ban вы можете получить эту ошибку.

.
4
ответ дан 28 November 2019 в 19:47

Теги

Похожие вопросы