четверг, 29 октября 2009 г.

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

Взято с: http://www.hilik.org.ua
Апр 20 2009
 Переходим к установке 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               │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

Мы включили настройки, для авторизации 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
 
Комментарий читателя:  
    
By Xerks, 08.05.2009 @ 07:39
Вот тут какой-то косячок образовался: Добавим разрешение на запуск postfix: >echo «postfix_enable=NO» >>/etc/rc.conf Наверное, стоит все же поставить «=YES»
By hilik, 08.05.2009 @ 10:09
Точно. Большое спасибо.
 
Финальная часть: Строим почтовую систему(postfix, dovecot, postfixadmin) – часть третья, установка dovecot

Комментариев нет:

Отправить комментарий