LINUX.ORG.RU
ФорумAdmin

Postfix+Postfixadmin + Dovecot.v2x (Проблема)


0

1

Привет, мучаюсь с настройкой связки Postfix+Postfixadmin + Dovecot.v2x Только начинаю добавлять нового пользователя в postfixadmin в логах postfix-a такой еррор:

May 20 17:40:03 mx postfix/smtpd[3250]: connect from localhost[127.0.0.1]

May 20 17:40:03 mx postfix/smtpd[3250]: warning: SASL: Connect to private/dovecot-smtp-auth failed: Connection refused

May 20 17:40:03 mx postfix/smtpd[3250]: fatal: no SASL authentication mechanisms

May 20 17:40:04 mx postfix/master[3242]: warning: process /usr/local/libexec/postfix/smtpd pid 3250 exit status 1

May 20 17:40:04 mx postfix/master[3242]: warning: /usr/local/libexec/postfix/smtpd: bad command startup — throttling

Конфиг Dovecot: http://pastebin.com/tgc3CHM6 Конфиг Postfix: http://pastebin.com/6mZ7r3az

Помогите пожалуйста разобраться с проблемой.



Последнее исправление: klu41k (всего исправлений: 2)

У тебя в dovecot.conf:

    unix_listener /var/spool/postfix/private/auth {
        user = postfix
        group = postfix
        mode = 0660
    }

А в main.cf:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-smtp-auth

Сделай пути одинаковыми.

geladil
()
Ответ на: комментарий от geladil

Поставил и в dovecot и в postfix : /var/spool/postfix/private/auth

Не помогло.

Поставил в dovecot и в postfix : private/var/spool/dovecot-smtp-auth

Тоже не помогло.

Где еще могут быть косяки?.:(

klu41k
() автор топика
Ответ на: комментарий от klu41k

dovecot.conf:

unix_listener /var/spool/postfix/private/dovecot-smtp-auth
main.cf:
smtpd_sasl_path = private/dovecot-smtp-auth
Косяки в невнимательности. Путь в main.cf относителен от
# Указываем месторасположения директории очереди postfix. Также данная
# директория является корнем, когда postfix запускается в chroot окружении.
queue_directory = /var/spool/postfix

geladil
()
Ответ на: комментарий от klu41k

Оба демона перезапустил?

Покажи логи (если изменились) и ls -l /var/spool/postfix/private/dovecot-smtp-auth.

И еще, какой uid и gid у virtual?

geladil
()
Ответ на: комментарий от klu41k

srw-rw---- 1 postfix postfix 0 May 20 18:33 /var/spool/postfix/private/dovecot-smtp-auth

klu41k
() автор топика
Ответ на: комментарий от geladil

Заглянул в Dovecot.log, а он ругался на отсутствие /etc/dovecot/dovecot-mysql.conf Запихнул туда файл и заработало. Странно dovecot.conf работает из /usr/local/etc/dovecot.conf а dovecot-mysql.conf из /etc/dovecot/dovecot-mysql.conf

Огромное спасибо за помощь!

Неподскажите еще почему при создании аккаунта в postfixadmin не создаеться папка в /usr/local/mail ?

klu41k
() автор топика
Ответ на: комментарий от klu41k

И, кстати, ничего странного нет. Вот же в конфиге:

userdb {
    args = /etc/dovecot/dovecot-mysql.conf
    driver = sql
}
passdb {
    args = /etc/dovecot/dovecot-mysql.conf
    driver = sql
}

geladil
()
Ответ на: комментарий от geladil

точно.

mx# ls -l /usr/local/mail total 0

mx# ls -la /usr/local/mail total 8 drwx------ 2 virtual virtual 512 May 20 12:03 . drwxr-xr-x 15 root wheel 512 May 20 13:46 .. mx# ls -la /usr/local/mail total 8

klu41k
() автор топика
Ответ на: комментарий от klu41k

А, дошло. Дело в том, что параметр mail_location может быть переопределен в passdb {..}. Покажи содержимое dovecot-mysql.conf, ну или сам посмотри, какой путь указан в user_query.

geladil
()
Ответ на: комментарий от geladil

:))

Пробую отправить из Postfixadmin:

Вот что постфикс говорит:

May 20 21:50:29 mx postfix/smtpd[6108]: connect from localhost[127.0.0.1]

