Назад | Перейти на главную страницу

Postfix, saslauthd, mysql, проблемы аутентификации smtp

Пытаюсь пройти аутентификацию на моем почтовом сервере (ubuntu 10.04), но у меня проблемы. У меня есть сервер с постфиксом для настройки smtp, сервер imap с настройкой курьера. Моя постфиксная аутентификация использует cyrus (я действительно не пробовал dovecot) saslauth. Имя пользователя и пароль хранятся в базе данных MySql. Вход с помощью imap-ssl работает на удаленном клиенте (thunderbird), и я могу читать свою почту. Я не могу заставить работать SMTP и сосредоточил проблему на saslauth.

Тестирование с

testsaslauthd -u 'username' -p 'passowrd' -s smtp 

возвращается

connect() : Permission denied

пароль в базе данных зашифрован, и я предполагаю, что этот testsaslauthd возьмет простой текстовый пароль и зашифрует его.

Ищу кого-нибудь, кто поможет мне заставить это работать. Я новичок в почтовом сервере, и у меня никогда не было ни одного полностью работающего. Спасибо. Спросите меня, какие файлы журналов мне следует просмотреть / post, какие тесты запустить, разрешения для проверки.

Редактировать: (26.03.2012) для получения дополнительной информации я не могу заставить работать почтовый клиент, они выдают такие ошибки, как

The message could not be sent because connecting to SMTP server <mydomain.com> failed. The server may be unavailable or is refusing SMTP connections

У меня есть соответствующие порты, открытые на iptables, но я предполагаю, что это внутренняя проблема из-за теста, который я провел выше. Я также бегал telnet к mail.mydomain.com 25 и беги ehlo localhost и получить это взамен

250-mail.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

РЕДАКТИРОВАТЬ: (28 марта 2012 г., 14:45)

~$ postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mime_header_checks = regexp:/etc/postfix/mime_header_checks
mydestination = mail.mydomain.co, localhost, localhost.localdomain
myhostname = mail.mydomain.co
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
readme_directory = no
recipient_delimiter = +
relayhost =
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-forwards.cf, mysql:/etc/postfix/mysql-email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-mailboxes.cf
virtual_uid_maps = static:5000

РЕДАКТИРОВАТЬ: решено (29 марта 2012 г.) Спасибо @AveryPane и @ malloc4k за то, что они указали мне правильное направление. Мне нужно было сделать несколько вещей, чтобы убедиться, что мои записи MX находятся в надлежащем порядке. Я использовал инструмент intodns.com, а также http://www.mxtoolbox.com для проверки, принимает ли мой сервер соединения. Затем, используя tail -f, я просмотрел свои журналы на предмет каких-либо ошибок, был взволнован, увидев, что на самом деле что-то было зарегистрировано, как только я исправил свои записи DNS, и настроил некоторые файлы конфигурации.

Две вещи, о которых я не знал, одна из которых - некоторые интернет-провайдеры блокируют порт 25, что могло быть в моем случае, почему thunderbird не видел мой сервер на порту 25. Второй в файле /etc/postfix/master.cf есть настройки о том, какие порты разрешить прослушивать postfix. Порт 25 по умолчанию - это строка

smtp      inet  n       -       -       -       -       smtpd

который в основном говорит привет im postfix, я использую порт 25. Если вы хотите запустить postfix на другом порту, 587, популярном для почтовых серверов, добавьте эту строку рядом с ним в master.cf

587      inet  n       -       -       -       -       smtpd

запустить перезапуск /etc/init.d/postfix restart и вы должны быть настроены. Это было для меня решением.

Ищу кого-нибудь, кто поможет мне заставить это работать. Я новичок в почтовом сервере, и у меня никогда не было ни одного полностью работающего.

Добро пожаловать в ад электронной почты, друг мой. Вы в хорошей компании. Во-первых, если вы действительно серьезно относитесь к работе с почтовым сервером, вам стоит изучить его. Электронная почта, как и большинство коммунальных услуг, воспринимается как должное, но никто не хочет думать о том, какие усилия нужно приложить, чтобы заставить ее работать. Я бы порекомендовал отличную (и, к счастью, краткую) книгу О'Рейли. Постфикс: полное руководство, который является отличным источником информации о запуске Postfix.

Я бы также потратил время на то, чтобы ознакомиться с некоторыми основными «правилами игры», поскольку большая часть глобальной системы электронной почты - это, по сути, набор джентльменских соглашений, чтобы не нарушать поставки друг друга. Конечно, вы могли бы пробираться сквозь толстые груды документов вроде RFC 2142 и другие, но я думаю, что мы можем свести это к нескольким простым правилам:

  • Будьте ответственным админом. Это означает наличие функционального адреса abuse@yourveryowndomain.com и postmaster@yourveryowndomain.com, которые на самом деле относятся к чему-то другому, а не к небольшому ведру. Отправка их в / dev / null - еще один отличный способ попасть в черный список. В конце концов, кто хочет иметь дело с кем-то, кто не слушает других о проблемах Oни делают?
  • Теперь вы являетесь частью сообщества. Это означает, что вы столкнетесь с другими администраторами, которые что-то сделали, эм, по-другому и будут иметь разные мнения о том, как это сделать. Если они разумны или имеют для этого причины, просто расслабьтесь и слушайте.
  • В этом сообществе вы несете ответственность за свой собственный сервер. Если другие поймают вас на неподобающих действиях (например, в открытой рассылке спама - подробнее об этом чуть позже), вы быстро попадете в черный список. Делайте все возможное, чтобы поступать правильно.
  • Запуск собственного сервера означает, что вы посвятили ему СВОИ ресурсы. НЕ поддавайтесь влиянию спамеров (выдавая себя за "маркетологов электронной почты"), говорящих вам Oни имеют право делать с кем угодно ваш Ресурсы. Я часто слышал это в форме «но-но-но это не ваше решение, это решение получателя, и вы должны пропустить мою электронную почту». Ваш ответ всегда должен быть таким: "это мой решение, это мой сервер и ты теперь увядшие воспоминания в моем черном списке ".
  • Другие серверы не являются вашими ресурсами; вы используете их из доброты и внимания окружающих. Будьте добры к другим администраторам и помните о «золотом правиле» в отношении отправки больших объемов электронной почты на их серверы. Хотели бы вы, чтобы кто-то переадресовал электронное сообщение в 2000 различных почтовых ящиков на вашем сервере, задерживая доставку на несколько минут?
  • После того, как вы все настроите и некоторое время поработаете, возвращайтесь и периодически проверяйте свои журналы. Да, эти ТЫСЯЧИ ЗАПИСЕЙ В ЧАС являются спамерами, пытающимися либо (а) доставить побочные продукты из свинины в ваш почтовый ящик, либо (б) использовать вас в качестве трамплина для доставки их кому-то другому. Что приводит нас к ...
  • Спамеры меняют тактику каждые несколько месяцев. Обычно достаточно небольшого изменения в настройках защиты от спама, чтобы избавиться от неприятностей.
  • Ради любви к $ {DIETY} не запускайте открытый ретранслятор в общедоступной части Интернета. Концепция открытого ретранслятора, то есть машины, которая принимает электронную почту от любого и доставляет ее куда угодно, является пережитком старых времен, когда Интернет был более добрым и мягким местом. В наши дни спамеры найдут вас, они превратят вашу машину в свой личный автомат электронной почты, и в конечном итоге они БУДУТ клеветать на ваше доброе имя.
  • Вы столкнетесь с администраторами, которым наплевать на свои серверы, и, как защитный водитель ищет других (глупых) водителей на дороге, вам нужно их остерегаться.
  • Плохие администраторы обычно настраивают плохие серверы. Есть коммерческие провайдеры, которые просто хотят быстро заработать, и им все равно, что происходит со всеми остальными, когда они «ломают» свои серверы. Это означает, что вы столкнетесь с серверами, которые делают глупые вещи, и какой-нибудь администратор поговорит с вами по телефону и захочет обменяться мнениями о том, почему это «ваша проблема», а не их. Перепроверьте свой сервер и убедитесь, что это действительно не вы, а затем вежливо сообщите им об их ошибке с подсказкой на четыре ...

Есть намного больше, но эти базовые вещи должны указать вам правильное направление.


Я не могу заставить работать почтовый клиент,

Что касается части вашего вопроса «клиент не может отправить», проблема связана с доменами, для которых вы принимаете электронную почту. В частности, в вашем сообщении упоминается:

mydestination =
myhostname = my.domain.com

Оба они неверны. Смотреть Вот установить mydestination параметр и Вот для myhostname параметр. Эти два параметра в основном сообщают postfix, что он будет принимать для доставки, в зависимости от того, что находится в правой половине адреса электронной почты To :. Они ничего не установили и my.domain.com означает, что он будет принимать только доставку на my.domain.com но он все равно не доставит его, потому что mydestination пусто. Я могу ошибаться, но я не думаю, что это то, чего вы хотели.

Проблема может быть в настройках Cyrus или в настройках PAM (возможно, Cyrus SASL использует PAM для связи с MySQL в ваших настройках).

Советую Вам две вещи:

  1. Внимательно просмотрите соответствующий раздел в документации Postfix: SASL_README

  2. Проверьте свои /var/log/auth.log