Для защиты нашего FTP создаем в папке /etc/fail2ban/filter.d/ файл например с именем pureftpd.conf и пишем туда:

# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: RUSUA
#
# $Revision: 3$
#

[Definition]

# Error message specified in multiple languages
__errmsg = (?:Authentication failed for user)

#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
                  pure-ftpd: \(\?\:?@<HOST>\) \[WARNING\] (?:Authentication failed for user) \[.+\]\s*$

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Сохраняем и добавляем(или активируем) в /etc/fail2ban/jail.conf правило:

[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/messages
maxretry = 3

После перезапуска, fail2ban будет успешно отлавливать и банить всех китайцев и не только)

Важное замечание - у вас должна быть включена опция отображения ip адресов атакующих,без конвертации в имена,иначе fail2ban не сможет их банить. Для этого создайте файл DontResolve со строчкой внутри yes в /etc/pure-ftpd/conf/

Продолжаю свою серию ебли с допиливанием скриптов по-умолчанию в Fail2Ban.В этот раз столкнулся таки с тем,что фейл2бан не видит безуспешные попытки авторизации в Апаче при стандартной авторизации.Я не говорю уже что если у вас Digest авторизация.Почему то в стандартном скрипте допущена ошибка,и потому он не работает.Вот его пример:

# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision: 728 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = apache-common.conf

[Definition]

# Option: failregex
# Notes.: regex to match the password failure messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = ^%(_apache_error_client)s user .* (authentication failure|not found|password mismatch)

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

More »

Так сложилось,что меня конкретно зебали тонны сообщений в логах о превышенных лимитах одновременных подключений к почтовику ( Maximum connection limit reached). Да и всем понятно что с левых адресов с такой кучей коннектов явно идет перебор паролей к почте. Так как я юзаю fail2ban для таких поверхностных защит от брутов,то я написал такой вот доп.конфиг для fail2ban на основе имеющихся:

More »

%d такие блоггеры, как: