LINUX.ORG.RU
ФорумAdmin

Проблема в Postfix?

 , , , ,


0

1

Настраиваю сервер Postfix+Dovecot+MySQL+еще куча всякого фарша.

После того, как я «настроил» и постфикс и довекот, я пытаюсь его тестировать.

root@debian:~# mailx admin@amet13.name
Subject: TEST
EOT

Смотрю логи:

tail /var/log/mail.log
Oct  2 23:37:17 debian postfix/pickup[21060]: 84E963E09AC: uid=0 from=<root>
Oct  2 23:37:17 debian postfix/cleanup[21092]: 84E963E09AC: message-id=<20131002203717.84E963E09AC@amet13.name>
Oct  2 23:37:17 debian postfix/qmgr[21061]: 84E963E09AC: from=<root@name>, size=417, nrcpt=1 (queue active)
Oct  2 23:37:17 debian postfix/trivial-rewrite[21094]: warning: do not list domain amet13.name in BOTH mydestination and virtual_mailbox_domains
Oct  2 23:37:17 debian postfix/local[21097]: 84E963E09AC: to=<admin@amet13.name>, relay=local, delay=0.66, delays=0.41/0.02/0/0.23, dsn=5.1.1, status=bounced (unknown user: "admin")
Oct  2 23:37:17 debian postfix/cleanup[21092]: E45D33E09AD: message-id=<20131002203717.E45D33E09AD@amet13.name>
Oct  2 23:37:18 debian postfix/qmgr[21061]: E45D33E09AD: from=<>, size=2059, nrcpt=1 (queue active)
Oct  2 23:37:18 debian postfix/bounce[21098]: 84E963E09AC: sender non-delivery notification: E45D33E09AD
Oct  2 23:37:18 debian postfix/qmgr[21061]: 84E963E09AC: removed
Oct  2 23:37:18 debian postfix/smtp[21100]: E45D33E09AD: to=<root@name>, relay=none, delay=0.61, delays=0.2/0.01/0.4/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=name type=AAAA: Host found but no data record of requested type)
Oct  2 23:37:18 debian postfix/qmgr[21061]: E45D33E09AD: removed

И не могу понять что не работает? Postfix? Dovecot? Может я неверно MX записи в админке домена выставил:

	
Субдомен Тип	Приоритет	Адрес
@	   MX	 	     78.30.xxx.24

В какую сторону рыть? Может вывод каких-нибудь файлов для пущей наглядности выложить?

★★★★★

Postfix тебе же говорит:

Oct 2 23:37:17 debian postfix/trivial-rewrite[21094]: warning: do not list domain amet13.name in BOTH mydestination and virtual_mailbox_domains

gh0stwizard ★★★★★
()

Судя по логам не найден пользователь admin и следует указать адрес отправителя.

В данном примере не работает Postfix. Выложи его конфиг куда-нить.

Ну и рекомендации с reg.ru про MX запись:

В поле Mail Server желательно вводить имя домена, а не IP-адрес, т.к. не все почтовые сервера/сервисы могут доставлять почту в противном случае.

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

Гуглил по этому эррору, не нашел для себя ничего. А что это может значить?

И еще я очень сомневаюсь в правильности MX записи в домене, делаю это впервые, поэтому не знаю, правильно или нет.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от menefis
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
dovecot_destination_recipient_limit = 1
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
message_size_limit = 30720000
mydestination = amet13.name, localhost.localdomain, localhost
myhostname = amet13.name
mynetworks = 127.0.0.0/8
myorigin = $mydomain
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 = /usr/share/doc/postfix
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
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/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_transport = dovecot
virtual_uid_maps = static:2000
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_maildir_extended=yes
Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Гуглил по этому эррору, не нашел для себя ничего. А что это может значить?

Ну для начала правильно перевести стоит.

внимание: не включайте домен amet13.name в ОБА списка mydestination и virtual_mailbox_domains

