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

Честно спертая статья, с которой вышло все поставить, и нареште заработало, копирайт автора ставить не буду так как клонов много и кто автор не понятно.
Пока что тупо скопирую для заметки, потом буду править все их глюки :-) а они есть. + Антивир прикручу
Поехали:
Задача: необходимо установить и настроить почтовый сервер для нескольких почтовых доменов. В качестве МТА я выбрал Exim.
Список доменов, пользователей и т.д. будут хранится в MySQL.
Итак, что мы имеем: ОС FreeBSD, MySQL сервер уже установлен . Приступаем к установке:
1. Добавляем в /etc/make.conf опции для сборки exim (так же у меня указана версия MySQL, c которой собираются порты и в которых используется MySQL)
#ee /etc/make.conf
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
WITHOUT_X11=yes
.endif

2. Устанавливаем exim с поддержкой MySQL из портов:
#cd /usr/ports/mail/exim
#make install clean

3. Заменяем sendmail в /etc/mail/mailer.conf на exim:
#ee /etc/mail/mailer.conf
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://ussr.kiev.ua/files/exim_db.sql; mysql -u root -p exim_db < exim_db.sql
или
#fetch -v http://ussr.kiev.ua/files/exim_db.tgz; tar -zxvf exim_db.tgz; mysql -u root -p exim_db < exim_db.sql

8. phpMyAdmin – веб интерфейс для управления сервером MySQL (нашем случаи добавляем: домен, юзеров и и тд...
Описание таблиц БД exim_db:
Таблица accounts – учётные записи пользователей
Таблица aliases – алиасы для почтовых адресов
Таблица domains – имена почтовых доменов, адреса МХ-ов и их ip-адресов
Таблица spam_domains – список “чёрных” доменов
Таблица spam_emails – список “чёрных” почтовых адресов
Таблица spam_ip_senders – список “чёрных” ip-адресов
Таблица white_domains – список “белых” доменов
Таблица white_emails – список “белых” почтовых адресов
Таблица white_ip_senders – список “белых” ip-адресов

9. Конфигурируем exim. Конфиг длинный, и поэтому его описание я опускаю.
Рабочий конфиг можно взять по адресу:
http://ussr.kiev.ua/files/configure
primary_hostname = olymp.org.ua
CONFIG_PREFIX=/usr/local/etc/exim
BASEIP = 212.40.34.149
hide mysql_servers = localhost/exim_db/exim/Mta_MaileR
host_lookup = *
domainlist local_domains = @:mysql;SELECT domain from domains where domain='$domain'
#hostlist relay_from_hosts = localhost
hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/16 : 172.16.100.0/24
message_id_header_domain = $sender_address_domain primary_hostname - Домен BASEIP - Внешний IP hostlist relay_from_hosts - Локальные пользователи. Добавьте через двоеточие туда вашу сеть (и пока что всё, остальные мелочи и не только в коментах, и статейках к примеру эта )

#rm /usr/local/etc/exim/configure #cd /usr/local/etc/exim/ #fetch -v http://ussr.kiev.ua/files/configure
и чуть подрихтуем под себя :-)
#ee /usr/local/etc/exim/configure

10. Правим rc.conf
#ee /etc/rc.conf
sendmail_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
sendmail_submit_enable="NO"
exim_enable="YES"
dovecot_enable="YES"

Запускаем 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 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 ;

13. Конфигурируем dovecot
#mv /usr/local/etc/dovecot.conf /usr/local/etc/dovecot.conf.orig
#cd /usr/local/etc/ ; fetch -v http://ussr.kiev.ua/files/dovecot.conf ; fetch -v http://ussr.kiev.ua/files/dovecot-sql.conf

**http://ussr.kiev.ua/files/dovecot-all.tar

14. Запускаем dovecot
#/usr/local/etc/rc.d/dovecot start
15. Настраиваем почтовый клиент на получение-отправку почты.
В качестве логина используем e-mail адрес, vasya@firma.ua

Ставим Roundcube webmail
клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML

roundcube

#cd /usr/ports/mail/roundcube/
#make install clean

 
нас интересует только опция MYSQL.

roundcube

После чего начнется инсталяция. Программа сама подтянет все необходимые ей модули и библиотеки.
Когда закончится установка, Вы увидите следующее в Вашем каталоге:
#ls /usr/local/www/roundcube/

Начем настраивать программу.
Для начала, необходимо создать базу данных roundcubemail и пользователя roundcube для roundcube
#mysqladmin -u root -p create roundcubemail
#mysql -u root -p
#grant all on roundcubemail.* to 'roundcube'@'localhost' identified by 'mysql_password';

Заливаем данные в базу данных:
#mysql -u root -p roundcubemail < /usr/local/www/roundcube/SQL/mysql.initial.sql

После этого, в базе данных уже есть все необходимые таблицы для работы roundcube. Теперь нам необходимо подправить
конфигурационный файл
#ee /usr/local/www/roundcube/config/db.inc.php.
Для этого нам необходимо отредактировать параметры подключения к базе данных. Тут необходимо поменять все "под себя".

$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

Так же, нам необходимо отредактировать файл
#ee /usr/local/www/roundcube/config/main.inc.php
в котором нам необходимо поменять следующие параметры:

$rcmail_config['default_host'] = 'localhost';
или домен $rcmail_config['default_host'] = 'olymp.org';

и

$rcmail_config['enable_installer'] = true;

Теперь необходимо выставить нужные права:
#cd /usr/local/www/roundcube/

#sudo chown -R www-data:www-data logs/ temp/

После чего, заходим

http://localhost/roundcube/installer

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.