May 20 21:50:29 mx postfix/smtpd[6108]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.0 <admin@MYHOST.NET>: Sender address rejected: User unknown; from=<admin@MYHOST.NET> to=<mailman@MYHOST.NET> proto=ESMTP helo=<192.168.2.247>

May 20 21:50:29 mx postfix/smtpd[6108]: warning: non-SMTP command from localhost[127.0.0.1]: To: mailman@MYHOST.NET

May 20 21:50:29 mx postfix/smtpd[6108]: disconnect from localhost[127.0.0.1]

klu41k
() автор топика
Ответ на: комментарий от klu41k

если с гемейла отправляю, то :

Technical details of permanent failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 554 554 5.7.1 <mailman@MYHOSTN.NET>: Relay access denied (state 13).

klu41k
() автор топика
Ответ на: комментарий от klu41k

Записи для ящиков в мускуле корректно создались?

Но вообще, что то здесь маловато permit'ов:

smtpd_sender_restrictions =     permit_mynetworks,
                                check_sender_access hash:$base/sender_access,
                                reject_authenticated_sender_login_mismatch,
                                reject_unknown_sender_domain,
                                reject_unlisted_sender,
                                reject_unverified_sender
Как минимум, нужны permit_sasl_authenticated в начале и permit в конце. Собственно, permit в конце нужен всем *_restrictions, а то сейчас письма могут приходить и отправляться из mynetworks, а это 127.0.0.1.

geladil
()
Ответ на: комментарий от geladil

я это все закоментировал, оставил только:

 smtpd_client_restrictions =  permit_mynetworks,
                             permit_sasl_authenticated,
                             check_client_access hash:$base/client_access,
                             reject_unknown_client_hostname
 
# Дополнительные ограничения, применяемые сервером Postfix
# в контексте SMTP команды HELO
smtpd_helo_restrictions =       check_helo_access hash:$base/hello_access,
                                permit_mynetworks,
                                permit_sasl_authenticated,
                                reject_invalid_helo_hostname,
                                reject_non_fqdn_helo_hostname,
                                reject_unknown_helo_hostname
 

Не пашет

klu41k
() автор топика
Ответ на: комментарий от klu41k

Да, просто, вроде этого:

smtpd_helo_restrictions =       check_helo_access hash:$base/hello_access,
                                permit_mynetworks,
                                permit_sasl_authenticated,
                                reject_invalid_helo_hostname,
                                reject_non_fqdn_helo_hostname,
                                reject_unknown_helo_hostname,
                                permit
Все, что не было отвергнуто, будет принято. Это нормальное поведение, вообще-то.

geladil
()
Ответ на: комментарий от geladil

Да ключи сгенерированы Генерровал так:

openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

В логах вроде ничего подозрительного, когда хочу клиентом с шифрованием подключиться пишет:

May 21 00:05:18 mx postfix/smtpd[31356]: connect from unknown[192.168.2.253]
May 21 00:06:58 mx postfix/smtpd[31356]: disconnect from unknown[192.168.2.253]

klu41k
() автор топика
Ответ на: комментарий от klu41k

А что в логах клиента? Кстати, какой именно?

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

А что в логах сервера по принятию писем?

geladil
()
Ответ на: комментарий от geladil

сделал такой конфиг:

smtpd_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.cert smtpd_tls_key_file = /etc/ssl/postfix/smtpd.key smtpd_tls_loglevel = 0 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom

Клиент: Thunderbird Логов чего-то не вижу в нем.

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

klu41k
() автор топика
Ответ на: комментарий от klu41k

домен myhost.net у меня ссылаеться на другой ip. из за этого не отправляет, попробовал отправить на mailman@mx.myhost.net

в логах:

May 21 00:31:31 mx postfix/smtpd[31656]: connect from f175.mail.ru[94.100.178.92] May 21 00:31:31 mx postfix/smtpd[31656]: NOQUEUE: reject: RCPT from f175.mail.ru[94.100.178.92]: 550 5.1.1 <mailman@mx.MYHOST.NET>: Recipient address rejected: User unknown in local recipient table; from=<uzzer@mail.ru> to=<mailman@mx.MYHOST.NET> proto=ESMTP helo=<f175.mail.ru> May 21 00:31:31 mx postfix/smtpd[31656]: disconnect from f175.mail.ru[94.100.178.92]

klu41k
() автор топика
Ответ на: комментарий от klu41k

Оформляй впредь конфиги через [code][/code], а то парсить не очень удобно, когда в одну строку.

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

mydestination =
В противном случае все письма, чей получатель находится в доменах, указанных в mydestination, будут интерпретироваться как письма для локальных пользователей. А что вызывает нынешнюю ошибку, так это то, что у тебя нет локального пользователя mailman, а значит, получатель нелегитимен и отвергается. Короче, очисти mydestination.

С дальнейшим, если понадобится, помогу уже завтра где-то в середине дня — сейчас мозги уже совсем не варят.

geladil
()
Ответ на: комментарий от geladil

Хорошо.

Очистил, теперь при отправке письма на mailman@mx.myhost.net :

Relay access denied (state 13).

кстати можно что либо придумать чтобы почту слать не на : mailman@mx.myhost.net а на mailman@myhost.net При условии что в NS myhost.net запись ссылаеться на дугой ip.

Спасибо огромное за помощь!! Завтра напишу.

klu41k
() автор топика
Ответ на: комментарий от klu41k

Конечно можно. Через postfixadmin добавь виртуальный домен myhost.net и добавь ящик на этом домене. MX запись для того и нужна, чтобы почту для одного хоста мог обрабатывать другой.

Вообще говоря, у тебя все это уже должно было быть сделано, выше ведь ты создавал именно такие ящики, как я понимаю. Шли на mailman@myhost.net.

Сейчас postfix отказывается отправлять письма на mx.myhost.net, потому что он не обслуживает этот домен, а значит такая отправка — это открытый релей почты, который по умолчанию отключен и не должен включаться, чтобы не рассылать спам.

geladil
()
Ответ на: комментарий от geladil

да,  это сделано. шлю письмо на: mailman@myhost.net - Relay access denied (state 13).

Создал еще один вирт. домен: myhost2.net

Шлю на него: Письмо приходит.

Не понимаю.

klu41k
() автор топика
Ответ на: комментарий от klu41k

Покажи таблицы mailbox и domain из базы постфикса, содержимое /usr/local/etc/postfix/mysqlLookupMaps/domain.conf и /usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf и правила в recipient_access.

Там пароли и хеши есть, не забудь вымарать.

geladil
()
Ответ на: комментарий от klu41k

Блин, прочитал как «письмо не приходит». Значит, проверь только таблицы в мускуле. остальное не нужно. Подозреваю, что у тебя в первый раз не создался виртуальный домен. Ты ведь его создавал до того, как починил доступ к базе.

geladil
()
Ответ на: комментарий от geladil
SELECT * 
FROM `mailbox` 
WHERE (
(
`mailbox`.`username` = 'p1@myhost2.net'
)
OR (
`mailbox`.`username` = 'mailman@myhost.net'
)
OR (
`mailbox`.`username` = 'test@myhost.net'
)
OR (
`mailbox`.`username` = 'k1@myhost.net'
)
OR (
`mailbox`.`username` = 'admin@myhost2.net'
)
OR (
`mailbox`.`username` = 'test@myhost2.net'
)
OR (
`mailbox`.`username` = 'dd@myhost2.net'
)
OR (
`mailbox`.`username` = 'info@myhost2.net'
)
OR (
`mailbox`.`username` = 'sa_@myhost2.net'
)
OR (
`mailbox`.`username` = 'pd@myhost2.net'
)
OR (
`mailbox`.`username` = 'vs@myhost2.net'
)
OR (
`mailbox`.`username` = 'dad@myhost2.net'
)
OR (
`mailbox`.`username` = 'ew@myhost2.net'
)
OR (
`mailbox`.`username` = 'tt@myhost2.net'
)
)myhost.net
SELECT * 
FROM  `domain` 
WHERE (
(
`domain`.`domain` =  'ALL'
)
OR (
`domain`.`domain` =  'myhost.net'
)
OR (
`domain`.`domain` =  'myhost2.net'

) )

klu41k
() автор топика
Ответ на: комментарий от klu41k
user = postfix
password =pazz.
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = '1' and backupmx = '0'
user = postfix
password = pazz.
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = and active = '1'

Пишу: cat recipient_access Пусто, или я не то смотрю?

klu41k
() автор топика
Ответ на: комментарий от klu41k

Я выше написал, что ошибся, и эти конфиги уже не интересуют. Интересует, есть ли домен myhost.net в таблице domain в базе постфикса.

geladil
()
Ответ на: комментарий от geladil
+--------------------+-------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| domain             | description | aliases | mailboxes | maxquota | quota | transport | backupmx | created             | modified            | active |
+--------------------+-------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| ALL                |             |       0 |         0 |        0 |     0 |           |        0 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |      1 |
| myhost.net    |             |      10 |        10 |        0 |     0 | virtual   |        0 | 2012-05-20 13:20:20 | 2012-05-20 13:20:20 |      1 |
| myhost2.net |             |      10 |        50 |        0 |     0 | virtual   |        0 | 2012-05-21 01:14:57 | 2012-05-21 01:14:57 |      1 |
+--------------------+-------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
3 rows in set (0.00 sec)
+--------------------------------+----------------+----------------------------------------------------------------------+----------------------------------------------------+-------+-------------+--------------------+---------------------+---------------------+--------+
| pd@myhost2.net    | 1111       | ????????? ???????? ????? ? ?????????? ?? ????????                    | myhost2.net/pd@myhost2.net/    |     0 | projects    | myhost2.net | 2012-05-21 09:40:23 | 2012-05-21 09:40:23 |      1 |
| mailman@myhost.net          | mailman        | mailman                                                              | myhost.net/mailman@myhost.net/               |     0 | mailman     | myhost.net      | 2012-05-20 21:21:41 | 2012-05-20 21:21:41 |      1 |
| test@myhost.net             | test           | test                                                                 | myhost.net/test@myhost.net/                  |     0 | test        | myhost.net      | 2012-05-20 21:31:08 | 2012-05-20 21:31:08 |      1 |
| kk@myhost.net           | 19890601       | kk                                                               | myhost.net/kk@myhost.net/                |     0 | kk      | myhost.net      | 2012-05-20 23:13:41 | 2012-05-20 23:13:41 |      1 |
| admin@myhost2.net       | admin          | admin                                                                | myhost2.net/admin@myhost2.net/       |     0 | admin       | myhost2.net | 2012-05-21 01:15:22 | 2012-05-21 01:15:22 |      1 |
| test@myhost2.net        | test           | test                                                                 | myhost2.net/test@myhost2.net/        |     0 | test        | myhost2.net | 2012-05-21 01:49:27 | 2012-05-21 01:49:27 |      1 |
| dd@myhost2.net  | 1111 | ??????? ?????                                                        | myhost2.net/dd@myhost2.net/  |     0 | dd  | myhost2.net | 2012-05-21 09:25:13 | 2012-05-21 09:25:13 |      1 |
| info@myhost2.net        | 1111        | ????????? ???????? ????? ? ?????????? ?? ????????                    | myhost2.net/info@myhost2.net/        |     0 | info        | myhost2.net | 2012-05-21 09:34:12 | 2012-05-21 10:13:48 |      1 |

+--------------------------------+----------------+----------------------------------------------------------------------+----------------------------------------------------+-------+-------------+--------------------+---------------------+---------------------+--------+
15 rows in set (0.00 sec)
klu41k
() автор топика
Ответ на: комментарий от klu41k

Тут все нормально.

И при этом на myhost2.net почта приходит, а на myhost.net — нет? Очень странно. Покажи кусок логов с отказами.

geladil
()
Ответ на: комментарий от geladil

да. если шлю на mailman@myhost.net в логах ничего не происходит если на: mailman@mx.myhost.net то вот:

May 21 11:32:21 mx postfix/smtpd[35052]: connect from mail-qa0-f46.google.com[209.85.216.46]
May 21 11:32:22 mx postfix/smtpd[35052]: NOQUEUE: reject: RCPT from mail-qa0-f46.google.com[209.85.216.46]: 554 5.7.1 <mailman@mx.myhost.net>: Relay access denied; from=<uzzer@gmail.com> to=<mailman@mx.myhost.net> proto=ESMTP helo=<mail-qa0-f46.google.com>
May 21 11:32:23 mx postfix/smtpd[35052]: disconnect from mail-qa0-f46.google.com[209.85.216.46]
klu41k
() автор топика
Ответ на: комментарий от klu41k

Не надо ничего отправлять на mx.myhost.net, во-первых. Во-вторых, mx-запись для домена в dns есть, как я понимаю. А вот команда host -t MX myhost.net на клиенте что выдает?

geladil
()
Ответ на: комментарий от klu41k

Я так и думал. Видимо, в кеше старые данные зоны. dig myhost.

Вообще, лучше напиши мне в жаббер адрес, если это не какая-то тайна. Так дело быстрее пойдет.

geladil
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.