Пошаговое руководство по установке Exim+MySQL+Dovecot+SSL на FreeBSD | Администрирование и применение FreeBSD

Пошаговое руководство по установке Exim+MySQL+Dovecot+SSL на FreeBSD

Исходные данные:
IP-адрес сервера: 192.168.36.1
DNS имя: mail.sentec.ru
Что требуется?
Поднять SMTP, POP3, POP3S, IMAP, IMAPS-сервисы на примере домена sentec.ru с поддержкой защищенного протокола и почтовой базы данных на MySQL.
Завести начальный почтовый ящик — info@sentec.ru.

1.  Установим пакет openssl (нужен для генерации сертификатов Dovecot).

Фрагмент кода.

# cd /usr/ports/security/openssl
# make install clean

Таблица конфигурациии пакета.

2. Установим MySQL (если надо).
3. Ставим exim (на момент написания статьи 4.72).

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

Опции установки приведены в таблице 1.

[ ] ALT_CONFIG_PREFIX Allow alternate configuration files
[X] AUTH_CRAM_MD5 Enable CRAM-MD5 authentication mechanisms
[X] AUTH_DOVECOT Enable Dovecot authentication mechanisms
[X] AUTH_PLAINTEXT Enalbe plaintext authentication
[ ] AUTH_RADIUS Enable radius (RFC 2865) authentication
[ ] AUTH_SASL Enable use of Cyrus SASL auth library
[ ] AUTH_SPA Enable Secure Password Authentication
[X] CDB Enable CDB-style lookups
[ ] CONTENT_SCAN Enable exiscan email content scanner
[X] DAEMON Install scripts to run as a daemon
[ ] DCC Enable DCC at ACL support via dccifd
[ ] DEBUG Build with debugging symbols
[X] DNSDB Enable DNS-style lookups
[X] DSEARCH Enable directory-list lookups
[X] EMBEDDED_PERL Enable embedded Perl interpreter
[ ] EXIMON Build eximon monitor (require XFree86!)
[X] ICONV Enable header charset conversion
[ ] IPV6 Enable IPv6 support
[ ] KAS Build with Kaspersky AntiSpam local scan
[X] LMTP RFC2033 SMTP over command pipe transport
[X] LSEARCH Enable wildcarded-file lookups
[X] MAILDIR Enable Maildir mailbox format
[ ] MAILSTORE Enable Mailstore mailbox format
[ ] MBX Enable MBX mailbox format
[X] MYSQL Link against libmysqlclient library
[ ] NIS Enable NIS-style lookups
[X] OLD_DEMIME Enable old, deprecated demime ACL
[ ] OPENLDAP Link against libldap
[ ] PAM Enable PAM authentication mechanisms
[ ] PASSWD Enable /etc/passwd lookups
[ ] PGSQL Link against libpq
[ ] READLINE Enable readline(3) library
[ ] SASLAUTHD Enable use of Cyrus SASL auth daemon
[ ] SA_EXIM SA-Exim support
[ ] SO_1024 Build with Spamoborona-1024 local scan
[X] SPF Enable Sender Policy Framework checking
[ ] SQLITE Enable SQLite lookups
[X] SRS Enable Sender Rewriting Scheme
[ ] SRS_ALT Enable alternative SRS library
[X] SUID Install the exim binary suid root
[ ] TCP_WRAPPERS Enable /etc/hosts.allow access control
[X] TLS Link against OpenSSL
[ ] WISHLIST Include the unsupported patches
[ ] XCLIENT Enable XCLIENT command in exim

4. Отредактируем файл /etc/mail/mailer.conf, заменив sendmail на 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

Обратите внимание, что в двух строках появились ключи.
5. Создаем рабочие папки для домена (или доменов) и почтового ящика.

# mkdir -p /data/mail/sentec.ru/info
# chown -R mailnull:mail /data/mail

6. Создаем БД exim и заполняем ее начальной информацией.

# mysql -u root -p
mysql> create database exim;
mysql> grant all privileges on exim.* to ‘exim’@’localhost’ identified by ‘exim_pass’;
mysql>exit
# fetch http://www.cool-movies.ru/lib/files/sql/exim.sql
# mysql -u root -p exim < exim.sql

Далее надо войти в mysql-оболочку и подправить таблицы accounts и domains под себя.

