вторник, 7 декабря 2010 г.

Настройка Postfix+MySQL+Dovecot-POP3+Amavis в ubuntu server 10.04

Раздел 4. Настройка Dovecot

В предыдущем разделе мы "научили" Postfix понимать какие письма ему нужно принимать. Теперь рассмотрим, что с этими письмами делать дальше. Тут начинает работать Dovecot... Что бы научить postfix использовать Dovecot, поправим конфиг /etc/postfix/master.cf:
dovecot   unix  -       n       n       -       -       pipe
     flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} 

и перезапустим postfix:
#>postfix reload 

плюс, еще нужно поправить /etc/postfix/main.cf:

#>postconf -e virtual_transport=dovecot
#>postconf -e dovecot_destination_recipient_limit=1 

Такие манипуляции заставят postfix передавать управление входящими письмами Dovecot`у, а именно программе /usr/lib/dovecot/deliver


Теперь начнем ковырять конфиги Dovecot.

Задачи следующие:


1. Получать письма от postfix`a и сохранять их на диск

2. Квотирование (лимиты на размеры почтовых ящиков

)

3. Настройка базовой фильтрации писем

4. Организация возможности для пользователей получать почту используя POP3


Пред тем как приступить к конфигурированию Dovecot, в целях секьюрности, создадим системного юзверя "vmail" (virtual mail) и группу под него с тем же названием. И дадим такие GID = 5000, UID = 5000 (необходимо что бы UID/GID были уникальны, и в принципе могут быть любыми от 1000 до 65000):

#>groupadd -g 5000 vmail
#>useradd -g vmail -u 5000 vmail -d /var/vmail -m 


Конфиги Dovecot лежат в /etc/dovecot. Настройку начнем с /etc/dovecot/dovecot.conf и установим такие параметры:

protocols = pop3 pop3s 

- этот параметр определяет используемые протоколы

disable_plaintext_auth = no 

- этот параметр разрешает использование в качестве пароля - "простой текст"


далее более важный параметр:

mail_location = maildir:/var/vmail/%d/%n/Maildir 

- указывает - где будут храниться почтовые ящики юзверей


Теперь переходим к секции "auth default". Во-первых определяем механизм аутентификации

mechanisms = plain

Если посмотреть сквозь секцию - можно найти массу способов, с помощью которых dovecot может получить доступ к инфе юзверей, но т.к. мы выбрали формат хранения данных SQL - нас интересует параметры касающиеся именно SQL. Соответственно указываем формат хранения данных и расположение юзверских почтовых ящиков:

passdb sql {
     args = /etc/dovecot/dovecot-sql.conf
} 

userdb static {
     args = uid=5000 gid=5000 home=/var/vmail/%d/%n allow_all_users=yes
} 

Секцию "passdb pam" лучше закомментировать, ибо в этом случае dovecot будет еще проверять и системных юзверей, когда кто то будет получать почту, что будет "раздувать" логи предупреждениями


Теперь переходим к секции "socket listen". В ней определяется корневые файлы (socket files), которые используются для обращения к механизмам аутентификации Dovecot:

 socket listen {
     master {
         path = /var/run/dovecot/auth-master
         mode = 0600
         user = vmail
     }
      client {
         path = /var/spool/postfix/private/auth
         mode = 0660
         user = postfix
         group = postfix
     }
 } 

Секция "master" необходима для получения транспортным агентом Dovecot`а доступа к юзерской инфе. В секции же "client" создается "корешок" (socket) внутри chroot`ской директории Postfix`а. Под сhroot - подразумевается, что часть postfix`a помещается в /var/spool/postfix и можно получить доступ только к этой директории или ее поддиректориям. Сие организовано в целях секьюрности: даже если postfix хакнут - доступ получат только в пределах /var/spool/postfix, а в другие директории root`вский доступ будет закыт!


Ну, и, наконец, секция "protocol lda". LDA - local delivery agent - локальный транспортер:

protocol lda {
     log_path = /var/vmail/dovecot-deliver.log
     auth_socket_path = /var/run/dovecot/auth-master
     postmaster_address = postmaster@example.com
     mail_plugins = sieve } 


postmaster_address - мыло админа почтового сервера

log_path - опционально задаваемая директория для логов нашего локального транспортера (нужно в основном для отладки при установки фильтров), поскольку этот лог может расти очень быстро - его нужно подрезать. Этим и займемся. Рисуем конфиг /etc/logrotate.d/dovecot-deliver:

/var/vmail/dovecot-deliver.log {
         weekly
         rotate 14
         compress
} 

Осталось только внести изменения в /etc/dovecot/dovecot-sql.conf:

driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=mailadminpass
default_pass_scheme = PLAIN
password_query = SELECT email as user, password FROM users WHERE email='%u'; 

Рестартим Dovecot:

#>/etc/init.d/dovecot restart 

и глядим в логи (/var/log/mail/mail.log). Должно быть что то вроде:

dovecot: Dovecot v1.0.rc15 starting up
dovecot: auth-worker(default): mysql: Connected to 127.0.0.1


Ну и конечно же настраиваем права доступа:

#> chgrp vmail /etc/dovecot/dovecot.conf
#> chmod g+r /etc/dovecot/dovecot.conf



<-- Раздел 3. Связка Postfix - MySQL

1 комментарий: