Перевод статьи: PostfixAdmin on Debian
Postfix Admin - это web-интерфейс для настройки пользователей почтового сервера на основе Postfix и MySQL.
Он позволяет создавать пользователей и псевдонимы в пределах домена.
Этот урок рассматривает установку Postfix Admin, Postfix в связке с MySQL и включенной SMTP-аутентификацией, и Dovecot (для POP3/POP3S/IMAP/IMAPS) в связке с MySQL.
Не смотря на то, что этот урок был проверен на Debian Etch, настройка Postfix/MySQL одинакова и должна правильно работать на большинстве дистрибутивов.
Если вы хотите настроить фильтрацию почты каждого пользователя от спама и вирусов, обратитесь к следующему уроку: http://bliki.rimuhosting.com/space/knowledgebase/linux/mail/postfix+with+amavis+and+mysql
Postfixadmin теперь есть в официальных репозиториях Debian и Ubuntu. Просто воспользуйтесь apt-get для его установки:
# apt-get install postfixadmin
Замечание: Пакет не попал в репозитории Ubuntu. Просто скачайте файл со страницы http://sourceforge.net/project/showfiles.php?group_id=191583&package_id=225300 и выполните:
# dpkg -i postfixadmin_2.2.0_all.deb
Postfixadmin будет установлен в каталог /usr/share/postfixadmin/, также будут установлен файл конфигурации /etc/postfixadmin/config.inc.php, а в конфигурацию apache будет добавлен дополнительный псевдоним посредством файла /etc/apache2/conf.d/postfixadmin:
Alias /postfixadmin /usr/share/postfixadmin
Если вы решите воспользоваться установкой из архива с исходными текстами, это всё можно сделать вручную.
Настроим Postfix Admin в соответствии с вашей спецификой (например, зададим подходящий пароль к базе данных, настроим домен по умолчанию и т.п.)
Отредактируем файл /usr/share/postfixadmin/config.inc.php и укажем следующее:
# vi config.inc.php [...] $CONF['configured'] = true; $CONF['postfix_admin_url'] = 'http://ваш-домен.ru/postfixadmin'; $CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = 'SecretPassword!'; $CONF['database_name'] = 'postfix'; $CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'NO'; $CONF['encrypt'] = 'cleartext';
Просмотрите остаток файла, если вам захочется сделать более тонкие настройки.
Вы можете быстро заменить домен по умолчанию на ваш собственный:
# replace "change-this-to-your.domain.tld" "ваш-домен.ru" -- /usr/share/postfixadmin/config.inc.php
Создайте базу данных и пользователя в mysql:
$ mysql -u root -p mysql> create database postfix; mysql> grant all privileges on postfix.* to 'postfixadmin'@'localhost' identified by 'SecretPassword!'; mysql> flush privileges; mysql> q
Откройте браузер и перейдите по ссылке http://ваш-домен.ru/postfixadmin/ или http://ваш-IP/postfixadmin/. Будет предложено запустить процесс настройки. Удостоверьтесь, что все проверки установщика сообщают 'OK'.
Рекомендуется удалить setup.php.
Теперь перейдите по ссылке http://ваш-домен.ru/postfixadmin/admin. Вы должны получить приглашение. Войдите с использованием почтового ящика администратора, заведённого ранее на странице настройки. Отсюда вы можете добавлять домены, почтовые ящики и т.п. Но Postfix этого не увидит. Нам нужно установить Postfix и настроить его.
Установим Postfix и SASL2 с поддержкой MySQL
# apt-get install postfix-mysql postfix-tls libsasl2-modules-sql libsasl2-modules
Добавим в файл /etc/postfix/main.cf следующие строки:
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:106 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 106 virtual_transport = virtual virtual_uid_maps = static:106 broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous
ЗАМЕЧАНИЕ: UID и GID равные 106 на вашей системе могут быть другими. Посмотрите на UID и GID пользователя postfix (или vmail) в файле /etc/passwd и укажите их. Например, на моём сервере:
# grep postfix /etc/passwd postfix:x:102:105::/var/spool/postfix:/bin/false--> uid: 102; gid: 105
Создайте следующие файлы в каталоге /etc/postfix/:
mysql_virtual_alias_maps.cf
user = postfix password = SecretPassword! hosts = localhost dbname = postfix table = alias select_field = goto where_field = address
mysql_virtual_domains_maps.cf
user = postfix password = SecretPassword! hosts = localhost dbname = postfix table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '0' and active = '1'
mysql_virtual_mailbox_maps.cf
user = postfix password = SecretPassword! hosts = localhost dbname = postfix table = mailbox select_field = maildir where_field = username
Если вы хотите разрешить ретрансляцию почты через ваш сервер после SMTP AUTH, пропишите в файле /etc/postfix/sasl/smtpd.conf следующие настройки:
pwcheck_method: auxprop mech_list: PLAIN LOGIN auxprop_plugin: sql sql_verbose: yes sql_engine: mysql sql_hostnames: localhost sql_user: postfix sql_passwd: SecretPassword! sql_database: postfix sql_select: select password from mailbox where username = '%u@%r'
Создайте структуру каталогов, включая каталог для первого домена. Вы так же можете войти в PostfixAdmin и создать учётную запись 'test' для домена ваш-домен.ru.
# mkdir -p /home/vmail/yourdomain.com/test # chmod -R 770 /home/vmail # chown -R postfix:postfix /home/vmail/
Установим Dovecot с поддержкой MySQL
# apt-get install dovecot-common dovecot-imapd dovecot-pop3d
Отредактируем файл /etc/dovecot/dovecot-mysql.conf с настройками Dovecot/MySQL, воспользовавшись следующими опциями:
driver = mysql connect = dbname=postfix user=postfixadmin host=localhost password=SecretPassword! default_pass_scheme = PLAIN password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 106 AS uid, 106 AS gid FROM mailbox WHERE username = '%u'
Теперь настроим Dovecot на использование MySQL, задав следующие опции в файле /etc/dovecot/dovecot.conf:
protocols = imap imaps pop3 pop3s disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/home/vmail/%d/%n mail_access_groups = mail first_valid_uid = 106 first_valid_gid = 106 protocol imap { } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } auth default { mechanisms = digest-md5 plain passdb sql { args = /etc/dovecot/dovecot-mysql.conf } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = root }
Перезапустим Dovecot и Postfix и проверим их.
По завершении вы должны получить возможность добавлять новые домены, почтовые ящики, псевдонимы с помощью PostfixAdmin и получить правильно работающую систему, включая SMTP-аутентификацию. Отметим, что для работы SMTP-аутентификации saslauthd не требуется.