FreeBSD: Настройка почтового сервера на базе Exim, MySQL и Dovecot

Эта запись опубликована в рубрике [ FreeBSD ]

Задача: необходимо установить и настроить почтовый сервер для нескольких почтовых доменов. В качестве МТА я выбрал Exim. Список доменов, пользователей и т.д. будут хранится в MySQL.
Итак, что мы имеем: ОС FreeBSD, на сервере 8 ip-адресов, MySQL сервер уже установлен . Приступаем к установке:

  1. Добавляем в  /etc/make.conf опции для сборки exim (так же у меня указана версия MySQL, c которой собираются порты и в которых используется MySQL):
    DEFAULT_MYSQL_VER=51
    .if ${.CURDIR:N*/usr/ports/mail/exim} == “”
    WITH_MYSQL=yes
    WITH_SPF=yes
    WITH_SRS=yes
    WITHOUT_IPV6=yes
    WITHOUT_MAILSTORE=yes
    WITHOUT_MBX=yes
    WITHOUT_PASSWD=yes
    WITHOUT_PAM=yes
    WITHOUT_AUTH_SPA=yes
    WITHOUT_NIS=yes
    .endif
  2. Устанавливаем exim с поддержкой MySQL из портов:
    cd /usr/ports/mail/exim ; make install clean ; echo ‘exim_enable=”YES”‘ >> /etc/rc.conf
  3. Заменяем sendmail в /etc/mail/mailer.conf на exim:
    sendmail        /usr/local/sbin/exim
    send-mail       /usr/local/sbin/exim
    mailq           /usr/local/sbin/exim -bp
    newaliases      /usr/local/sbin/exim -bi
    hoststat        /usr/local/sbin/exim
    purgestat       /usr/local/sbin/exim
  4. Создаём директорию, в которую exim будет складывать почту (у меня это /home/mail/domains)
    mkdir -p /home/mail/domains ; chown -R mailnull:mail /home/mail
  5. Создаём БД для exim:
    mysqladmin -u root -p create exim_db
  6. Создаём пользователя MySQL и выделяем ему права на БД:
    echo “GRANT SELECT, INSERT, UPDATE, LOCK TABLES, CREATE, DROP, DELETE, INDEX ON exim_db.* TO exim@localhost IDENTIFIED BY ‘Mta_MaileR’” | mysql -u root -p mysql
  7. Создаём структуру таблиц (описание таблиц и полей в конце статьи):
    fetch -v http://www.sysadminpages.com/files/exim/exim_db.sql; mysql -u exim -p exim_db < exim_db.sql
  8. Подключаемся к БД и добавляем записи для 1-го почтового домена (Для примера взял вымешленые имя домена и ip-адрес. Для рабочего почтового сервера необходимо заменить значения на реальные):
    mysql -u exim -p exim_db
    mysql>INSERT INTO domains VALUES(’example.local’,’mail.example.local’,’10.1.10.1′);
    mysql>INSERT INTO accounts (login, password, maildir, uid, gid, mailquota) VALUES (’admin@example.local‘, ‘Pass4Admin’, ‘/home/mail/domains/example.local/admin/Maildir’, 26, 26, 2000);
  9. Конфигурируем exim. Конфиг длинный, и поэтому его описание я опускаю. Рабочий конфиг можно взять по адресу:
    http://www.sysadminpages.com/files/exim/configure
  10. Запускаем exim
    /usr/local/etc/rc.d/exim start
  11. Для проверки работоспособности отправляем тестовое письмо
    mail -s ‘test message’ admin@example.local
    test message
    .
    Смотрим лог exim:
    tail /var/log/exim/mainlog
    Если всё правильно настроено, то в логе будут записи примерно следующего содержания:
    2009-07-06 08:26:54 1MNnHZ-000CJx-U5 <= root@srv.example.local U=root P=local S=363
    2009-07-06 08:26:54 1MNnHZ-000CJx-U5 => admin <admin@example.local> R=localuser T=local_delivery
    2009-07-06 08:26:54 1MNnHZ-000CJx-U5 Completed
  12. Устанавливаем dovecot
    cd /usr/ports/mail/dovecot ; make WITH_SSL=yes WITHOUT_IPV6=yes WITH_MYSQL=yes install clean ; echo ‘dovecot_enable=”YES”‘ >> /etc/rc.conf
  13. Конфигурируем dovecot
    mv /usr/local/etc/dovecot.conf /usr/local/etc/dovecot.conf.orig
    cd /usr/local/etc/ ;
    fetch -v http://www.sysadminpages.com/files/dovecot/dovecot.conf ; fetch -v http://www.sysadminpages.com/files/dovecot/dovecot-sql.conf
  14. Запускаем dovecot
    /usr/local/etc/rc.d/dovecot start
  15. Настраиваем почтовый клиент на получение-отправку почты. В качестве логина используем e-mail адрес.

Описание таблиц БД exim_db:

Таблица accounts – учётные записи пользователей
Таблица aliases – алиасы для почтовых адресов
Таблица domains – имена почтовых доменов, адреса МХ-ов и их ip-адресов
Таблица spam_domains – список “чёрных” доменов
Таблица spam_emails – список “чёрных” почтовых адресов
Таблица spam_ip_senders – список “чёрных” ip-адресов
Таблица white_domains – список “белых” доменов
Таблица white_emails – список “белых” почтовых адресов
Таблица white_ip_senders – список “белых” ip-адресов

P.S. Через несколько дней допишу как добавить SSL/TLS для почтовых серверов, антивирус и Spamassassin.

Гостевой пост от sysadminpages.com

Постовые: дмитрий рустамов, дизайн интерьера квартир, комплекс гимнастических упражнений

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд
Метки: [ , , , ]
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

Нет комментариев

(Обязательно)
(Обязательно, не публикуется)