За последний день мы обнаружили, что кто-то из Китая использует наш сервер для рассылки спама. Весьма вероятно, что он использует слабое имя пользователя / пароль для доступа к нашему SMTP-серверу, но проблема в том, что он, похоже, использует кодировку base64, чтобы мы не могли узнать, какую учетную запись он использует. Вот пример из почтового журнала:
May 5 05:52:15 195396-app3 smtp_auth: SMTP connect from (null)@193.14.55.59.broad.gz.jx.dynamic.163data.com.cn [59.55.14.193]
May 5 05:52:15 195396-app3 smtp_auth: smtp_auth: SMTP user info : logged in from (null)@193.14.55.59.broad.gz.jx.dynamic.163data.com.cn [59.55.14.193]
Есть ли способ определить, какую учетную запись он использует?
На вашем месте я бы посмотрел журналы SASL (если это то, что вы используете) и увидел, какие пользователи входят в систему одновременно. Если у вас нет журналов SASL, вы всегда можете посмотреть журналы поиска MySQL / LDAP примерно того времени.
Учитывая, что он входит в систему как null, я бы проверил свою базу данных, чтобы убедиться, что у меня нет искаженных записей или чего-то в этом роде.
Кодировка Base64 является нормой для аутентификации SMTP, так что это нормально. Есть дайджест MD5, но это не поможет, если у него есть «действительные» учетные данные.
Временным решением было бы заблокировать либо его IP-адрес, либо весь IP-блок.
Вы также можете попробовать увеличить подробность постфикса, начав его с -v
аргумент (Google говорит, что он должен быть в master.cf, я не эксперт по постфиксам).
/etc/postfix/master.cf:
smtp inet n - n - - smtpd -v
Если это не сработает, всегда есть ядерный вариант, tcpdump / wirehark.