Теперь надо прояснить для себя в чем разница между mydestination и virtual_mailbox_domains.

gh0stwizard ★★★★★
()
Ответ на: комментарий от menefis

Судя по логам не найден пользователь admin и следует указать адрес отправителя.

Так у него он в виртуале, раз использует mysql. Или чего ТС хочет? Варнинг ранее как раз предупреждает, что сначала-ка я доставлю по-обычному и обламывается.

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

Теперь надо прояснить для себя в чем разница между mydestination и virtual_mailbox_domains.

Убрал amet13.name из mydestination.

Вроде ошибка пропала.

Теперь появилась ошибка в dovecot.

Oct  3 00:24:10 debian dovecot: master: Dovecot v2.1.7 starting up (core dumps disabled)
Oct  3 00:24:23 debian postfix/pickup[21868]: 310703E09B7: uid=0 from=<root>
Oct  3 00:24:23 debian postfix/cleanup[22105]: 310703E09B7: message-id=<20131002212423.310703E09B7@amet13.name>
Oct  3 00:24:23 debian postfix/qmgr[21869]: 310703E09B7: from=<root@name>, size=408, nrcpt=1 (queue active)
Oct  3 00:24:23 debian dovecot: auth: passwd(admin@amet13.name): unknown user
Oct  3 00:24:23 debian postfix/pipe[22110]: 310703E09B7: to=<admin@amet13.name>, relay=dovecot, delay=0.34, delays=0.2/0.01/0/0.13, dsn=5.1.1, status=bounced (user unknown)
Oct  3 00:24:23 debian postfix/cleanup[22105]: 6DD8E3E09B8: message-id=<20131002212423.6DD8E3E09B8@amet13.name>
Oct  3 00:24:23 debian postfix/qmgr[21869]: 6DD8E3E09B8: from=<>, size=2029, nrcpt=1 (queue active)
Oct  3 00:24:23 debian postfix/bounce[22112]: 310703E09B7: sender non-delivery notification: 6DD8E3E09B8
Oct  3 00:24:23 debian postfix/qmgr[21869]: 310703E09B7: removed
Oct  3 00:24:23 debian postfix/smtp[22114]: 6DD8E3E09B8: to=<root@name>, relay=none, delay=0.45, delays=0.07/0.01/0.36/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=name type=AAAA: Host found but no data record of requested type)
Oct  3 00:24:23 debian postfix/qmgr[21869]: 6DD8E3E09B8: removed

Написано, что unknown user, хотя я его создавал в БД.

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

Да на самом деле я много инфы юзал. Основной вот этот: http://www.ussr.kiev.ua/ru/Debian-Postfix-Dovecot На самом деле я задумал гораздо больше, еще потом clamav+spamassasin и т.д. Но споткнулся после настройки довекота. Дело в том, что в этом мане, по которому я делаю, довекот еще старый, поэтому полностью перекопировать код из статьи не получится, вот я и стал по своему настраивать его.

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

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

В твоем случае, таблица, имена полей — все должно совпадать, как для davecot, так и для postfix. Выборка у тебя может быть составлена по-другому. Файл настроек mysql для dovecot может быть где-угодно :) Поэтому читай внимательно свой мануал. Может что-то ты упустил.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard
# cat /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=мой_пароль
default_pass_scheme = CRYPT
password_query = SELECT email AS user, password FROM users WHERE email = '%u';
Amet13 ★★★★★
() автор топика
Ответ на: комментарий от gh0stwizard
mysql> SELECT email AS user, password FROM users WHERE email = 'admin@amet13.name';
+-------------------+---------------+
| user              | password      |
+-------------------+---------------+
| admin@amet13.name | ZfZT6COMR9cjQ |
+-------------------+---------------+
1 row in set (0.00 sec)
Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)
Ответ на: комментарий от Amet13

ТТ. Читать надо внимательней:

