Мониторинг перебора паролей на почту

Мониторинг перебора паролей на почтуМониторинг перебора паролей на почту позволяет оценить, сколько недоброжелателей пытается подбирать пароли к вашей почте. Рассмотрим на примере почтового сервера dovecot как можно собирать статистику по тому, сколько попыток перебора было сделано с тех или иных адресов. После сбора статистики с полученными адресами можно сделать всё, что посчитаете нужным. Например, заблокировать трафик с этих адресов при помощи iptables. Или заняться исследованиями атакующих.

Для работы с информацией будем использовать bash-скрипты, чтобы фильтровать информацию, и планировщик cron, чтобы выполнять анализ по расписанию и высылать результат вам на почту. Результат будем сохранять в отдельном файле на каждый день и в одном файле будем собирать всю информацию. Саму информацию представим в виде двух значений — количество попыток и IP-адрес. Таким образом мы можем посмотреть заодно, правильно ли работает fail2ban и сколько попыток залогиниться на почтовый сервер проходит за сутки.

Сбор статистической информации

Для получения информации будем использовать логи почтового сервера, в которых регистрируются попытки подключения к почтовому серверу. Вот что нам нужно. Из лога аутентификации будем отфильтровывать ошибки аутентификации и считать для IP-адресов, при обращении с которых происходили ошибки, количество попыток. После размещения скрипта в cron’е вам на почту будет приходить каждый день письмо со статистикой атак. Рассмотрим аутентификацию почтового сервера dovecot, но вы можете поправить скрипт под свои нужды.

Мониторинг перебора паролей

Напишем скрипт на bash, который будет фильтровать логи.

Можно добавить также автоматическое удаление файла лога, если он пустой. Кроме того, можно здесь же удалять адреса, которые принадлежат вам. Ежедневный лог будет выглядеть так:

Общий лог будет выглядеть как обычный список IP-адресов:

После написания скрипта необходимо его записать в крон, чтобы он выполнялся по расписанию. Когда будут неудачные попытки аутентификации, вам будет приходить письмо со списком и количеством попыток, если их не будет, то письмо тоже не будет приходить. Добавим для этого в файл /etc/crontab следующую строчку:

Блокировка перебора при помощи iptables

Для блокировки при помощи iptables можно написать еще один скрипт, которым можно блокировать адреса из ежедневного лога:

 

Мониторинг перебора паролей на почту: 2 комментария

  1. #kstn

    cat $file | { grep, sed, awk, ...}
    плохая идиома, не оптимально — лишний cat, не рекомендуется

    cat $IP_BLACKLIST | awk '{printf $2"\n"}' >> /root/scripts/blacklist-full.lst
    awk '{print $2}' $IP_BLACKLIST >> /root/scripts/blacklist-full.lst
    ( printf $2″\n» == print $2)

    и
    IPLIST=$(cat $1 | awk '{printf $2" "}')
    IPLIST=$(awk '{print $2}' $1)
    или даже
    for IP in $(awk '{print $2}' $1)
    Но с IPLIST читабельнее

    1. mnorin Автор записи

      Согласен, поправил. Тут не то чтобы идиома плохая, тут с внутренней стороны различия. Во-первых, да, лишний процесс в виде cat, во-вторых, размер буфера пайпа ограничен, на больших объемах могут накладки случаться. И номера дескрипторов разные, если изнутри программы смотреть.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *