Maint Laboratory

Лаборатория Maint

 
    Главная    Программы    Библиотеки    Документация    Услуги    Контакты  

Настройка postfix+dovecot+ldap

2. Часть вторая IMAP/POP3 сервер Dovecot

  Это достаточно безопасный сервер, насколько может быть безопасно ПО. Мне пришлось его пересобрать для Fedora 11 и CentOS 5.3, т.к. его основной файл конфигурации dovecot.conf находиться непосредственно в каталоге /etc. Я определил его в /etc/dovecot. Как я обратил внимание, это делают почти все авторы статей по dovecot. Файл spec для версии 1.2.4 можно забрать здесь. Я привожу конфигурацию dovecot без ssl, поддерживающую протоколы pop3 и imap.

Файл конфигурации dovecot.conf

protocol pop3 {
    listen = *:110
}
protocol imap {
    listen = *:143
}

Кто как, я предпочитаю хранить логи для сервисов в отдельных файлах

log_path = /var/log/dovecot/dovecot.log

Отключаю поддержку SSL/TLS. Для 1.0.x

ssl_disable = yes

Для 1.2.x

ssl = no

Приветствие для клиентов сервера. Можно сказать что-нибудь доброе или просто, "версия сервера не твое дело". Остановимся на нейтральном.

login_greeting = Welcome to IMAP/POP3 server

Теперь расположение почтового ящика.

mail_location = mbox:/var/spool/dovecot/%n:INBOX=/var/spool/mail/%n

Здесь необходимы некоторые пояснения. Сама почта у меня будет находится в стандартном каталоге для почты. Мне показалось, что будет правильным, если я смогу посмотреть почту на локальной машине не только через pop/imap клиента, а локально. Например через mutt или mail. Ну а все причиндалы dovecot вынесем в отдельную папку. Напоминаю, что почтовый клиент, обслуживает, как локальных(реальных), так и виртуальных пользователей

Включаем отладку, очень полезно при первоначальной настройке и поиске неисправностей. После настройки лучше отключать.

mail_debug = yes

Задаем допустимый интервал UID для пользователей, по умолчанию 500 и выше. Это сделано для того, чтобы быть увереным в том, что пользователи не смогут войти как демоны или другие системные пользователи. Запрет входа как root встроен в бинарник dovecot и не может быть изменен, даже если установить first_valid_uid в 0.

first_valid_uid = 500
last_valid_uid = 50000

Теперь задаю интервал для группы. Минимальных GID для группы у меня выставлен в 12, т.к. под этим номером у меня находится группа mail. Таким образом я позволяю работать с ящиком как с локальным и виртуальным одновременно.

first_valid_gid = 12
last_valid_gid = 50000

Ну и остались только пользователь и группа. Только для 1.2.x.

mail_uid = virtual
mail_gid = mail

Следующие параметры отвечают за диагностику. Для отладки они нужны, а после их следует отключить.
Высокий уровень информативности. Используется при поиске ошибок, связанных с аутентификацией.

auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes

Осталось только определить способ аутентификации

auth default {
  # Разделенный пробелами список, используемых механизмов аутентификации:
  mechanisms = plain login
  # LDAP database
  passdb ldap {
    args = /etc/dovecot/dovecot-ldap.conf
  }
  userdb ldap {
    args = /etc/dovecot/dovecot-ldap.conf
  }
  user = virtual
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = virtual
      group = virtual
     }
    client {
      path = /var/spool/postfix/private/dovecot-smtp-auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

Файл конфигурации dovecot-ldap.conf
Для начала определяем хост, на котором крутится LDAP-сервер. Формат параметра host = hostname:port. У меня LDAP крутится на одном сервере с почтой.

hosts = 127.0.0.1

Определяем пользователя (обзовем его ldapuser), для захода на сервер. Хост example.ru (ты же в Россее живем)

dn = cn=ldapuser,dc=example,dc=ru

Задаем пароль для входа, ну буквально "secret_password";

dnpass = secret_password

Ходить будем не от пользователя. Я так решил ;-)

auth_bind = no

LDAP base.

base = dc=example, dc=ru

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

user_filter = (&(objectClass=mailAccount)(mailBox=%u))

Определяем соответствие переменных

pass_attrs = mailBox=user,userPassword=password

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

pass_filter = (&(objectClass=mailAccount)(mailBox=%u))

Определяемся, чем шифруем пароль

default_pass_scheme = {здесь ваши личные пристрастия, CRYPT, MD5 и т.п}

Ну и остались только пользователь и группа. (для dovecot 1.0.x). Для 1.2.x определяется в файле конфигурации dovecot.conf

user_global_uid = virtual
user_global_gid = mail

На этом настройка dovecot закончена. Осталось только проверять. Напоминаю, что я описываю только критичные для данной конфигурации настройки. И предлагаю немного подумать.
 


[Продолжение следует...]

 
  [ Главная ]    [ Программы ]    [ Библиотеки ]    [ Документация ]    [ Услуги]     [ Контакты ]       Зеркало