Недавно я заметил, что мой сервер сообщал в mail.log о множестве плохих аутентификаций для знакомых пользователей, и это не атака грубой силой. И я действительно не знаю причину таких проверок. У меня есть пользователи, использующие приложение Gmail, Почту на IOS, Почтовое приложение на 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: user=teste2@x.pt
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, вторая, я думаю, из почтового веб-сервиса, а третья из почтового приложения.
Я не могу понять, что является причиной этого, но поскольку у меня плохая авторизация от нескольких разных программных клиентов, я предполагаю, что что-то есть в моем постфиксе или в конфигурациях 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.
Проблема, с которой вы столкнулись, - это проблема Dovecot, а не postfix.
Чтобы вы могли понять, как Dovecote Authentication прочтите это, пожалуйста:
Вы должны понимать, что если пароли для вашего клиента сохраняются в базе данных в виде обычного текста, вы можете использовать cram-md5 и digest-md5 (auth_mechanisms = plain login cram-md5 digest-md5). Но если пароль в базе данных зашифрован; скажем, с одной из схем шифрования, упомянутых в документах Dovecote здесь:
http://wiki2.dovecot.org/Authentication/PasswordSchemes , то вы не можете использовать cram-md5, если пароль уже не сохранен в базе данных с хешем cram-md5. Это сбивает с толку, поэтому вы понимаете лучше, допустим, у меня есть учетная запись электронной почты, поэтому я вхожу в систему:
Почтовый клиент -----> пароль ---> Почтовый сервер проверит базу данных, и я могу увидеть 3 сценария:
1-й сценарий - пароль в базе данных сохраняется в виде обычного текста:
Почтовый сервер - (auth_mechanisms = plain login cram-md5 digest-md5) -> Схема вашего пароля (нет) ----> База данных cram-md5 (пароль) / или / digest-md5 (пароль) / или / простой пароль: Таким образом, пароль для входа в систему будет совпадать с сохраненным паролем базы данных в виде обычного текста.2-й сценарий, пароль в базе данных сохраняется с помощью SHA512-CRYPT:
EmailServer - auth_mechanisms (простой вход) - → Email-сервер - проверить пароль ---> default_pass_scheme = SHA512-CRYPT ---- SHA512-CRYPT (пароль) --- → база данных (УЖЕ SHA512-CRYPT пароль) - Журнал -в матчеСценарий 3: пароль базы данных зашифрован с помощью carm-md5:
Почтовый сервер ----> auth_mechanisms (простой логин cram-md5) - → Почтовый сервер --- проверьте пароль --- default_pass_scheme = cram-md5 -> cram-md5 (пароль) ----> база данных (пароль уже сохранен в 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, могут использоваться в постфиксе как smtpd_pw_server_security_options = plain в main.cf