Мар 012011
Настройка почтового сервера… Этим можно заниматься вечно и всегда будет куда стремится.
Вот, что требовалось до установки:
- Требования
- Хранение почты на сервере
- Фильтрация спама
- Проверка вложений на вирусы
- Возможность использовать дополнительные домены
- Средние нагрузки (250+ пользователей)
- Списки рассылок
- WEB клиент
Что использовалось:
- Postfix
- Courier
- Amavis
- Spamassassin
- Razor
- ClamAV
- Roundcube
- Mailman
- Mailgraph
- AwStats
- MySQL
- Saslauth
- phpMyAdmin
Вот тут очень подробно описал как это делал.
На данный момент почтовик работает в продакшене две недели.
Если буду в Питере – непременно напомню про бутылку :)
В Thunderbird автоматом логин на сервер выставляется как “username”, а нужно “username@вашдомен.ru” – то есть с полным доменным суффиксом.
По идее можно реализовать и без доменного суффикса, но у меня так сделано (из базы данные дергать чуть чуть по другому нужно, чтобы без суффикса, и с виртуальными доменами не получится работать).
RoundCube сам подставляет доменный суффикс, потому его при авторизации писать нет надобности.
У меня вопрос про saslauthd.pid
что должно быть в этом фаиле ?? и он сам должен создаться или его надо создать руками ?
Создавать его не нужно.
Вы эту команду выполнили:?
adduser postfix sasl
(Пользователь postfix добавляется в группа sasl)
Да выполнял он пишет что
Пользователь «postfix» уже является членом группы «sasl».
Так а что собственно не работает?
не работает smtp аутентификация!
mail postfix/smtpd[21187]: warning: SASL authentication failure: Password verification failed
Apr 11 10:37:42 mail postfix/smtpd[21187]: warning: unknown[192.168.111.1]: SASL PLAIN authentication failed: generic failure
Apr 11 10:37:42 mail postfix/smtpd[21187]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Apr 11 10:37:42 mail postfix/smtpd[21187]: warning: unknown[192.168.111.1]: SASL LOGIN authentication failed: generic failure
Apr 11 10:37:43 mail postfix/smtpd[21187]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Apr 11 10:37:43 mail postfix/smtpd[21187]: warning: SASL authentication failure: Password verification failed
Apr 11 10:37:43 mail postfix/smtpd[21187]: warning: unknown[192.168.111.1]: SASL PLAIN authentication failed: generic failure
Apr 11 10:37:43 mail postfix/smtpd[21187]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Apr 11 10:37:43 mail postfix/smtpd[21187]: warning: unknown[192.168.111.1]: SASL LOGIN authentication failed: generic failure
Apr 11 10:37:45 mail postfix/smtpd[21187]: disconnect from unknown[192.168.111.1]
вот такую штуку пишет!
Читать:
http://lists.debian.org/debian-user/2005/07/msg01010.html
http://www.howtoforge.com/forums/archive/index.php/t-28204.html
http://www.vagrant.ru/showthread.php?t=3535&page=5
Ну и поиск в яндексе
Apr 11 10:37:42 mail postfix/smtpd[21187]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
С этой ошибкой разобрался! Только все равно он меня послал.
если делаю тестсасл то он мне выдает
testsaslauthd -u юзер -p пароль
connect() : No such file or directory
а в логах сыпит
postfix/smtpd[1792]: connect from unknown[192.168.111.1]
Apr 11 12:18:33 mail postfix/smtpd[1792]: warning: SASL authentication failure: Password verification failed
Apr 11 12:18:33 mail postfix/smtpd[1792]: warning: unknown[192.168.111.1]: SASL PLAIN authentication failed: authentication failure
Apr 11 12:18:33 mail postfix/smtpd[1792]: disconnect from unknown[192.168.111.1]
Для testsaslauthd скорее всего нужно servicename и socket path указывать.
А в логах он пишет что имя пользователя или пароль не верны.
Вот здесь:
mv mail.вашдомен.crt /etc/ssl/certs/
должно быть
mv mail.вашдомен.ru.crt /etc/ssl/certs/
Вот здесь:
PARAMS=”-m /var/spool/postfix/var/run/saslauthd -r”
наверное должно быть
OPTIONS=”-m /var/spool/postfix/var/run/saslauthd -r”
cp /etc/ssl/certs/mail.вашдомен.crt /etc/courier/
cat /etc/ssl/private/mail.вашдомен.key >> /etc/courier/mail.вашдомен.ru.crt
должно быть:
cp /etc/ssl/certs/mail.вашдомен.ru.crt /etc/courier/
cat /etc/ssl/private/mail.вашдомен.ru.key >> /etc/courier/mail.вашдомен.ru.crt
Спасибо.
Все поправил
root@mail:/# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
Скопировал все со статьи, изменил что надо было изменить(доменное имя, локалку, папку vmail). Но не проходит.. Подскажите пожалуйста
Покажите:
nmap localhost
25 порт похоже не доступен.
Перезапустите postfix и посмотрите что он в логи напишет при попытке запуска.
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
443/tcp open https
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql
10024/tcp open unknown
10025/tcp open unknown
Все видит.
Вот логи:
Jun 21 13:03:20 mail postfix/master[1164]: terminating on signal 15
Jun 21 13:03:20 mail postfix/master[1313]: daemon started — version 2.7.1, configuration /etc/postfix
Jun 21 13:03:20 mail postfix/proxymap[1322]: fatal: /etc/postfix/config/mysql-virtual_forwardings.cf: bad string length 0 < 1: dbname =
Jun 21 13:03:21 mail postfix/cleanup[1321]: warning: private/proxymap socket: service dict_proxy_open: Success
Jun 21 13:03:21 mail postfix/master[1313]: warning: process /usr/lib/postfix/proxymap pid 1322 exit status 1
Jun 21 13:03:21 mail postfix/master[1313]: warning: /usr/lib/postfix/proxymap: bad command startup — throttling
Исправил по логам файлы в /etc/postfix/config/.. почемуто везде не было указанно dbname = mail..
Теперь в логах др ошибка при: telnet localhost 25
Jun 21 13:19:32 mail postfix/smtpd[1100]: fatal: restriction class `rdl_bogon_ip’ needs a definition
Jun 21 13:19:33 mail postfix/master[984]: warning: process /usr/lib/postfix/smtpd pid 1100 exit status 1
Jun 21 13:19:33 mail postfix/master[984]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling
rdl_bogon_ip нужно убрать.
В первой редакции он был, потом я удалил его (толку от него нет).
Было:
smtpd_restriction_classes = verify_sender, rbl_dul_ru, rbl_spamcop, rdl_bogon_ip, white_client_ip, black_client_ip, block_dsl, helo_access, white_client, mx_access
Нужно:
smtpd_restriction_classes = verify_sender, rbl_dul_ru, rbl_spamcop, white_client_ip, black_client_ip, block_dsl, helo_access, white_client, mx_access
У меня тоже ошибка fatal: /etc/postfix/config/mysql-virtual_forwardings.cf: bad string length 0 < 1: dbname =
Как ее исправить?
Проверьте содержимое файла /etc/postfix/config/mysql-virtual_forwardings.cf.
А лучше покажите его.
Огромный респект автору статьи за подробный мануал, настроил сервер без особых граблей. Единственная недоработка на мой взляд – отсутствие удобной админки для доменов, почтовых ящиков и алиасов. Продвинутый сисадмин конечно же разберется с базой в phpmyadmin, а для эникейщиков сложновато рулить. Вопрос легко решается прикручиванием postfixadmin, что я собсно и сделал на своем сервере.
Спасибо за отзыв. Про postfixadmin нужно почитать на досуге.
Но мне кажется он немного свяжет руки. Сейчас есть голая база, sql запросы – крути как хочешь. Хотя наверное с ним на много проще должно быть.
Привет. Спасибо за годный мануальчик. Столкнулся с проблемой в самом начале. Помоги пожалуйста разобраться.
Пытаюсь создать таблицу transport в MySQL
CREATE TABLE transport(
domain VARCHAR( 128 ) NOT NULL DEFAULT,
transport VARCHAR( 128 ) NOT NULL DEFAULT,
UNIQUE KEY domain( domain )
);
на что mysql мне говорит
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘ transport varchar(128) NOT NULL default , UNIQUE KEY domain (domain))’ at line 2
убираю default, таблица создаётся, но при попытке добавить строки в таблицу domain или transport, записывает туда 0
не понимаю что он от меня хочет…
Спасибо за внимание, вроде разобрался, добавил ” после default, вроде всё пошло, но вопросы я уверен ещё будут)))
CREATE TABLE transport(
domain VARCHAR( 128 ) NOT NULL DEFAULT ”,
transport VARCHAR( 128 ) NOT NULL DEFAULT ”,
UNIQUE KEY domain( domain )
);
кавычки исказились ‘ ‘ две вот таких надо
Поправил
Хорошая статья, делал в точности по ней. Таблицы первоначально заполнил PHPMyAdmin помог.
Но есть трудность: проверку телнетом на 25 порту постфикс не проходит. Ответа на ehlo нет. Сеанс висит.
в логе mail.err:
Apr 16 17:19:13 smtp postfix/proxymap[1852]: fatal: open /etc/postfix/config/mysql-virtual_forwardings.cf: Permission denied
в логе mail.log постоянно сыплет:
Apr 16 18:03:57 smtp postfix/proxymap[2007]: fatal: open /etc/postfix/config/mysql-virtual_forwardings.cf: Permission denied
Apr 16 18:03:58 smtp postfix/smtpd[1811]: warning: private/proxymap socket: service dict_proxy_open: Success
Apr 16 18:03:58 smtp postfix/master[1735]: warning: process /usr/lib/postfix/proxymap pid 2007 exit status 1
Apr 16 18:03:58 smtp postfix/master[1735]: warning: /usr/lib/postfix/proxymap: bad command startup — throttling
Сам mysql-virtual_forwardings.cf:
user = mail_admin
password = *********
dbname = mail
query = SELECT destination FROM forwardings WHERE sourse=’%s’
hosts = 127.0.0.1
права на этот файл не менял.
Подскажите где можно порыть?
В конце раздела “Ограничения” указано как и какие права нужно выставить на эти файлы.
Я бы посоветовал не заморачиваться с этим решением.
Посмотрите в сторону Zimbra. Фильтрует почту гораздо лучше, очень проста в настройке, развивается. Гораздо более функциональна, имеет шикарный web интерфейс.
Работает стабильно. Вопреки тому, что написана с использованием java – не сильно нагружает систему при десятках пользователей и скромных вычислительных ресурсах.
При необходимости можно отключить все лишние модули и оставить только почту (вообще это сервер совместной работы включающий почтовик).
Спасибо за совет, но я ковыряться в никсах начал очень недавно, и ваш пошаговый мануал мне очень помогает для изучения основ. Посему хочется заставить работать то, что есть уже. Пощупать так сказать.
По мануалу выставил права на файлы:
root@smtp:/etc/postfix/config# ls -l /etc/postfix/config//mysql-virtual_forwardings.cf
-rw-r—– 1 root postfix 131 Апр 16 12:15 /etc/postfix/config//mysql-virtual_forwardings.cf
в логе mail.err без изменений:
Apr 17 10:34:25 smtp postfix/proxymap[2262]: fatal: open /etc/postfix/config/mysql-virtual_forwardings.cf: Permission denied
что я делаю не так?
Поправил в статье:
chmod 644 /etc/postfix/config/*
Не помню из каких соображений написал так как было.
Last login: Wed Apr 17 14:47:14 2013 from 192.168.1.5
root@smtp:~# mc
root@smtp:/var/log# ls -l /etc/postfix/config//mysql-virtual_forwardings.cf
-rw-r–r– 1 root postfix 132 Апр 17 11:48 /etc/postfix/config//mysql-virtual_forwardings.cf
в логе mail.err без изменений:
Apr 17 14:49:33 smtp postfix/proxymap[1813]: fatal: open /etc/postfix/config/mysql-virtual_forwardings.cf: Permission denied
не помогло
У вас дебиан? Постфикс под каким пользователем работает?
Это даже лишние права. Для “остальных” чтение не нужно.
У меня уже нет доступа к старому почтовому серверу, который настраивал. Потому точно проверить не могу.
Debian GNU/Linux 6.0 \n \l
Под каким работает постфикс не знаю, настраивал всё под рутом.
Birta Levente | 19 Feb 2013 10:04
proxymap permission denied
Hi all
Today I restarted the postfix server because one misconfiguration in the
master.cf: unknown smtpd restriction: “reject_unauth_destionation”
Then in the maillog appears other errors, I think not related to above:
/proxymap[9105]: error: open /etc/postfix/mysql-virtual_forwardings.cf:
Permission denied
/proxymap[9105]: error: open /etc/postfix/mysql-virtual_email2email.cf:
Permission denied
/proxymap[9105]: error: open /etc/postfix/mysql-virtual_mailboxes.cf:
Permission denied
It is a multi instance configuration with postfix 2.10 and mysql lookup
tables are shared between instances. Until today I’m not even put the
question that it is possible to share because it worked … ?
After update to 2.10 (4 days ago) I don’t change anything and worked
without problems until today.
Without proxy: work.
отсюда:http://comments.gmane.org/gmane.mail.postfix.user/235281
Понимаю, что проблема с использованием proxymap у человека появилась после обновления Postfix до 2.10.
root@smtp:/var/log# postconf mail_version
mail_version = 2.7.1
Хотя у меня постфикс 2.7.1, но я хочу попробовать отключить proxymap. Подскажите как правильно это сделать?
Проверил на тестовой машине. Все должно работать:
root@debian-squeeze:/etc/postfix# ls -la
итого 88
drwxr-xr-x 4 root root 4096 Апр 18 13:01 .
drwxr-xr-x 74 root root 4096 Апр 18 12:58 ..
drwxr-xr-x 2 root root 4096 Апр 18 12:59 config
-rw-r--r-- 1 root root 318 Апр 18 12:58 dynamicmaps.cf
-rw-r--r-- 1 root root 1473 Апр 18 13:01 main.cf
-rw-r--r-- 1 root root 5301 Апр 18 12:58 master.cf
-rw-r--r-- 1 root root 18992 Май 5 2011 postfix-files
-rwxr-xr-x 1 root root 8729 Май 5 2011 postfix-script
-rwxr-xr-x 1 root root 24256 Май 5 2011 post-install
drwxr-xr-x 2 root root 4096 Май 5 2011 sasl
root@debian-squeeze:/etc/postfix#
root@debian-squeeze:/etc/postfix/config# ls -la
итого 12
drwxr-xr-x 2 root root 4096 Апр 18 12:59 .
drwxr-xr-x 4 root root 4096 Апр 18 13:01 ..
-rw-r----- 1 root postfix 143 Апр 18 13:00 mysql-virtual_forwardings.cf
root@debian-squeeze:/etc/postfix/config#
root@debian-squeeze:/etc/postfix/config# apt-cache show postfix
Package: postfix
Priority: extra
Section: mail
Installed-Size: 3340
Maintainer: LaMont Jones
Architecture: amd64
Version: 2.7.1-1+squeeze1
Может на каталог у вас нет прав?
Проблема у вас не в proxymap. Проблема с доступом к файлу:
Apr 17 14:49:33 smtp postfix/proxymap[1813]: fatal: open /etc/postfix/config/mysql-virtual_forwardings.cf: Permission denied
Прав более чем:
root@smtp:/etc/postfix# ls -la
итого 100
drwxr-xr-x 4 root root 4096 Апр 17 10:57 .
drwxr-xr-x 86 root root 4096 Апр 18 10:56 ..
drwxr-x— 2 root root 4096 Апр 16 15:29 config
-rw-r–r– 1 root root 425 Апр 16 10:35 dynamicmaps.cf
-rw-r–r– 1 root root 14837 Апр 17 14:19 main.cf
-rw-r–r– 1 root root 5939 Апр 16 16:47 master.cf
-rw-r–r– 1 root root 18992 Май 5 2011 postfix-files
-rwxr-xr-x 1 root root 8729 Май 5 2011 postfix-script
-rwxr-xr-x 1 root root 24256 Май 5 2011 post-install
drwxr-xr-x 2 root root 4096 Апр 16 16:06 sasl
root@smtp:/etc/postfix# mc
root@smtp:/etc/postfix/config# ls -la
итого 44
drwxr-x— 2 root root 4096 Апр 16 15:29 .
drwxr-xr-x 4 root root 4096 Апр 17 10:57 ..
-rwxr-xr-x 1 root postfix 0 Апр 16 15:27 access_vip_sender
-rwxr-xr-x 1 root postfix 0 Апр 16 15:26 black_client_ip
-rwxr-xr-x 1 root postfix 3017 Апр 16 15:29 block_dsl
-rwxr-xr-x 1 root postfix 779 Апр 16 15:28 helo_checks
-rwxr-xr-x 1 root postfix 645 Апр 16 15:28 mx_access
-rwxr-xr-x 1 root postfix 133 Апр 16 12:11 mysql-virtual_domains.cf
-rwxr-xr-x 1 root postfix 119 Апр 16 12:18 mysql-virtual_email2email.cf
-rwxr-xr-x 1 root postfix 132 Апр 18 10:29 mysql-virtual_forwardings.cf
-rwxr-xr-x 1 root postfix 188 Апр 16 12:17 mysql-virtual_mailboxes.cf
-rwxr-xr-x 1 root postfix 128 Апр 17 11:50 mysql-virtual_transports.cf
-rwxr-xr-x 1 root postfix 0 Апр 16 15:26 white_client
-rwxr-xr-x 1 root postfix 29 Апр 16 15:30 white_client_ip
вот часть моего main.cf :
#Список доменов, для которых почта будет доставляться локально, а не пересылаться на другой хост.
mydestination = smtp.tele7.perm.ru, localhost, localhost.tele7.perm.ru
у вас:
mydestination = $myhostname, localhost, localhost.$mydomain, $myhostname.$mydomain
может я не указал вот это $myhostname.$mydomain (не понимаю как правильно описать для себя) и в этом дело?
Вот это вам поможет:
chmod 755 /etc/postfix/config/
Да это помогло, хотя сам мог догадаться я.
Щас вот другой какой-то косяк:
Apr 18 16:53:50 smtp postfix/smtpd[2003]: fatal: open database /etc/postfix/config/white_client_ip.db: No such file or directory
Какая база и откуда это вылезло буду разбираться. Спасибо за поддержку.
Вдогонку: после
chmod 755 /etc/postfix/config/
в папке /etc/postfix/config/ появился файл mysql-virtual_forwardings.db
подозреваю, что именно из-за первоначальных разрешений и появлялась та ошибка.
Сори за нубство
Подскажите чем завершилась проблема “mail imapd-ssl: Unexpected SSL connection shutdown.”Не как не могу решить. Debian 8.1
Здравствуйте.