Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> почтовые системы —> FreeBSD Mail Howto

Настройка почтовой системы на freebsd. Часть I.

Автор: ALex_hha.


Народ обновил статью, читать здесь

Вступление
Данный документ описывает установку и настройку почтовой системы на основе Postfix, Cyrus-SASL, MySQL, Courier-IMAP, postfixadmin, clamav, spamassassin, amavisd-new.
При этом нет разницы, сколько почтовых доменов заведено в системе, как называются пользователи и так далее, с системными они никак не пересекаются.

Все логи и прочее были взяты с рабочей системы. Я ничего не выдумывал и не придумывал - это все работает реально. В качестве базовой системы использовалась FreeBSD-5.4. Которая была установлена на VMware. Но после нового года я и сам хочу перейти с linux на freebsd, но скорее всего уже на freebsd-6.0, так что мне эта статья тоже пригодится ;)

Но аналогично построенные системы работают на CentOS-4.0 и на других RedHat подобных дистрибутивах. Сейчас данная связка у меня работает больше года на СentOS-4.0, пока ни одного сбоя замечено не было ;).
Поэтому не вижу причин, почему бы им не работать на других системах. Теоретически должна работать на любой unix системе.

Совет всем линуксоидам
Все программы и пакеты для linux систем вы можете найти на след. сайтах:
http://www.rpmfind.net/
http://www.rpmseek.com/index.html

Не собирайте ничего из исходников tar.bz2 или tar.gz. Лучше скачайте src.rpm и соберите rpm пакет. Лично я, собираю все пакеты на VMware, а на сервер ставлю уже готовые rpm пакеты. Очень удобно и система не засоряется.

Делается это очень просто:

# rpm -ivh squid-2.5.STABLE12-1.src.rpm

Правим под свои нужды spec файл, в данном случае /usr/src/redhat/SPECS/squid.spec. Это обычный текстовый файл, так что никаких проблем возникнуть не должно. Как правило, надо найти строки вида:
%configure --with-xxx --enable-xxx и добавить необходимые параметры. Затем

# cd /usr/src/redhat/SPECS
# rpmbuild -ba --target=i686 squid.spec

После окончания сборки, забираем готовые пакеты в /usr/rsc/redhat/RPMS/i686 и затем производим обновление или новую установку, зависит от того, была ли в системе уже установлена данная программа.

# rpm -Uvh squid-2.5.STABLE12-1.i686.rpm

Перед тем, как задавать вопросы, неплохо бы было прочитать документацию к приложениям, которые мы будем настраивать.
На вопросы типа - "А у меня, что-то не работает, хотя я сделал все так, как ты написал?", я отвечать принципиально не буду.

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

Имеем freebsd-5.4. Минимальная инсталляция.

# uname -a
FreeBSD freebsd.turbogaz.net 5.4-RELEASE FreeBSD 5.4-RELEASE

192.168.127.230 - внутренний ip
217.20.223.100 - внешний ip, выданный провайдером.

Итак, мы будем настраивать следующую связку:
postfix - имхо один из лучших MTA на сегодняшний день [1];
MySQL - бесплатная РСУБД, в ней мы будем хранить все данные о пользователях (логин, пароль, имя почтового ящика, квота и т.п.) [2];
cyrus-sasl - модуль аутентификации [3];
courier-imap - pop3/imap сервер [4];
courier-authlib - модуль аутентификации для courier-imap [5];
openssl - библиотека, обеспечивающая поддержку безопасных соединений [6];
postfixadmin - web интерфейс для управления почтовыми ящиками [7];
apache - имхо самый лучший веб сервер [8];
php - скриптовый язык, необходим для работы postfixadmin и phpMyAdmin [9];

Настройка следующих пакетов, будет описана во второй части данного howto.
clamav - имхо лучший бесплатный антивирус на unix системах [10];
spamassassin - антиспам [11];
amavisd-new - посредник между spamassassin и clamav [12];
openwebmail - web интерфейс для почты [13];

Итак, начнем по порядку.
//perl-5.8.7 - 9.4 Mb

# cd /usr/ports/lang/perl-5.8/
# make -DENABLE_SUIDPERL
# make install clean

//openssl-0.9.8a - 3.1 Mb

# cd /usr/ports/security/openssl
# make install clean

//mysql-server-4.1.15 - 16 Mb

# cd /usr/ports/databases/mysql41-server/
# make BUILD_OPTIMIZED=yes WITH_OPENSSL=yes WITH_CHARSET=utf8
# make install clean

Производим первоначальную настройку MySQL сервера. Настраиваем запуск MySQL вместе с системой

# echo mysql_enable="YES" >> /etc/rc.conf

Создаем системные таблицы

# mysql_install_db

Меняем владельца папки /var/db/mysql на mysql:mysql, по умолчанию им является root:whell, иначе MySQL не запустится.

# chown -R mysql:mysql /var/db/mysql

Следуя советам MySQL, задаем пароль для суперпользователя root

# mysqladmin -u root password 'mysqladmin'
# mysqladmin -u root -h freebsd.turbogaz.net password 'mysqladmin'

Создаем конфигурационный файл, исправляем по своему желанию

# cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf

Единственное, что я подправил, так это указал лог файл.
[mysqld]
log=/var/log/mysql.log

Создаем соответствующий файл и выставляем необходимые права

# touch /var/log/mysql.log
# chown mysql:mysql /var/log/mysql.log

Запускаем MySQL

# /usr/local/share/mysql/mysql.server start