Назначение таблиц БД exim логично вытекает из их названия.

  • domains — имена почтовых доменов, адреса МХ-серверов и их IP-адресов
  • accounts — учётные записи пользователей
  • aliases — псевдонимы почтовых адресов
  • spam_domains — список запрещенных доменов
  • spam_emails — список запрещенных почтовых адресов
  • spam_ip_senders — список запрещенных ip-адресов
  • white_domains — список разрешенных доменов
  • white_emails — список разрешенных почтовых адресов
  • white_ip_senders — список разрешенных ip-адресов

7. Скачаем готовый рабочий файл конфигурации Exim:

# fetch http://www.cool-movies.ru/lib/files/conf/configure.exim
# mv /usr/local/etc/exim/configure /usr/local/etc/exim/configure.1st
# mv configure.exim /usr/local/etc/exim/configure
# chown root:wheel /usr/local/etc/exim/configure

Естественно, подправим /usr/local/etc/exim/configure (в простом варианте — первые четыре строки файла) под себя. В конце 4-ой строки (hide mysql_servers..) вместо exim_pass надо поставить пароль на вашу БД exim.

8. Отредактируем /etc/rc.conf.

# echo ‘sendmail_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_submit_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_outbound_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_msp_queue_enable=»NO»‘ >> /etc/rc.conf
# echo ‘spamd_enable=»YES»‘ >> /etc/rc.conf
# echo ‘exim_enable=»YES»‘ >> /etc/rc.conf
# echo ‘dovecot_enable=»YES»‘ >> /etc/rc.conf

9. Запускаем exim.

# /usr/local/etc/rc.d/exim start

10. Проверим отклик сервера:

# telnet localhost smtp
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.sentec.ru ESMTP Sendmail 8.14.3/8.14.3; Tue, 26 Oct 2010 20:53:28 +0300
quit
Connection closed by foreign host.
#

Если не увидите что-либо подобное — надо проверить все настройки еще раз.
11. Отправим тестовое письмо.

# mail -s ‘First letter for sentec mail server’ info@sentec.ru
This is test message!
.
EOT
#

Посмотрим, что в лог-файле:

# tail /var/log/exim/mainlog

Вот примерная картинка, которую мы увидим в случае успеха:

2010-10-26 21:34:24 1PAnPk-0005al-AG <= root@mail.sentec.ru U=root P=local S=323 2010-10-26 21:34:24 1PAnPk-0005al-AG => info <info@sentec.ru> R=localuser T=local_delivery
2010-10-26 21:34:24 1PAnPk-0005al-AG Completed

12. Теперь надо сделать так, чтобы мы смогли получать почту с нашего сервера.
Для этого ставим проверенный и надежный POP/IMAP-сервер Dovecot (голубятня :)).

# cd /usr/ports/mail/dovecot
# make && make install && make clean

13. Копируем образцы конфигураций в папку /usr/local/etc и подправляем под себя.

# fetch http://www.cool-movies.ru/lib/files/conf/dovecot_conf.tgz

14. Создадим SSL-сертификаты. Информация об издателе будет взята из файла dovecot-openssl.cnf.

# mkdir -p /etc/ssl/certs
# mkdir -p /etc/ssl/private
# /usr/local/share/examples/dovecot/mkcert.sh
# ls -l /etc/ssl/certs && ls -l /etc/ssl/private

15. Запускаем dovecot.

# /usr/local/etc/rc.d/dovecot start

16. Настраиваем почтового клиента на получение-отправку почты с помощью разрешенных протоколов (SMTP/POP3/IMAP). Не забудьте, что в /etc/rc.firewall должны быть разрешены соответствующие порты: 25, 110, 143, 993.
На этом — все.

Один отзыв на «Пошаговое руководство по установке Exim+MySQL+Dovecot+SSL на FreeBSD»


top crypto exchange software solutions for your business 35d8986b

  1. Cosmopull:

    Спасибо за подробную статью,пытаюсь настроить по вашей инструкции.
    Но пока заткнулся в самом конце, когда делаю
    /usr/local/share/examples/dovecot/mkcert.sh

    Ошибка —
    /usr/local/share/examples/dovecot/mkcert.sh
    error on line -1 of dovecot-openssl.cnf
    47960:error:02001002:system library:fopen:No such file or directory:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bss_file.c:126:fopen(‘dovecot-openssl.cnf’,’rb’)
    47960:error:2006D080:BIO routines:BIO_new_file:no such file:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bss_file.c:129:
    47960:error:0E078072:configuration file routines:DEF_LOAD:no such file:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/conf/conf_def.c:197:

    В 7-ом шаге у вас ошибка, у вас chown root:wheel /usr/local/etc/configure ,
    но должно быть chown root:wheel /usr/local/etc/exim/configure

Ваш отзыв

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