Статья про установку DBMail

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

Статья про установку DBMail

Сообщение Игорь Вершинин » 08 фев 2007, 12:11

Я вот тут набросал для своих сисадминов небольшое руководство по установке сервера под Fedora Core 6. Один из его кусков посвящен установке DBMail. Так как этот пакет стандартно не идет с FC6, то его надо собирать. Просьба прокомментировать эту статью с точки зрения стилистики, правильности команд, более оптимальным путям выполнения задач и т.п. Хочется, чтобы самый зеленый новичок в Линуксе (но не в администрировании вообще) мог, используя этот материал, установить данную службу.
Подразумевается, что LDAP поднят и работает. MTA (у меня Postfix) также. По LDAP аноним может просматривать все кроме паролей и может авторизовываться.
Что не получилось. Не получилось почему-то использовать фильтр объектов в DBMail при работе с LDAP. Хотя он установлен, но фильтрация не проходит. Попадают все объекты в указанном контексте. Т.е. у меня в тестовом дереве заведено 10 пользователей, составленных из разных классов. Все могут работать с почтой, хотя не все это разрешено.
Аватара пользователя
Игорь Вершинин
 
Сообщения: 387
Зарегистрирован: 05 июн 2002, 20:34
Откуда: Волгоград

Сообщение Игорь Вершинин » 08 фев 2007, 12:12

Установка почтовой системы на базе Postfix и DBMail

1. Установка DBMail

DBMail – это набор программ позволяющих получать доступ к электронной почте через протоколы IMAP4 и POP3. Хранится почта в СУБД, что положительно сказывается на общей безопасности системы. В качестве СУБД будем использовать PostgreSQL, хотя есть еще варианты – MySQL и SQLite. Выбор пал на PostgreSQL из-за того, что новая версия 1С 8.1 также работает с этой СУБД. Т.е. упрощаем общее администрирование системы.
Кроме того, несомненным плюсом использования DBMail является простое архивирование и восстановление копии почтовой базы, используя стандартные механизмы СУБД. Почтовая база – просто набор таблиц в хранилище.
Собираем все под Fedora Core 6. Собираем из исходников, так как готового rpm нет. Может быть появится для Fedora 7, не знаю, в анонсах ничего нет. При рутинных операциях копирования, переименовывания и т.п. рекомендую пользоваться программой Midnight Commander (mc) аналогичной Far или Norton Commander (для ms windows).
При сборке надо учесть, что необходимо наличие следующих библиотек в системе – gmime-devel, glib2-devel, openldap-devel, libsieve-devel. Проверить их наличие можно командой:

rpm –q gmime-devel (glib2-devel, openldap-devel, libsieve-devel)

В ответ команда должна выдать наименование библиотеки с ее версией, например,

openldap-devel-2.3.27-4

это значит, что все нормально – пакет установлен. В случае его отсутствия его надо установить командой:

yum install openldap-devel (gmime-devel, glib2-devel, libsieve-devel)

Скачиваем последнюю версию с сайта разработчика www.dbmail.org . На момент написания статьи последней была версия 2.2.2. Распаковываем в свой домашний каталог.
Создаем пользователя dbmail и группу dbmail как системные учетные записи:

groupadd –r dbmail
useradd –g dbmail –c DBMail –s /sbin/nologin –d / –r dbmail

от их имени будет работать DBMail. Запускаются процессы от имени root, а после запуска сбрасывают привилегии до этих пользователей.
Начинаем компиляцию. Переходим в каталог с исходными текстами DBMail:

./configure –prefix=/usr –with-pgsql –with-ldap --with-sieve

Т.е. говорим, что компилировать надо с поддержкой PostgreSQL, OpenLDAP и Sieve (языка описания действий над почтовыми сообщениями на стороне сервера). Изменяем префикс размещения исполняемых файлов (по умолчанию там стоит /usr/local).
Затем команды:

make all
make install
make clean

После чего, компиляцию можно считать успешной. Осталось скопировать файл dbmail.conf в каталог /etc, а файл dbmail.schema в /etc/openldap/schema.
Исправляем файл /etc/openldap/slapd.conf, добавляя строку

include /etc/openldap/schema/dbmail.schema

в область, где уже стоят подобные записи (обычно в начале конфигурационного файла), но только после них, последней.
Редактируем файл /etc/dbmail.conf.

