Назад | Перейти на главную страницу

Блокировать атаки методом перебора на exim2

Внезапно некоторые люди или компьютеры пытаются войти на мой сервер linux directadmin.

В последние дни я получаю много сообщений об атаках методом перебора для Exim2 в Direct Admin.

Я уже установил Fail2Ban и Block_IP.SH находится на сервере.

Таким образом, если пользователю не удается войти в систему 15 раз, IP-адрес будет заблокирован.

Как я могу остановить продолжение атак, чтобы компьютеры больше не пытались войти в систему?

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

По умолчанию fail2ban пропустит это условие, но блокируется после 3 попыток за 10 минут. Вы можете создать jail.local файл для настройки количества сбоев, необходимых для блокировки fail2ban или увеличьте время бана. fail2ban-client также позволяет настраивать конфигурацию во время работы сервера. Возможно, вам потребуется создать exim.local файл в filter.d чтобы соответствовать создаваемым строкам. Я включил содержимое моего exim.local. Ты можешь использовать fail2ban-regex для проверки регулярного выражения (вам нужно будет заменить python, включенный в регулярное выражение).

[Definition]

host_info = H=([\w.-]+ )?(\(\S+\) )?\[<HOST>\](:\d+)? ?(I=\[\S+\]:\d+ )?(U=\S+ )?(P=e?smtp )?

failregex = ^%(pid)s %(host_info)s [^:]+: Sender host address is listed in zen.spamhaus.org
        ^%(pid)s %(host_info)s sender verify fail for <\S+>: (?:Unknown user|Unrouteable address|all relevant MX records point to non-existent hosts)\s*$
        ^%(pid)s (plain|login) authenticator failed for (\S+ )?\(\S+\) \[<HOST>\]: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time\(s\))?\s*$
        ^%(pid)s %(host_info)s F=(<>|[^@]+@\S+) rejected RCPT [^@]+@\S+: (relay not permitted|Sender verify failed|Unknown user)\s*$
        ^%(pid)s SMTP protocol synchronization error \([^)]*\): rejected (connection from|"\S+") %(host_info)s(next )?input=".*"\s*$
        ^%(pid)s SMTP call from \S+ \[<HOST>\](:\d+)? (I=\[\S+\]:\d+ )?dropped: too many nonmail commands \(last was "\S+"\)\s*$
        \[<HOST>\]: 535 Incorrect authentication data
        ^%(pid)s %(host_info)s Warning: smtp used a hostname$
        ^%(pid)s no MAIL in SMTP connection from (\([^)]+\) )?\[<HOST>\] D=\d+(m\d+)?s( C=.*)?$
        ^%(pid)s SMTP protocol synchronization error \(input sent without waiting for greeting\): rejected connection from %(host_info)s

ignoreregex =