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

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

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

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

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

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

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

введите описание изображения здесь

решение1

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

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

[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 =

Связанный контент