Разбираем на косточки установку и настройку почтового сервиса на базе Postfix и Dovecot 2.xx

 

 

 

Вначале устанавливаем Postfix и Dovecot

$sudo aptitude install postfix dovecot-common dovecot-imapd

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

Постинсталляционный скрипт сообщит, что в таком состоянии Postfix работать не может.

Создадим недостающий файл конфигурации:

$ sudo touch /etc/postfix/main.cf

На этом установка завершена.

Настройка Postfix

Открываем на редактирование файл /etc/postfix/main.cf и заполним его следующими данными:

  

#Так наш сервер будет представляться при отправке и получении почты

smtpd_banner = $myhostname ESMTP (ubuntu)

biff = no #Отключаем использование comsat

#Запрещаем автоматически дополнять неполное доменное имя в адресе письма

append_dot_mydomain = no

queue_directory = /var/spool/postfix #Указываем каталог очереди для Postfix

myhostname = mail.study.local #Указываем имя нашего хоста

alias_maps =

myorigin = study.local

mydestination = localhost #Указываем, для каких доменов будем принимать почту

#Указываем, для каких виртуальных доменов будем принимать почту

virtual_mailbox_domains = study.local

virtual_mailbox_base = /var/spool/mail/ #Начало пути для хранения почты

virtual_alias_maps = hash:/etc/postfix/virtual #Файл с описанием почтовых алиасов

virtual_mailbox_maps = hash:/etc/postfix/vmailbox #Файл с описанием почтовых ящиков

virtual_minimum_uid = 100

virtual_uid_maps = static:5000

virtual_gid_maps = static:5000

mynetworks = 127.0.0.0/8 #Указываем список доверенных подсетей

recipient_delimiter = +

inet_interfaces = all #Принимаем соединения на всех интерфейсах

#Описываем авторизацию через Dovecot

smtpd_sasl_auth_enable = yes

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

smtpd_helo_required = yes #Обязательно при соединении требовать helo

#Далее настраиваем фильтры приема/отправки почты

smtpd_recipient_restrictions = permit_mynetworks,

                                                permit_sasl_authenticated,

                                                check_helo_access hash:/etc/postfix/helo.list,

                                                check_sender_access hash:/etc/postfix/ext_sender,

                                                reject_unauth_destination,

                                                reject_unknown_sender_domain,

                                                reject_unknown_recipient_domain,

                                                reject_non_fqdn_recipient,

                                                reject_non_fqdn_sender,

                                                reject_non_fqdn_hostname,

                                                reject_invalid_hostname,

                                                reject_unknown_hostname

         

Создадим файл /etc/postfix/helo.list

#touch /etc/postfix/helo.list

Откроем его на редактирование и внесем в него строку:

study.local 550 Don't use my hostname

И выполним его хеширование:

#postmap /etc/postfix/helo.list

Создадим файл /etc/postfix/ext_sender

#touch /etc/postfix/ext_sender

Откроем его на редактирование и внесем в него строку:

study.local 550 Do not use my domain in your envelope sender

И выполним его хеширование:

#postmap /etc/postfix/ext_sender

     

Настройка Dovecot

 

          Рассмотрим настройку Dovecot версии 2.xx.

          Теперь в каталоге /etc/dovecot мы имеем много файлов конфигурации. При чем даже с подкаталогами.

          Можно, конечно, всю конфигурацию свести в один файл, но это будет не спортивно и будет противоречить тому, что задумали разработчики.

          Откроем основной файл конфигурации /etc/dovecot/dovecot.conf и приведем его к такому вот виду:

    

 

#По какому протоколу работаем

protocols = imap

#Слушаем соединения на всех интерфейсах по протоколу IPv4

listen = *

#Рабочий каталог

base_dir = /var/run/dovecot/

#Имя инстанса (для отображения в логе)

instance_name = dovecot

#Строка приветствия

login_greeting = Dovecot ready.

#Отключать клиентские соединения при выключении или перезагрузке мастер-сервиса

shutdown_clients = yes

#Сокет управляющего сервиса doveadm

doveadm_socket_path = doveadm-server

#Подключаем отдельные файлы конфигурации

