Внезапно какие-то люди или компьютеры пытаются войти на мой сервер 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 =