auth default {

   user = root

  

   passdb sql {

     args = /etc/dovecot/dovecot-sql.conf

   }
Теперь сравни с именем твоего файла :)

И вообще перепроверь все пути конф. файлов. Походу какой-то из них не цепляется. В любом случае dovecot должен сообщить, что он законнектился к БД.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от gh0stwizard
# cat /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
base_dir = /var/run/dovecot/
login_greeting = POP3/IMAP server ready.
verbose_proctitle = no
shutdown_clients = yes

!include conf.d/*.conf
!include_try local.conf
Amet13 ★★★★★
() автор топика
Ответ на: комментарий от gh0stwizard

!include conf.d/*.conf.ext

Oct  3 01:10:14 debian dovecot: auth: Fatal: LDAP: No uris or hosts set
Oct  3 01:10:14 debian dovecot: master: Error: service(auth): command startup failed, throttling for 8 sec

T_T

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

В файле /etc/dovecot/conf.d/10-auth.conf добавил !include auth-sql.conf.ext

Теперь выхлоп такой.

Oct  3 01:22:09 debian postfix/pickup[22352]: B7FDC3E09BB: uid=0 from=<root>
Oct  3 01:22:09 debian postfix/cleanup[23847]: B7FDC3E09BB: message-id=<20131002222209.B7FDC3E09BB@amet13.name>
Oct  3 01:22:09 debian postfix/qmgr[22353]: B7FDC3E09BB: from=<root@name>, size=404, nrcpt=1 (queue active)
Oct  3 01:22:09 debian dovecot: auth: passwd(admin@amet13.name): unknown user
Oct  3 01:22:09 debian dovecot: auth-worker(23854): mysql(127.0.0.1): Connected to database mail
Oct  3 01:22:09 debian dovecot: auth-worker(23854): Warning: mysql: Query failed, retrying: Unknown column 'home' in 'field list'
Oct  3 01:22:09 debian dovecot: auth-worker(23854): Error: sql(admin@amet13.name): User query failed: Unknown column 'home' in 'field list' (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = '%n' AND domain = '%d')
Oct  3 01:22:09 debian dovecot: lda: Error: user admin@amet13.name: Auth USER lookup failed
Oct  3 01:22:09 debian dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
Oct  3 01:22:10 debian postfix/pipe[23852]: B7FDC3E09BB: to=<admin@amet13.name>, relay=dovecot, delay=0.39, delays=0.2/0.01/0/0.17, dsn=4.3.0, status=deferred (temporary failure)

По ходу уже теплее :)

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

лог пишет, что неизвестная колонка home. Т.е. ошибка в БД, а как ее исправить - не знаю.

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

Скорее всего неверно составлен запрос? Или неверно составлена база?

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

grep -r «SELECT home, uid, gid FROM users WHERE username» /etc/dovecot/

Ничего не находит. При настройке, такой строки не помню вообще.

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

Кстати, ты как создавал структуру БД в MySQL для Dovecot?

Походу вообще никак.

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

Вот создавал базу, но не для довекота вроде.

mysql> CREATE DATABASE mail;
mysql> USE mail;

Создаем пользователя админа БД почты mail_admin:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'ваш_пароль';

mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost,localdomain' IDENTIFIED BY 'ваш_пароль';

mysql> FLUSH PRIVILEGES;

Создадим таблицу, в которой будут храниться все почтовые домены:
mysql> CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) );

Таблица пересылки почты:
mysql> CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );

Таблица хранения почтовых аккаунтов:
mysql> CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );

Таблица транспортировки:
mysql> CREATE TABLE transport ( domain varchar(128) NOT NULL default ", transport varchar(128) NOT NULL default ", UNIQUE KEY domain (domain) );

Проверка, должно быть что-то в этом роде:
mysql> SHOW TABLES FROM mail;
+----------------+
| Tables_in_mail |
+----------------+
| domains        |
| forwardings    |
| transport      |
| users          |
+----------------+

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