!include conf.d/*.conf

 

  

Теперь переходим в каталог /etc/dovecot/conf.d

Откроем в нем файл 10-auth.conf и пропишем в нем две строки:

   

disable_plaintext_auth = no

auth_mechanisms = plain login

    

Далее отредактируем файл 10-mail.conf

mail_location = maildir:/var/spool/mail/study.local/%n

mail_uid = 5000

mail_gid = 5000

mail_privileged_group = virtual

valid_chroot_dirs = /var/spool/mail/

!include auth-passwdfile.conf.ext

    

    

Далее нас будет интересовать файл 10-master.conf

   

service imap-login {

inet_listener imap {

#port = 143

}

inet_listener imaps {

#port = 993

#ssl = yes

}

 

service auth {

# Postfix smtp-auth

unix_listener /var/spool/postfix/private/auth {

mode = 0666

}

# Auth process is run as this user.

user = postfix

group = postfix

}

}

      

В файле ssl.conf нужно прописать

ssl = no

   

Теперь нужно создать пользователя.

Если посмотреть файл auth-passwdfile.conf.ext то мы увидим, что логины и пароли пользователей должны храниться в файле /etc/dovecot/users со схемой шифрования CRYPT

Создадим запись для пользователя student с паролем 123.

 

$doveadm pw -s CRYPT -u student -p 123

  

Полученные данные внесем в файл /etc/dovecot/users

student:{CRYPT}CaKFEZXiRl/aE:5000:5000

  

Если хотите свести конфигурацию в один файл — это тоже можно сделать.

Просто нужно удалить все из /etc/dovecot/dovecot.conf и заполнить его всеми вышеописанными строками из всех файлов. Только не забыть добавить еще и содержимое файла /etc/dovecot/conf.d/auth-passwdfile.conf.ext. То есть строки:

passdb {

driver = passwd-file

args = scheme=CRYPT username_format=%u /etc/dovecot/users

}

  

userdb {

driver = passwd-file

args = username_format=%u /etc/dovecot/users

}

  

 

 

Настройка авторизации в AD

  

Для того, что бы наш почтовый сервер использовал учетные данные пользователей, почтовые адреса и почтовые псевдонимы из домена Windows нужно, прежде всего, что бы там эти данные были.

  

 

Подготовка контроллера домена

  

Пускай у нас есть контроллер домена study.local на базе Windows 2003 с IP-адресом 192.168.0.10. Создадим в домене двух пользователей — Student1 и Student2. В поле e-mail обязательно укажем их почтовые адреса — student1@study.local и, соответственно, student2@study.local. Кроме этого нужно создать служебную учетную запись, для взаимодействия нашего почтового сервера с контроллером домена. По этому создадим в домене пользователя mailadmin с паролем passwd123

Для создания почтовых псевдонимов (списков рассылки) создадим в домене группу allstudents. В поле e-mail укажем почтовый адрес allstudents@study.local и включим в эту группу пользователей Student1 и Student2.

  

Теперь рассмотрим подключение нашего почтового сервера к AD

Нам необходимо будет доустановить два пакета — postfix-ldap и dovecot-ldap

  

#aptitude install postfix-ldap dovecot-ldap

  

 

Настройка Dovecot

  

Откроем на редактирование файл /etc/dovecot/conf.d/10-auth.conf

В конце этого файла нужно закомментировать строку

#!include auth-passwdfile.conf.ext

и, соответственно, раскомментировать

!include auth-ldap.conf.ext

 

Посмотрев в файл auth-ldap.conf.ext мы увидим, что параметры соединения с сервером AD хранятся в файле /etc/dovecot/dovecot-ldap.conf.ext

 

Откроем его

# nano /etc/dovecot/dovecot-ldap.conf.ext

 

И в конец файла добавим настройки работы с контроллером домена.

#Указываем адрес контроллера домена

hosts = 192.168.0.10

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

#(bind) к ldap-серверу будет использоваться логин и пароль

# аутентифицирующегося пользователя

auth_bind = yes

#Указываем версию протокола

ldap_version = 3

#Указываем местонахождение учетных записей пользователей в домене

base = cn=Users,dc=study,dc=local

# Указываем логин и пароль, под которыми мы будем читать данные из AD

dn = cn=mailadmin,cn=Users,dc=study,dc=local

dnpass = passwd123

deref = never

# Искать данные по всему поддереву

scope = subtree

# Фильтр для выборки пользователей

user_filter = (&(ObjectClass=person)(sAMAccountName=%u))

# Фильтр для проверки паролей

pass_filter = (&(ObjectClass=person)(sAMAccountName=%u))

 

 

Настройка Postfix

  

Откроем файл /etc/postfix/main.cf и поменяем в нем несколько строк:

 

virtual_alias_maps = ldap:/etc/postfix/ldapalias

virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual_mailbox_maps.cf

 

 

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

Теперь создадим файлы конфигурации запросов в LDAP

   

ldap_virtual_mailbox_maps.cf

 

server_host = 192.168.0.10

bind = yes

bind_dn = cn=mailadmin,cn=Users,dc=study,dc=local

bind_pw = passwd123

search_base = cn=Users,dc=study,dc=local

query_filter = (&(mail=%s))

result_attribute = mail

result_format = %d/%u/

 

 

ldapalias

 

server_host = 192.168.0.10

bind = yes

bind_dn = cn=mailadmin,cn=Users,dc=study,dc=local

bind_pw = passwd123

search_base = cn=Users,dc=study,dc=local

query_filter = (&(objectClass=group)(mail=%s))

leaf_result_attribute = mail

special_result_attribute = member

 

 

Содержимое файлов формируется по тому же принципу, что и в файле /etc/dovecot/dovecot-ldap.conf

 

Настройка антиспама и самого почтового сервера рассмотрены в следующих статьях:

Установка антиспама SpamAssassin на Postfix

Установка антивируса ClamAV на Postfix

 

You have no rights to post comments

Яндекс.Метрика