Недавно я заметил, что мой сервер сообщает в mail.log о большом количестве плохих аутентификаций для известных пользователей, и это не атака методом подбора. И я действительно не знаю причину таких аутентификаций. У меня есть пользователи, использующие приложение Gmail, Mail на IOS, Mail на MacOSX, ThunderBird и Outlooks, а также службу веб-почты для доступа к этому серверу. На этом сервере у меня есть самоподписанный сертификат, и он также работает как почтовый смарт-хост. Эта система — MacOSX 10.9.5.
Из всех платформ Outlook — единственный, у кого странное поведение при подключении к этому серверу. Постоянно показывает раздражающее всплывающее окно входа с учетными данными пользователя, откуда ни возьмись, и это происходит со всеми моими пользователями Outlook. Пользователи могут использовать Outlook для отправки и получения, и все, кажется, работает, за исключением этого всплывающего окна входа.
В моем mail.log есть следующая проблема с SAL DIGEST-MD5, SASL PLAIN и SASL CRAM-MD5, например, некоторые случайные образцы:
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: error: verify password: authentication failed: [email protected]
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: warning: hq2.pacsis.pt[x]: SASL PLAIN authentication failed
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: error: validate response: authentication failed for user=teste3 (method=CRAM-MD5)
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: warning: remote.x.pt[192.168.1.1]: SASL CRAM-MD5 authentication failed
Первая попытка была из Outlook, вторая, по-моему, из почтового веб-сервиса, а третья — из приложения «Почта».
Я не могу понять, что является причиной этого, но поскольку у меня есть плохие аутентификации от нескольких разных программных клиентов, я предполагаю, что что-то в моих конфигурациях postfix или dovecot.
Здесь вы можете проверить обе конфигурации:
Постфикс:http://pastebin.com/EU1iLjAP
Голубятня:http://pastebin.com/N9MfuvkD
Используемые порты:
587 SMTP-ЗАПУСКАЕТСЯ
993 IMAP-SSL
ОБНОВЛЕНИЕ 1:
Вот что происходит. Здесь вы можете видеть, что после неудачной аутентификации сначала происходит успешная аутентификация:
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: verify password: AUTH PLAIN: authentication succeeded for user=lcg
ОБНОВЛЕНИЕ2:
Похоже, мой сервер не разрешает DIGEST-MD5 и CRAM-MD5, а затем переключается на PLAIN для определенных пользователей. На localhost я могу использовать по крайней мере CRAM-MD5 без проблем.
решение1
Проблема, с которой вы столкнулись, это проблема Dovecot, а не postfix.
Чтобы вы могли понять, как работает аутентификация Dovecote, прочтите это:
Вы должны понимать, что если пароли для вашего клиента сохраняются в базе данных в виде обычного текста, то вы можете использовать cram-md5 и digest-md5 (auth_mechanisms = plain login cram-md5 digest-md5). Но если пароль в базе данных зашифрован; скажем, с помощью одной из схем шифрования, упомянутых в документах Dovecote здесь:
http://wiki2.dovecot.org/Authentication/PasswordSchemes, то вы не сможете использовать cram-md5, если только пароль уже не сохранен в базе данных с хешем cram-md5. Это сбивает с толку, так что вы лучше понимаете, предположим, у меня есть учетная запись электронной почты с вами, поэтому я вхожу в систему:
Email Client ----->password--->Email-server проверит базу данных, и есть 3 сценария, которые я могу видеть:
1-й сценарий - пароль в базе данных сохраняется в виде обычного текста:
Email-server--(auth_mechanisms = plain login cram-md5 digest-md5)-->Ваш пароль Scheme(none)---->База данных cram-md5(пароль)/или/ digest-md5(пароль)/или/обычный пароль: Таким образом, пароль для входа в систему будет соответствовать паролю, сохраненному в виде обычного текста в базе данных.2-й сценарий: пароль в базе данных сохраняется с помощью SHA512-CRYPT:
EmailServer-- auth_mechanisms(обычный вход)--→Email-server—проверка пароля--->default_pass_scheme = SHA512-CRYPT ----SHA512-CRYPT(пароль) ---→database(пароль УЖЕ SHA512-CRYPT) – Соответствие входа3-й сценарий. Пароль базы данных зашифрован с помощью carm-md5:
Email-server---->auth_mechanisms(обычный вход cram-md5)--→Email-server---check password---default_pass_scheme =cram-md5--> cram-md5(пароль)---->database(пароль уже сохранен в cram-md5 password) – Соответствие входа
Таким образом, вы либо шифруете, либо нет пароль базы данных и используете SSL/TLS и делаете auth_mechanisms="plain login" или:
Если вы не хотите использовать SSL, сделайте auth_mechanisms=cram-md5 и сохраните пароль в базе данных как cram-md5, если вы хотите использовать DIGEST-MD5 и CRAM-MD5, ваш пароль должен храниться в PLAIN_TEXT.
Таким образом, используя только CRAM-MD5, пароль в базе данных может быть CRAM-MD5 или открытым текстом или используя DIGEST-MD5 и CRAM-MD5: пароль в базе данных должен храниться только открытым текстом.
По следующей ссылке вы найдете несколько скриптов, которые помогут вам зашифровать ваш пароль в базе данных: http://wiki2.dovecot.org/HowTo/ConvertPasswordSchemes
Если вы хотите сохранить пароль в базе данных как DIGEST-MD5, вам необходимо прочитать эту страницу:http://wiki2.dovecot.org/Authentication/Mechanisms/DigestMD5
Также, как вы упомянули в нашем чате, значения auth_mechanisms, используемые в Dovecote, можно использовать в postfix как smtpd_pw_server_security_options=plain в main.cf