Все, с MySQL мы разобрались, идем дальше.

//cyrus-sasl-2.1.21 - 1,5 Mb

# cd /usr/ports/security/cyrus-sasl2/
# make -DWITH_MYSQL -DWITH_AUTHDAEMON -DWITHOUT_OTP

При конфигурации обращаем внимание на следующие строчки
checking PLAIN... enabled
checking ANONYMOUS... enabled
checking LOGIN... enabled
checking NTLM... enabled
checking PASSDSS... disabled
checking SQL... enabled
checking for mysql_select_db in -lmysqlclient... yes

# make install clean

В самом конце инсталляции увидим след. строчки
You should also check the
     /usr/local/lib/sasl2/*.conf files for the correct pwcheck_method.


Последуем их совету и создадим необходимый файл.

# touch /usr/local/lib/sasl2/smtpd.conf 

После осмысленного прочтения след. документа
/usr/local/share/doc/cyrus-sasl2/html/options.html у нас должен получиться файл со след. содержимым:

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
log_level: 3
sql_engine: mysql
sql_hostname: localhost
sql_user: postfix
sql_passwd: postfix
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'

log_level: 3 - очень удобно при отладке, после настройки системы его лучше убрать.

//courier-authlib-0.57 - 1,9 Mb

# cd /usr/ports/security/courier-authlib/
# make config
х AUTH_MySQL
# make install clean

При конфигурировании courier-authlib-mysql-0.57 обращаем внимание на следующие строки
configure: WARNING: -----------------------------------------------------
configure: WARNING: expect not found - will not be able to change passwds
configure: WARNING: in webmail
configure: WARNING: -----------------------------------------------------

Если вам не нужна эта возможность, то продолжаем дальше, иначе сначала устанавливаем expect

# cd /usr/ports/lang/expect/
# make install clean

Внимание сборка этого пакета тянет за собой много зависимостей, а именно:
tk-8.4.11,2 - 3,1 Mb
tcl-8.4.11,1 - 3,3 Mb
xorg-libraries-6.8.2 - 41 Mb
freetype2-2.1.10_1 - 1 Mb
fontconfig-2.3.2,1 - 960 Kb
expat-1.95.8 - 336 Kb
Итого ~ 50 Mb. Так что, если с трафиком напряг, то, как я уже говорил раннее, можно пропустить этот шаг.

Если с трафиком проблем нет, то после сборки expect возвращаемся к courier-authlib и пересобираем его.

# cd /usr/ports/security/courier-authlib/
# make install clean

Настраиваем courier-authlib. Делаем автоматический запуск authdaemond при старте системы

# echo courier_authdaemond_enable="YES">> /etc/rc.conf

После осмысленного прочтения след. документов:

/usr/local/share/doc/courier-authlib/README.authmysql.html
/usr/local/share/doc/courier-authlib/README_authlib.html 

Редактируем следующие файлы:
/usr/local/etc/authlib/authdaemonrc
/usr/local/etc/authlib/authmysqlrc

# cat /usr/local/etc/authlib/authdaemonrc 
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"
LOGGEROPTS=""


# cat /usr/local/etc/authlib/authmysqlrc
MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          postfix
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        mailbox
MYSQL_CLEAR_PWFIELD     password
MYSQL_UID_FIELD         '1111'
MYSQL_GID_FIELD         '1111'
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        '/var/spool/mail/virtual'
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_WHERE_CLAUSE      active='1'

Запускаем authdaemond

# /usr/local/etc/rc.d/courier-authdaemond.sh start
Starting courier_authdaemond.

Если вы все правильно настроили, то в логах должно быть след.

# cat /var/log/maillog | grep authdaemond
Nov 20 15:59:52 freebsd authdaemond: modules="authmysql", daemons=5
Nov 20 15:59:52 freebsd authdaemond: Installing libauthmysql
Nov 20 15:59:52 freebsd authdaemond: Installation complete: authmysql

//courier-imap-4.0.6 - 3 Mb

# cd /usr/ports/mail/courier-imap/
# make config
х OPENSSL
х TRASHQOUTA
х AUTH_MYSQL
# make install clean

В зависимости от того, что вы хотите использовать pop3 или imap, редактируем соответствующие файлы. Лично я использую pop3 поэтому редактируем след. файл /usr/local/etc/courier-imap/pop3d

# cat /usr/local/etc/courier-imap/pop3d
PIDFILE=/var/run/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
POP3AUTH="CRAM-MD5 PLAIN LOGIN CRAM-SHA1 CRAM-SHA256"
POP3AUTH_ORIG="CRAM-MD5 PLAIN LOGIN CRAM-SHA1 CRAM-SHA256"
POP3AUTH_TLS=""
POP3AUTH_TLS_ORIG=""
POP3_PROXY=0
PORT=110
ADDRESS=192.168.127.230
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=pop3d"
DEFDOMAIN="@turbogaz.net"
POP3DSTART=YES
MAILDIRPATH=Maildir

Если нужно, чтобы пользователи могли просматривать почту из вне, то в поле ADDRESS указываем внешний ip, в моем случае 217.20.223.100

Настраиваем автоматический запуск pop сервера при старте системы

# echo courier_imap_pop3d_enable="YES" >> /etc/rc.conf

Запускаем pop сервер

# /usr/local/etc/rc.d/courier-imap-pop3d.sh start
Starting courier_imap_pop3d.

Ну а теперь собираем сердце нашей системы
//postfix-2.2.5 - 2,3 Mb

# cd /usr/ports/mail/postfix
# make install clean
х SASL2 
х TLS
х MySQL
х VDA

В конце установки на вопрос
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?
Я ответил no.

Инициализируем базу данных псевдонимов

# newaliases

Редактируем конфигурационные файлы postfix, а именно:
/usr/local/etc/postfix/master.cf
/usr/local/etc/postfix/main.cf

Создаем необходимые файлы

# mkdir /usr/local/etc/postfix/mysql

# cat /usr/local/etc/postfix/mysql/alias_maps.conf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address


# cat /usr/local/etc/postfix/mysql/mailbox_limit_maps.conf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
additional_conditions = and active = '1'


# cat /usr/local/etc/postfix/mysql/domains_maps.conf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain


# cat /usr/local/etc/postfix/mysql/mailbox_maps.conf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = and active = '1'


# cat /usr/local/etc/postfix/mysql/transport_maps.conf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = transport
where_field = domain

# chown -R root:postfix /usr/local/etc/postfix/mysql/

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

# pw group add virtual -g 1111
# pw user add virtual -g virtual -s /sbin/nologin -u 1111
# mkdir -p /var/spool/mail/virtual
# chown virtual:virtual /var/spool/mail/virtual/

Примеры main.cf и master.cf
файл скачан размер размещён примечание
main.cf_master.cf.zip
5478 10.4kb 2005-11-23 Конфигурационные файлы main.cf и master.cf

Запускаем postfix

# /usr/local/etc/rc.d/postfix.sh start
postfix/postfix-script: starting the Postfix mail system

Если все правильно настроили, то в логах должно быть след.

# cat /var/log/maillog | grep postfix
Nov 21 11:57:20 freebsd postfix/postfix-script: starting the Postfix mail system
Nov 21 11:57:20 freebsd postfix/master[9213]: daemon started -- version 2.2.5, 
configuration /usr/local/etc/postfix

Устанавливаем веб сервер apache, он нам понадобится для postfixadmin.
//apache-2.0.55 - 4,5 Mb

# cd /usr/ports/www/apache2
# make -DWITH_MOD_SSL
# make install clean

Делаем автоматический запуск apache сервера при старте системы

# echo apache2_enable="YES" >> /etc/rc.conf

Редактируем файл /usr/local/etc/apache2/httpd.conf под свои нужды.

Устанавливаем php
//php-4.1.1 - 4 Mb

# cd /usr/ports/lang/php4
# make config
х APACHE2
х MULTIBYTE
х OPENSSL
# make install clean

Обращаем внимание на след. строчки

Make sure index.php is part of your DirectoryIndex.

You should add the following to your Apache configuration file:

AddType application/x-httpd-php .php

Вносим необходимые изменения в httpd.conf

# cat /usr/local/etc/apache2/httpd.conf| grep DirectoryIndex
# DirectoryIndex: sets the file that Apache will serve if a directory
DirectoryIndex index.php index.html index.html.var

# cat /usr/local/etc/apache2/httpd.conf| grep httpd-php
AddType application/x-httpd-php .php

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

# cd /usr/ports/lang/php4-extensions/
# make config
х BCMATH
х BZ2
х CALENDAR
х CTYPE
х EXIF
х GD
х GETTEXT
х GMP
х ICONV
х MBSTRING
х MCAL
х MYSQL
х NCURSES
х OPENSSL
х OVERLOAD
х PCRE
х POSIX
х SESSIONS
х TOKENIZER
х XML
х ZLIB
# make install clean

Проверяем связку apache2 + php4. Создаем тестовый файл, со след. содержимым.

# touch /usr/local/www/data/test.php
# cat /usr/local/www/data/test.php
<?
   phpinfo();
?>

Запускаем apache

# /usr/local/etc/rc.d/apache2.sh start

В любимом интернет проводнике набираем
http://192.168.127.230/test.php
Если вы видите информацию о php и apache, значит, все работает.

//postfixadmin-2.1.0 - 160 Kb

# cd /usr/ports/mail/postfixadmin
# make install clean

Внимательно читаем файл /usr/local/www/postfixadmin/INSTALL.TXT. После этого следуем инструкциям и настраиваем postfixadmin

# cd /usr/local/www/postfixadmin
# chmod 640 *.php *.css
# cd /usr/local/www/postfixadmin/admin/
# chmod 640 *.php .ht*
# cd /usr/local/www/postfixadmin/images/
# chmod 640 *.gif *.png
# cd /usr/local/www/postfixadmin/languages/
# chmod 640 *.lang
# cd /usr/local/www/postfixadmin/templates/
# chmod 640 *.tpl
# cd /usr/local/www/postfixadmin/users/
# chmod 640 *.php

Добавляем алиас в httpd.conf

Alias /postfix-admin/ "/usr/local/www/postfixadmin/"
<Directory "/usr/local/www/postfixadmin">
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

<Directory "/usr/local/www/postfixadmin/admin/">
    AuthType Basic
    AuthName "Postfix Admin"
    AuthUserFile /usr/local/www/postfixadmin/admin/.htpasswd
    Require valid-user
</Directory>

И изменяем пароль по умолчанию, чтобы кулхацкеры, не смогли использовать наш postfixadmin

# rm -f /usr/local/www/postfixadmin/admin/.htpasswd
# htpasswd -c /usr/local/www/postfixadmin/admin/.htpasswd postfixadmin 
New password: ******
Re-type new password: ******
Adding password for user postfixadmin

Создаем необходимые таблицы.
Примечание: Настоятельно рекомендую поменять пароли в файле DATABASE_MYSQL.TXT для пользователей postfix и postfixadmin.

# cd /usr/local/www/postfixadmin
# mysql -u root -p < DATABASE_MYSQL.TXT

Редактируем файл /usr/local/www/postfixadmin/config.inc.php. Затем проверяем postfixadmin, набрав в любом интернет проводнике
http://192.168.127.230/postfix-admin/

Если все правильно настроено, то мы увидим примерно след.

Postfix Admin Setup Checker 1.0.0
Running software:

- PHP version 4.4.1

- Apache/2.0.55 (FreeBSD) PHP/4.4.1

Checking for dependencies:

- Magic Quotes: ON

- Depends on: presence config.inc.php - OK

- Depends on: MySQL 3.23, 4.0 - OK

- Depends on: session - OK

- Depends on: pcre - OK

Everything seems fine... you are ready to rock & roll!
Make sure you delete this setup.php file!
Also check the config.inc.php file for any settings that you might need to change!
Click here to go to the admin section (make sure that your .htaccess is setup 
properly)

Переходим по ссылке admin section и настраиваем систему. Создаем домен - turbogaz.net и тестовый ящик. Например, test@turbogaz.net, он нам пригодится для оптытов.
Примечание: логин и пароль по умолчанию - admin/admin

Примечание: если вы выбрали русский язык, то придется немного подправить файл
/usr/local/www/postfixadmin/templates/admin_menu.tpl, т.к. иначе меню налезают друг на друга.
После строки
<li><a target="_top" href="backup.php"><?php print $PALANG['pAdminMenu_backup']; ?></a></li>
добавить следующее
<br><br><br><br>

А здесь берем исправленный файл для русского языка
ALex_hha Edition
файл скачан размер размещён примечание
ru.lang.zip
2523 3.6kb 2005-11-23 ru.lang ALex_hha edition :)

Если все правильно настроено, то в /var/spool/mail/virtual/ должны появиться две папки:
/var/spool/mail/virtual/turbogaz.net
/var/spool/mail/virtual/turbogaz.net/test@turbogaz.net

Проверяем роботу почтовой системы.
Отправка письма

Nov 21 13:33:17 freebsd postfix/smtpd[1068]: connect from 
bdc.turbogaz.net[192.168.127.251]
Nov 21 13:33:17 freebsd postfix/smtpd[1068]: 8CC7D40F1: 
client=bdc.turbogaz.net[192.168.127.251], sasl_method=CRAM-MD5, 
sasl_username=test@turbogaz.net
Nov 21 13:33:17 freebsd postfix/cleanup[1070]: 8CC7D40F1:
message-id=<308528830.20051121124849@turbogaz.net>
Nov 21 13:33:17 freebsd postfix/qmgr[1007]: 8CC7D40F1: 
from=<test@turbogaz.net>, size=677, nrcpt=1 (queue active)
Nov 21 13:33:17 freebsd postfix/smtpd[1068]: disconnect 
from bdc.turbogaz.net[192.168.127.251]
Nov 21 13:33:17 freebsd postfix/virtual[1071]: 8CC7D40F1: 
to=<test@turbogaz.net>, relay=virtual, delay=0, status=sent 
(delivered to maildir)
Nov 21 13:33:17 freebsd postfix/qmgr[1007]: 8CC7D40F1: removed

Получение письма

Nov 21 13:42:22 freebsd authdaemond: Authenticated: sysusername=<null>,
sysuserid=1111, sysgroupid=1111, homedir=/var/spool/mail/virtual,
address=test@turbogaz.net, fullname=Test account,
maildir=turbogaz.net/test@turbogaz.net/, quota=51200000, options=<null>
Nov 21 13:42:22 freebsd pop3d: LOGIN, user=test@turbogaz.net, ip=[192.168.127.251]
Nov 21 13:42:22 freebsd pop3d: LOGOUT, user=test@turbogaz.net, 
ip=[192.168.127.251], top=0, retr=752, time=0

После настройки MTA рекомендую проверить систему на http://test.nettools.ru/, на возможность использования почтового сервера в качестве пересыльщика почты (mail relay). В поле Mail Relay вводим ip или dns имя своего почтового сервера и нажимаем на кнопку ОК. После некоторого времени система напишет результат. Если все настроенно правильно, то мы должны увидеть след:

Проверка почтового сервера: 217.20.223.100
Имя: 217.20.223.100
IP: 217.20.223.100

Подключение... OK
Запрос 	Ответ
220     Turbogaz Mail Server

Тест 1	
From: <spamtest@mail.nettools.ru>   250 Ok
To: <relaytest@nettools.ru>         554 : Relay access denied
...

Все тесты пройдены успешно.
Сервер не является публичным пересыльщиком почты.

Если у вас такое же сообщение, то поздравляю вас, ваша почтовая ситема готова к работе :)

P.S.
To be continued


Ссылки:
[1] http://www.postfix.org/
[2] http://www.mysql.com/
[3] http://asg.web.cmu.edu/sasl/
[4] http://www.courier-mta.org/imap/
[5] http://www.Courier-MTA.org/authlib/
[6] http://www.openssl.org/
[7] http://www.high5.net/postfixadmin
[8] http://httpd.apache.org/
[9] http://www.php.net/
[10] http://www.clamav.net/
[11] http://spamassassin.apache.org/
[12] http://www.ijs.si/software/amavisd/
[13] http://turtle.ee.ncku.edu.tw/openwebmail/



размещено: 2005-11-21,
последнее обновление: 2006-11-20,
автор: ALex_hha


belui_s, 2005-12-14 в 16:54:46

pw group add vitual -g 1111
здесь имеется ввиду virtual ....мелочь но все равно не приятно

Deus, 2005-12-19 в 14:43:21

эм... а про квоты почтовых ящиков где посмотреть?

ALex_hha, 2005-12-20 в 14:32:45

В postfixadmin при создании ящика, можно указать и квоту

belui_s, 2005-12-21 в 21:53:15

Когда ждать вторую часть??????????

ALex_hha, 2005-12-22 в 11:05:39

После нового года, сейчас очень много работы :(

mirlas, 2006-01-01 в 18:53:59

Мега респект автору: кратко, четко и по делу. Желаю счастливого нового года. Буду ждать вторую часть.. :)

fr33m@n, 2006-01-07 в 23:54:09

Да, респект, причем огромный! Автор — лучший!

ALex_hha, 2006-01-10 в 11:48:37

Народ есть некоторые проблемы с настройкой связки spamassassin + amavisd-new + clamav. Если кто настраивал на freebsd стучитесь в аську 282891476, есть несколько вопросов

ALex_hha, 2006-01-16 в 12:44:35

Все наконец то дописал вторую часть. Читаем здесь -
http://turbogaz.kharkov-ua.com/unix/mail/

По возможности выложу и здесь.

ScorpioN, 2006-01-19 в 18:06:08

Да Алексей лучший. Так чётко и безошибочно пошагово выложить эту тему по моему ещё никому не удавалось. Маладец.Я сам лично на своей машине всё проверил написанное здеся и всё реально работает. Что ещё сказать, супер.

grave, 2006-01-28 в 17:55:03

не работает урл на вторую часть..

ALex_hha, 2006-01-29 в 13:15:40

Ага. То у нас электричество вырубали, ну и сервер соответственно не работал :(.

Ашраф, 2006-02-17 в 9:55:52

Отлично,просто супер я поставил всю ету связку все четко заработало ,спасибо большое Алексей.

ALex_hha, 2006-02-17 в 13:58:17

Народ, а кто-нибудь проверял работу аутглюка с патчем для cyrus-sasl2? Вроде говорят, он перестает работать.

Константин, 2006-05-08 в 20:18:21

Класная, статья, все просто и понятно.
http://turbogaz.kharkov-ua.com/unix/mail/mail-howto-p2.php
Почитал вторую часть - тоже круто :-)
Интересует когда выйдет третья часть???

Респект Костя

Константин, 2006-05-08 в 20:28:22

Класная, статья, все просто и понятно.
http://turbogaz.kharkov-ua.com/unix/mail/mail-howto-p2.php
Почитал вторую часть - тоже круто :-)
Интересует когда выйдет третья часть???

Респект Костя

ALex_hha, 2006-05-10 в 9:56:30

Черновик уже готов, хотел сегодня выложить, но не получилось. Последние 4 дня просто ужасное настроение, ничего не хочется делать :(. В понедельник думаю будет готово.

Flash, 2006-06-08 в 9:20:01

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

Flash, 2006-06-08 в 9:20:43

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

Flash, 2006-06-08 в 9:22:42

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

Flash, 2006-06-08 в 9:22:43

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

lissyara, 2006-06-08 в 9:39:43

Просто в новых версиях синтаксис изменили...

Flash, 2006-06-08 в 9:49:17

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

Flash, 2006-06-08 в 9:49:55

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
              ^^^^^ у меня не работало пока не написал mysql вместо sql

Flash, 2006-06-09 в 10:02:02

Хотя насчет синтаксиса это вопрос! скачал патчи *.c для SASL и пересобрал следующим образом:
make WITHOUT_NTLM=yes WITH_MYSQL=yes WITHOUT_OTP=yes ENABLE_SQL=yes
Теперь все работает как надо, с auxprop_plugin: sql

ara, 2006-06-19 в 13:27:05

Добавлено: Пн Июн 19, 2006 1:19 pm    Заголовок сообщения: postfix+sasl2+mysql    

--------------------------------------------------------------------------------

postfix/smtpd: unable to dlopen /usr/local/lib/sasl2/libsql.so: shared object "libmysqlclient.so.14" not found, required by "libsql.so"

в конфиге включил mysql

что не хватает
скажите пожалуйста спасибо

Pahan, 2006-06-26 в 12:52:28

Очень полезная статья, но вот что я обнаружил:

1. Хоть в конфиге postfixadmin языка я не менял, он у меня все равно русский.

2. В конфиге /usr/local/etc/authlib/authmysqlrc переменную MYSQL_CLEAR_PWFIELD - комментирую, а вот в MYSQL_CRYPT_PWFIELD пишу password, т.к в Mysql все пароли в зашифрованном виде.

3. У меня почтовые ящики со всех доменов создаются в каталоге /var/spool/mail/virtual. Каталогов для каждого домена нет. Наверно все верно, т.к. правильно работает.

maximuss, 2006-08-30 в 11:48:08

maximuss@turbogaz[p1]:~>uname -pr
6.1-RELEASE i386
Не могу разобраться, есть два идентичных почтовых ящика
postmaster@turbogaz.net,  admin@turbogaz.net. Оба заведены через postfixadmin. Для первого все работает, отправка-получения, для второго - в логи, при попытки отправить почту на адрес admin@turbogaz.net:
554 <postmaster@turbogaz.net>: Sender address rejected: Access denied; from=<postmaster@turbogaz.net> to=<admin@turbogaz.net> proto=SMTP helo=<maximuss>

Alexandr, 2006-11-09 в 11:52:19

А когда ждать связку Cyrus+Sasl2+MySQL+Postfixadmin+sqrellmail :-) ?????
очень хочется

Happy_demon, 2006-11-16 в 9:42:14

статья-супер, но куда делись упоминания про sendmail_enable="NO" (или это уже не нужно)  и где echo postfix_enable="YES" >> /etc/rc.conf

ALex_hha, 2006-11-21 в 10:10:22

Народ большая просьбя, если обращаетесь ко мне, то не пишите - "Я все сделал как у тебя написано, но ничего не работает". Буду сразу вносить в игнор.

Валентин, 2006-11-29 в 18:23:51

При сборке courier-imap была ошибка:

Linking maildirkw
/usr/local/lib/libfam.a(fam.o)(.text+0x35): In function `FAMOpen2':
: undefined reference to `operator new(unsigned int)'
/usr/local/lib/libfam.a(fam.o)(.text+0x5f): In function `FAMOpen2':
: undefined reference to `operator delete(void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x8e): In function `FAMOpen2':
: undefined reference to `operator delete(void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x150): In function `FAMClose':
: undefined reference to `operator delete(void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x25e): In function
`FAMMonitor(FAMConnection*, char const*, FAMRequest*, void*, int)':
: undefined reference to `operator delete[](void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x279): In function
`FAMMonitor(FAMConnection*, char const*, FAMRequest*, void*, int)':
: undefined reference to `operator delete[](void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x4c8): In function
`FAMMonitorCollection':
: undefined reference to `operator delete[](void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x4e3): In function
`FAMMonitorCollection':
: undefined reference to `operator delete[](void*)'
/usr/local/lib/libfam.a(fam.o)(.text+0x6d4): In function
`GroupStuff::GroupStuff()':
: undefined reference to `operator new[](unsigned int)'

лечится так:

cd /usr/local/lib/
mv libfam.a libfam.a.old
ln -s libfam.so libfam.a

станислав, 2006-12-05 в 14:49:19

по данной статье не получилось на 6.1

а вот по обновленной статье на турбогазе все прошло на ура
(если не считать некоторые недомолвки в описании)

v0vik, 2006-12-21 в 23:09:56

Долго трахался с openwebmail на postfix + mysql ;))) заработало...
Кому интересно -
openwebmail.conf:
auth_module        auth_mysql_vmail.pl
auth_withdomain        yes

auth_mysql_vmail.conf:
mysql_server        127.0.0.1
mysql_database        postfix
mysql_user        postfix
mysql_passwd        9rSzbAQr
password_hash_method    plaintext

userlist        SELECT CONCAT(mailbox, "@", domain) FROM mailbox ORDER BY mailbox
user_password   SELECT password FROM mailbox WHERE CONCAT(mailbox, "@", domain) = '_user_'
user_homedir    SELECT "/var/mail/virtual/_domain_/_user_"
unix_user       SELECT "postfix"
change_password UPDATE mailbox SET password='_new_password_' WHERE CONCAT(mailbox, "@", domain) = '_user_'

Если нужны подробности - пишите в личку.

VaD, 2007-01-09 в 23:46:54

Ставил по "обновленной статье" часть1,вот с чем столкнулся:

1. postfixadmin:config.inc.php ('database_type'=mysqli), получилось поднять только с параметром 'database_type'=mysql
2. пока ковырял postfixadmin, при очередном перегрузе apache вот что мне выдало :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mail# apachectl start
Syntax error on line 208 of /usr/local/etc/apache/httpd.conf:
API module structure `define_module' in file /usr/local/libexec/apache/mod_define.so is garbled - perhaps this is not an Apache module DSO?
/usr/local/sbin/apachectl start: httpd could not be started
mail#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
и :
httpd -l
Compiled-in modules:
 http_core.c
 mod_so.c
suexec: disabled; invalid wrapper /usr/local/sbin/suexec

чего ранее не наблюдалось (нехватаеть mod_deflate.c)
Причем такая фигня с апачем на двух серверах случилась(один за лругим  freebsd5.5)

перекомпилял, 1 день - полет ормальный ...

fabi, 2007-01-10 в 2:14:17

поставил\настроил по статье, напоролся на такие грабли:
в /var/spool/mail ничего не создается!
в логах:
Jan 10 00:31:49 mail pop3d: Connection, ip=[192.168.89.3] Jan 10 00:31:49 mail authdaemond: received auth request, service=pop3, authtype=login
Jan 10 00:31:49 mail authdaemond: authmysql: trying this module
Jan 10 00:31:49 mail authdaemond: SQL query: SELECT username, password, "", '1981', '1981', '/var/spool/mail', maildir, quota, name, "" FROM mailbox WHERE username = "maxim" AND (active='1')
Jan 10 00:31:49 mail authdaemond: zero rows returned
Jan 10 00:31:49 mail authdaemond: no password available to compare
Jan 10 00:31:49 mail authdaemond: authmysql: REJECT - try next module
Jan 10 00:31:49 mail authdaemond: FAIL, all modules rejected Jan 10 00:31:54 mail pop3d: Disconnected, ip=[192.168.89.3]
как лечить ?
да кстати тоже такая же фигня:
(..\postfixadmin\config.inc.php ->>'database_type'=mysql (а должно mysqli)

100kg, 2007-02-06 в 6:36:07

ээээ turbo gaz! звучало супер :)))

lexy, 2007-04-26 в 8:25:39

при обслуживании большого кол-ва виртуальных доменов и высокой загруженности сервака, вместо подобных обращений к базе в main.cf:
  mysql:/usr/local/etc/postfix/mysql/alias_maps.conf
рекомендую использовать
  proxy:mysql:/usr/local/etc/postfix/mysql/alias_maps.conf
иначе MySQL сервер не успевает обрабатывать запросы и часть почты отбрасывается

ALex_hha, 2007-04-26 в 10:11:20

Что в вашем понятии большое количество доменов и высокая загруженность сервера?

Гость, 2007-06-22 в 12:18:37

"http://turbogaz.kharkov-ua.com/unix/mail/mail-howto-p2.php"

не работает ужо ?

CAXAPOB, 2007-08-27 в 14:57:28

Спасибо! Делал всё по этой статье, только без SASL. Всё получилось. Единственный трабл - не работает smtp-аутентификация. То есть почта отправляется, но вот логин и пароль сервер у клиента при этом не запрашивает. Можно ли без прикручивания SASL сделать так, чтобы запрашивал? Нужна обычная plain аутентификация.

ALex_hha, 2007-09-08 в 12:57:34

http://turbogaz.kharkov-ua.com/unix/mail/mail-howto-p2.php"
не работает ужо ?
давно, умер там сервак ;) Все, что смог я перенес на www.sys-adm.org.ua

> Можно ли без прикручивания SASL сделать так, чтобы запрашивал?
нет, только с SASL

DJpoz, 2007-10-10 в 17:23:20

У меня проблема пишет
hello_access.db No such file or directory
помогите кто знает

Pasystem, 2007-10-19 в 7:49:34

Тоже понять не мог почему ничего не создается в /var/spool/mail/virtual оказалось не внимателен был
надо было выставить права
# mkdir /var/spool/mail
# chown virtual:virtual /var/spool/mail/
# chmod 740 /var/spool/mail/

pinachet, 2007-10-25 в 15:19:48

остальные части здесь:
http://ben.org.ua/manual/unix/freebsd_server/mail/turbo/index.htm

Flash, 2007-11-08 в 0:40:12

Спасибо Валентин за 2006-11-29 в 18:23:51
Фря 6.2

___, 2007-11-26 в 16:15:21

Время генерации страницы 0.3414 секунд
Из них PHP: 39%; SQL: 61%; Число SQL-запросов: 77 шт.

77 запросов?!!... на одну страницу... выражаю соболезнования серверу.

lissyara, 2007-11-26 в 16:40:24

А когда-то было 500 и это был 900 Дурон :))
Просто логика вынесена в SQL.
==========
желаете пеерписать пару-тройку мегабайт кода? :)

___, 2007-11-28 в 16:56:06

> А когда-то было 500 и это был 900 Дурон :))
у меня кровь из зубов пошла... слов нет! Скорее всего проблемы с иерархическими списками ;) Если интересно http://zlobnygrif.fatal.ru/files/node.zip

> желаете пеерписать пару-тройку мегабайт кода? :)
ммм... нет, боюсь времени не будет :) хотя и было бы интересно :)

Кстати, спасибо вам огромное за действительно нужные статьи и эту в частности :)

Igor, 2007-12-18 в 17:03:39

> остальные части здесь:
http://ben.org.ua/manual/unix/freebsd_server/mail/turbo/index.htm

Недоступен. Где еще можно посмотреть все части?

Zerox, 2008-02-19 в 1:25:30

Присоединяюсь к предыдущей просьбе.
Первая часть доступна здесь
http://www.sys-adm.org.ua/mail/mail-howto-p1.php
Второй части в оригинальном виде в инете не нашел, а сохраненную потерял после смерти харда. Помогите найти или пришлите на почту, пожалуйста.

RubuN, 2008-03-26 в 9:34:50

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

ADvise, 2008-04-08 в 16:01:31

доброго дня всем пользователям юниксов!

запускаем IE пишим http://mail/login.php
открывается страница, "Вход для администрирования
почтовых ящиков."
водим логин админа и пароль, жмем вход,
получаем:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/local/www/postfixadmin/config.inc.php:147) in /usr/local/www/postfixadmin/login.php on line 61

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/local/www/postfixadmin/config.inc.php:147) in /usr/local/www/postfixadmin/login.php on line 61

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/postfixadmin/config.inc.php:147) in /usr/local/www/postfixadmin/login.php on line 65

функции session_start я нигде не нашел.
Apache ругается:
[Tue Apr  8 13:32:21 2008] [error] [client 192.168.0.222] File does not exist: /usr/local/www/postfixadmin/function.session-start

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

ALex_hha, 2008-04-08 в 21:15:20

Welcome http://forum.sys-adm.org.ua/ :)

Михаил, 2008-05-30 в 18:50:18

Не работает с версией mysql 5+ ?

Postfix Admin Setup Checker 1.0.0
Running software:

- PHP version 5.2.5

- Apache/2.2.6 (FreeBSD) mod_ssl/2.2.6 OpenSSL/0.9.8g DAV/2 PHP/5.2.5 with Suhosin-Patch

Checking for dependencies:

- Magic Quotes: ON

- Depends on: presence config.inc.php - OK

# Error: There is no database support in your PHP setup
To install MySQL 3.23 or 4.0 support on FreeBSD:

% cd /usr/ports/databases/php5-mysql/
% make clean install
- or with portupgrade -
% portinstall php5-mysql

To install MySQL 4.1 support on FreeBSD:

% cd /usr/ports/databases/php5-mysqli/
% make clean install
- or with portupgrade -
% portinstall php5-mysqli

To install PostgreSQL support on FreeBSD:

% cd /usr/ports/databases/php5-pgsql/
% make clean install
- or with portupgrade -
% portinstall php5-pgsql

- Depends on: session - OK

- Depends on: pcre - OK

Sava, 2008-06-13 в 12:55:18

Товарисчи! А кто объяснит зачем насиловать SASL авторизировать через Mysql, иметь кучу глюков с версиями, патчами? Кроме того, эта хреновина похоже не конектится к базе, которая лежит на другом хосте. Ведь при наличии рабочего courier-authlib (а pop3/imap именно он авторизирует) в smptd.conf пишем две строчки
pwcheck_method: authdaemond
authdaemond_path: /var/run/authdaemond/socket
mech_list: LOGIN PLAIN CRAM-MD5
и даем постфиксу права на этот сокет.
Что-то пол инета мусолит статью этого трубогаза, а думать никто не хочет :(

ALex_hha, 2008-06-14 в 13:55:05

Какие глюки? За 3 года использования ни одного глюка. Может я что то делаю не так? К тому же, не у всех обязательно стоит courier-imap, может быть например dovecot или вообще не быть pop/imap сервера. Так что спорное утверждение, к тому же без фактов, а только слова.

111, 2008-06-29 в 2:50:59

хуй

1212, 2008-06-29 в 2:51:39

:):):):):):):):):)):)::):):):)):

S-tri-G, 2008-07-06 в 15:46:22

Вставлю свои 5-ть копеек...
Впервый раз все настроилось и заработало еще пару лет назад, автору огромный респект. После поднимал почтовики еще нескольк раз по прежнему рецепту и все без запинки, пока не пришлось устанавливать на серваке, у которого к одному сетевому интерфейсу привязано несколько алиасов. Причем  в DNS каждый из адресов резолвится по разному (есть вот такая необходимость). Возник следующий глюк: при отправке почты в некоторые зоны письмо не уходило, а в отлупе фигурировал ip-шник о котором postfix знать ничего не мог. Фиксится такая ситуация жестким указанием, с какого адреса отправлять почту:
smtp_bind_address = 1.2.3.4
После добавления такой строки в main.cf почта пошла и тем, кому ранее не отправлялась.

desc_, 2008-09-01 в 19:30:53

Я всё поставил, получилось, а вот как дальше работать? зашёл в админку, может ктонить пример показать на одном ящике?

desc_, 2008-09-01 в 19:37:56

например на сервере mail.ru создан у меня ящик, test@mail.ru
как в постфикс всё оформить? хочу чтобы все с локальной сети могли юзать этот ящик через мой маил-сервак

ALex_hha, 2008-09-02 в 11:13:44

А при чем тут postfix? И что значит юзать? Сделай тему на форуме.

lexy, 2008-09-02 в 15:23:21

2desc_:
копай в сторону fetchmail

Kh.Serg, 2008-10-16 в 11:35:07

Pahan, верно заметил, что:
в конфиге /usr/local/etc/authlib/authmysqlrc переменную MYSQL_CLEAR_PWFIELD  надо заменить на MYSQL_CRYPT_PWFIELD.

Респект за статью.





ProFTP, 2008-12-07 в 20:03:43

аналог Postfxadmin

goto http://forum.lissyara.su/viewtopic.php?f=20&t=12348

Мирослав., 2010-04-13 в 17:09:33

Використовував в роботі оновлену статтю із сайту:
http://www.sys-adm.org.ua/mail/mail-howto-p1.php

В процесі настройки проблем як таких не було. В кінці при створенні поштових ящиків  internet explorer зациклюється. При цьому в /var/spool/mail/ нічого не створюється. Підскажіть де шукати проблему. Уже пів місяця не можу розібратись. Права
# chown virtual:virtual /var/spool/mail/
# chmod 740 /var/spool/mail/
змінював, нічого не дало. В логах нічого не прописується. Для створення поштових ящиків входжу через зовнішню ip, бо через внутрішню не йде.

Dog, 2010-04-13 в 18:12:19

Перевожу предыдущего комментатора:

Использовал в работе обновленную статью с сайта:
http://www.sys-adm.org.ua/mail/mail-howto-p1.php

В процессе настройки проблем как таковых не возникло. В конце при создании почтовых ящиков internet explorer зацикливается. При этом в /var/spool/mail/ ничего не создается.
Подскажите где искать проблему. Уже полмесяца не могу разобраться. Права
# chown virtual:virtual /var/spool/mail/
# chmod 740 /var/spool/mail/
менял, ни к чему не примело. В логах ничего не прописывается. Для создания почтовых ящиков захожу с внешнего ip, потому что через внутренний не пускает.


2Мирослав: Комментировать иноязычный ресурс на родном языке, зная что им владеет подавляющее меньшинство аудитории - свинство.

Dog, 2010-04-13 в 18:13:58

Опсь, очипятался. примело == привело :)

Мирослав., 2010-04-14 в 10:35:09

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

2Dog, 2011-01-09 в 21:50:47

Так и скажи: срал я на каклов



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.067 секунд
Из них PHP: 47%; SQL: 53%; Число SQL-запросов: 79 шт.
Исходный размер: 126185; Сжатая: 24893