Alterator/New/Modules/Postfix Dovecot

Материал из ALT Linux Wiki

Alterator-postfix-dovecot

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


Alterator-postfix-dovecot 0.7.1.png


Описание функций модуля

1) Флаг Enable SMTP server меняет режим сервиса Postfix SMTP из local в режим server и открывает порт SMTP:587 (submission), все действия выполняются через утилиту control.

2) Operational mode с параметром Relay переводит почтовый сервер в режим посредника. Поле Upstream SMTP host содержит имя сервера, которому будет перенаправляться вся поступающая почта. В конфигурацию postfix добавляется параметр relayhost=<server_name>. Если в пункте Operational mode выбран режим MX, то параметр relayhost имеет пустое значение и сервер работает в обычном режиме.

3) Поле Root mail alias содержит имя пользователя, которому будет перенаправляться вся почта, адресованная пользователю root.

4) Пункт Maximum message size позволяет задать максимальный размер письма.

5) Флаг Filter spam запускает сервис spamd и переводит сервис Postfix SMTP в режим filter, только при установленном флаге Enable SMTP server.

6) Флаг Filter senders фильтрует отправителей почты (то есть от кого разрешено получать), используя zen.spamhaus.org. Файл /etc/postfix/whitelist содержит разрешенные адреса и домены, от которых всегда будет приниматься почта. Редактирование файла происходит вручную.

7) Поле ввода Local networks содержит часть значения параметра mynetworks. Список сетей хранится в файле /etc/postfix/mynetworks.

8) Флаг Filter recipients делает доступным поле для редактирования, в котором указаны, через пробел, адреса или шаблоны доменов, на которые возможна отсылка почты. Список хранится в файле /etc/postfix/recipient_access.

9) Флаг Enable POP3/IMAP server задает protocols="imap pop3 lmtp" в конфигурации dovecot и перезагружает ее. При снятии флага: protocols="none".


Почтовый сервер вне домена

В текущей версии модуля (0.7.1-alt1), без создания домена, почта пользователям не доставляется. Работа с модулем невозможна, пока не будет создан домен, о чем говорит надпись «You must create domain to setup mail server». Но блокировку можно обойти, если закомментировать строку с проверкой SERVER_ROLE на master в файле «/usr/lib/alterator/backend3/postfix-dovecot» и оставить true в результате проверки. Если, после создания сервера почты, использовать команду «control postfix server» и отправить письмо по SMTP, то оно будет «висеть» в «/var/mail/<user>» , пока не изменятся настройки доставки. Таким образом, в текущей версии модуля, создать почтовый сервер отдельно от домена, не получится.


Почтовый сервер в домене

При создании домена (попытке создания) применяются хуки для postfix и dovecot. В результате чего получаем рабочий почтовый сервер. Поле «Domain list» содержит имя созданного домена. Поле «Root mail alias» содержит имя первого созданного пользователя, если пользователь отсутствует (не был создан), поле остается пустым. После создания домена можно приступать к работе с модулем: включить сервисы SMTP, POP3/IMAP, настроить необходимые функции, описанные выше.

Хуки добавляют к настройкам postfix/main.cf:

mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME
inet_protocols = ipv4

следующую конфигурацию сервера:

smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_received_header = yes
smtpd_tls_key_file = /var/lib/ssl/private/postfix.key
smtpd_tls_cert_file = /var/lib/ssl/certs/postfix.cert
smtpd_sasl_auth_enable = yes
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_security_options = noanonymous, noplaintext
mynetworks = localhost, $myhostname, $config_directory/mynetworks
smtpd_helo_restrictions = check_recipient_access cdb:/etc/postfix/whitelist, 
                          permit_mynetworks, 
                          permit_sasl_authenticated, 
                          check_helo_access cdb:/etc/postfix/helo_access, 
                          permit

smtpd_client_restrictions = check_recipient_access cdb:/etc/postfix/whitelist, 
                            permit_mynetworks, 
                            permit_sasl_authenticated, 
                            check_client_access cdb:/etc/postfix/client_access, 
                            permit

smtpd_sender_restrictions = check_recipient_access cdb:/etc/postfix/whitelist, 
                            permit_mynetworks, 
                            permit_sasl_authenticated, 
                            check_sender_access cdb:/etc/postfix/sender_access, 
                            permit

smtpd_recipient_restrictions = check_recipient_access cdb:/etc/postfix/recipient_access, 
                               permit_mynetworks, 
                               permit_sasl_authenticated, 
                               reject_unauth_destination, 
                               permit

virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-users.cf
local_recipient_maps = proxy:unix:passwd.byname $alias_maps ldap:/etc/postfix/ldap-users.cf
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
mailbox_unpriv_delivery = no

В настройки dovecot добавляется следующая конфигурация:

# auth_mechanisms = plain
# disable_plaintext_auth = yes
# mail_privileged_group =

auth_mechanisms = plain login
disable_plaintext_auth = no
mail_privileged_group = mail

passdb {
  args = /etc/dovecot/ldap.conf
  default_fields =
  deny = no
  driver = ldap
  master = no
  override_fields =
  pass = no
}


service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }

  ....

#  user = $default_internal_user
  user = dovecot
}


Создание пользователей и их почтовых ящиков

После создания домена и запуска сервисов postfix и dovecot, с почтовым сервером могут работать системные пользователи, которых можно создавать с помощью модуля alterator-users. Также пользователей можно создавать в базе LDAP, которая появляется при создании домена. Данные базы LDAP прописываются в настройки postfix и dovecot. Содержимое этих файлов следующее:

postfix/ldap-users.cf

server_host = localhost
search_base = dc=office,dc=altlinux,dc=org
query_filter = (&(objectClass=posixAccount)(mail=%s))
result_attribute = uid

postfix/ldap-aliases.cf

server_host = localhost
search_base = dc=office,dc=altlinux,dc=org
query_filter = (&(objectClass=posixGroup)(mail=%s))
result_attribute = memberUid
result_format = %u@office.altlinux.org

dovecot/ldap.conf.

uris = ldap://localhost/
debug_level = 0
auth_bind = yes
auth_bind_userdn = uid=%n,ou=People,dc=office,dc=altlinux,dc=org
base = dc=office,dc=altlinux,dc=org
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
user_filter = (&(objectClass=posixAccount)(uid=%n))

Создание пользователей в базе LDAP осуществляется в модуле alterator-ldap-users. Для пользователя создается домашняя директория, в которой dovecot создает свои директории для хранения почты при аутентификации пользователя.