Строим почтовую систему(postfix, dovecot, postfixadmin) – часть вторая,

установка Postfix на FreeBSD

Переходим к установке postfix. Всю подготовительную часть (создание баз авторизации, настройка PostfixAdmin) мы провели в первой части статьи Строим почтовую систему(postfix, dovecot, postfixadmin) – часть первая, установка PostfixAdmin и теперь начинаем разбираться непосредственно с Postfix.

Установим postfix конечно же из портов:

cd /usr/ports/mail/postfix/

make install clean

В диалоге настройки опций сборки Postfix нужно выбрать такие пункты:

---------------------------------------------------------------------¬

¦ Options for postfix 2.5.6,1 ¦

¦ -----------------------------------------------------------------¬ ¦

¦ ¦[X] PCRE Perl Compatible Regular Expressions ¦ ¦

¦ ¦[ ] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) ¦ ¦

¦ ¦[X] DOVECOT Dovecot SASL authentication method ¦ ¦

¦ ¦[ ] SASLKRB If your SASL req. Kerberos select this option ¦ ¦

¦ ¦[ ] SASLKRB5 If your SASL req. Kerberos5 select this option ¦ ¦

¦ ¦[ ] SASLKMIT If your SASL req. MIT Kerberos5 select this option¦ ¦

¦ ¦[ ] TLS Enable SSL and TLS support ¦ ¦

¦ ¦[ ] BDB Berkeley DB (choose version with WITH_BDB_VER) ¦ ¦

¦ ¦[X] MYSQL MySQL maps (choose version with WITH_MYSQL_VER) ¦ ¦

¦ ¦[ ] PGSQL PostgreSQL maps (choose with DEFAULT_PGSQL_VER) ¦ ¦

¦ ¦[ ] OPENLDAP OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)¦ ¦

¦ ¦[ ] CDB CDB maps lookups ¦ ¦

¦ ¦[ ] NIS NIS maps lookups ¦ ¦

¦ ¦[ ] VDA VDA (Virtual Delivery Agent) ¦ ¦

¦ ¦[ ] TEST SMTP/LMTP test server and generator ¦ ¦

+-L------------------------------------------------------------------+

¦ [ OK ] Cancel ¦

L---------------------------------------------------------------------

Мы включили настройки, для авторизации SMTP через dovecot и возможность проверять наличие пользователей, алиасы, домены и тп в базе MySQL.

Теперь сделаем такой файл настроек posfix main.cf:

queue_directory = /var/spool/postfix

command_directory = /usr/local/sbin

daemon_directory = /usr/local/libexec/postfix

data_directory = /var/db/postfix

mail_owner = postfix

myhostname = mail.hilik.org.ua

mydomain = hilik.org.ua

myorigin = $myhostname

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost

relay_domains =

local_recipient_maps = unix:passwd.byname $alias_maps

unknown_local_recipient_reject_code = 550

mynetworks_style = host

mynetworks = 127.0.0.0/8 192.168.1.0/24

alias_maps = hash:/usr/local/etc/postfix/aliases

alias_database = hash:/usr/local/etc/postfix/aliases

smtpd_banner = $myhostname ESMTP $mail_name

debug_peer_level = 2

debugger_command =

PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/local/sbin/sendmail

newaliases_path = /usr/local/bin/newaliases

mailq_path = /usr/local/bin/mailq

setgid_group = maildrop

html_directory = no

manpage_directory = /usr/local/man

sample_directory = /usr/local/etc/postfix

readme_directory = no

#Корневая директория для клиентских почтовых ящиков

virtual_mailbox_base = /usr/mail/

#Путь к файлу настроек подключения к MySQL для получения виртуальных алиасов

virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf

#Путь к файлу настроек подключения к MySQL для получения виртуальных доменов

virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf

#Путь к файлу настроек подключения к MySQL для получения виртуальных пользователей

virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

#Работать dovecot будет от nobody

virtual_minimum_uid = 65534

virtual_uid_maps = static:65534

virtual_gid_maps = static:65534

#Для доставки в локальные почтовые ящики будем использовать доставщик dovecота

virtual_transport = dovecot

dovecot_destination_recipient_limit = 1

#Включаем smtp авторизацию через dovecot

smtpd_sasl_auth_enable = yes

smtpd_sasl_exceptions_networks = $mynetworks

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

#Устанавливаем разрешения smtpd

smtpd_recipient_restrictions =

#локальная сеть

permit_mynetworks

#smtp авторизация

permit_sasl_authenticated

#всем остальным релай запрещаем

reject_unauth_destination

Файл /usr/local/etc/postfix/mysql_virtual_alias_maps.cf:

#Имя пользователя для подключения к базе MySQL

user = postfix

#Пароль подключения к MySQL

password = postfixpass

#Адрес сервера MySQL

hosts = localhost

#Имя базы MySQL

dbname = postfix

#Запрос на получения адреса aliasа

query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Файл настройки получения для получения виртуальных доменов /usr/local/etc/postfix/mysql_virtual_domains_maps.cf:

user = postfix

password = postfixpass

hosts = localhost

dbname = postfix

#Запрос на получение списка виртуальных доменов

query = SELECT domain FROM domain WHERE domain='%u'

И последний файл который отвечает за проверку наличия получателя /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf:

user = postfix

password = postfixpass

hosts = localhost

dbname = postfix

#Запрос отвечающий за получение информации о виртуальном пользователе

query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

И остается добавить в master.cf dovecot транспорт:

dovecot unix - n n - - pipe flags=DRhu user=nobody:nobody argv=/usr/local/libexec/dovecot/deliver -d ${recipient}

На этом настройка postfix закончена.

Добавим разрешение на запуск postfix:

echo "postfix_enable=YES" >>/etc/rc.conf

И запустим postfix:

/usr/local/etc/postfix start

Финальная часть: Строим почтовую систему(postfix, dovecot, postfixadmin) – часть третья, установка dovecot

http://www.hilik.org.ua/строим-почтовую-системуpostfix-dovecot-postfixadmin-часть-п-2/

Обновлено: 12.03.2015