DRIVER = pgsql
AUTHDRIVER = ldap
HOST = localhost (или адрес машины, где установлена СУБД, можно как IP-адрес, так и DNS-имя машины)
USER = dbmail
PASS = dbmail (или тот, который установили)
DB = dbmail
SENDMAIL = /usr/sbin/sendmail (лучше указать /usr/sbin/sendmail.postfix, так как /usr/sbin/sendmail – лишь ссылка на ссылку /etc/alternatives/mta, которая указывает на почтовик, известный системе; надо быть уверенным, что последняя ссылка указывает туда, куда надо; утилита system-switch-mail для Gnome может помочь, или ее консольный аналог system-switch-mail-nox)
EFFECTIVE_USER = dbmail
EFFECTIVE_GROUP = dbmail
BINDIP = * (ко всем доступным локальным интерфейсам, можно перечислить необходимые через пробел или запятую)
MAXCONNECT = 100 (большее значение на слабых серверах может полностью грузить систему, если не будет хватать, то всегда потом можно увеличить)
MAX_ERRORS = 50 (перезапуск процесса, если процесс допустил указанное число ошибок соединения)
resolve_ip = yes
[LDAP]
PORT = 389
VERSION = 3
HOSTNAME = localhost (или адрес машины, на которой запущен LDAP-сервер)
BASE_DN = ou=Users,dc=test,dc=com,dc=ru (здесь надо указать контекст, где расположена информация о ваших пользователях)
BIND_DN =
BIND_PW = (соединяемся анонимно с сервером)
SCOPE = SubTree
USER_OBJECTCLASS = top,account,dbmailUser (фильтр поиска для объектов)
FORW_OBJECTCLASS = top,account,dbmailForwardingAddress (тот же фильтр, но для объектов перенаправления почты)

Остальные поля остаются без изменений.

Собственно, все. Можно запускать dbmail-imapd и наслаждаться. Но это неудобно. Поэтому создадим файл запуска сервиса. Переходим в директорию исходных тектов DBMail. Затем оттуда в /contrib/startup-scripts/redhat. Копируем файлы dbmail-imapd.init и dbmail-lmtpd.init в /etc/rc.d/init/d. Переименовываем их в dbmail-imapd и dbmail-lmtp соответственно.
Теперь необходимо прописать новый сервис.

system-config-service

Далее через пункт меню Действия добавляем два новых сервиса по именам файлов (dbmail-imapd и dbmail-lmtpd). Затем через меню Изменить Уровень задаем уровни запуска системы и проставляем отметки, чтобы эти два сервиса запускались. Все достаточно просто. Запуск должен производиться на уровнях 3, 4 и 5.
Можно прописать все тоже самое через консоль:

chkconfig –add dbmail-imapd
chkconfig –level 3 dbmail-imapd on
chkconfig –level 4 dbmail-imapd on
chkconfig –level 5 dbmail-imapd on
chkconfig –add dbmail-lmtpd
chkconfig –level 3 dbmail-lmtpd on
chkconfig –level 4 dbmail-lmtpd on
chkconfig –level 5 dbmail-lmtpd on

Все. Можно управлять DBMail через стандартные механизмы:

service dbmail-imapd start
service dbmail-lmtpd start

Ну и после перезагрузки сервера данные службы будут автоматически подгружаться.
Аватара пользователя
Игорь Вершинин
 
Сообщения: 387
Зарегистрирован: 05 июн 2002, 20:34
Откуда: Волгоград

Сообщение Музалёв Николай » 08 фев 2007, 15:49

в порядке "5ти копеек"
Возможно, какие то тонкости можно уточнить в статье коллеги:
http://www.opennet.ru/base/net/dbmail_sendmail.txt.html
armoracia rusticana (lat.), "блины" и "фиги" всех видов, а также смайлики - крайне не желательны !
Музалёв Николай
 
Сообщения: 3026
Зарегистрирован: 04 июн 2002, 19:58
Откуда: Беларусь. МИНСК.

Сообщение Игорь Вершинин » 08 фев 2007, 17:06

:) Знаем мы эту статью. По ней возникло очень много вопросов у моих. Особенно про конфиги. Во-первых, после Винды непривычно править текстовые конфиги, а, во-вторых, после русскоязычной Винды многие знания в английском становятся утерянными. Т.е. надо разбираться долго и вдумчиво.
Решили мы один раз разобраться, а потом сами для себя написать шпаргалку, чтобы потом по ней быстро все у клиентов подмать.
Аватара пользователя
Игорь Вершинин
 
Сообщения: 387
Зарегистрирован: 05 июн 2002, 20:34
Откуда: Волгоград

Сообщение Сергей Дубров » 09 фев 2007, 09:38

Игорь Вершинин писал(а):Копируем файлы dbmail-imapd.init и dbmail-lmtpd.init в /etc/rc.d/init/d

Вот за что я люблю *никсы - "поставил галочку не там - и нет больше Америки" © :). У вас мелкая опечатка, правильный путь: /etc/rc.d/init.d
Аватара пользователя
Сергей Дубров
 
Сообщения: 2077
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН


Вернуться в *nix

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron