Установка Exim - почтового сервера

   На собственном сервере должна работать своя почтовая программа. Будем ставить Exim. Я считаю это самый надежный, легко настраиваемый почтовик. Перед установкой нужно кое что подкрутить. И так, приступаем:

Exim с базой mysql

имеем исходные данные:

домен: 2gogo.ru
IP-адрес сервера: 195.135.214.154
имя сервера: rtfm.2gogo.ru

Cогласно RFC, необходимо, чтобы "прямая" и "обратная" запись в ДНС совпадали. Т.e. в нашем случае, необходимо чтобы запись rtfm.2gogo.ru резолвилась в IP-адрес 195.135.214.154, а PTR-запись 195.135.214.154 была установлена в rtfm.2gogo.ru.

Проверяем:

# host rtfm.2gogo.ru
rtfm.2gogo.ru has address 195.135.214.154

# host 195.135.214.154
195.135.214.154.in-addr.arpa domain name pointer rtfm.2gogo.ru

Теперь нужно поправить DNS запись на нашем домене, вернее должно быть присутствие двух записей.

1       MX          10      rtfm.2gogo.ru.  
2       rtfm           A      195.135.214.154

Проверяем

# dig MX 2gogo.ru
 

   К установке подготовились, будем ставить. Немного поправим файлик /etc/make.conf, чтобы сразу определить опции, с которыми будем собирать и главное не забыть koi8.

# директория с портами
PORTSDIR?=      /usr/ports
# EXIM
.if ${.CURDIR} == ${PORTSDIR}/mail/exim
WITH_MYSQL= yes
LOG_FILE_PATH?= syslog
WITH_CONTENT_SCAN= yes
WITH_DEFAULT_CHARSET?= koi8-r
WITHOUT_IPV6= yes
WITH_BDB_VER?= 4
.endif

Переходим в порты, и запускаем процесс установки:

# cd /usr/ports/mail/exim

# make install clean

Если желаете выставить какие то свои опции, выставляйте, главное - не забыть включить поддержку MySQL...  После окончания установки, сразу ставим Clamav.

# cd /usr/ports/security/clamav

# make install clean

   Разрешаем запуск Clamav, exim и гасим sendmail в файле /etc/rc.conf (заносим в конец файла):

clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
sendmail_enable="NONE"
exim_enable="YES"

   Чтобы системные команды управления почтой сохранили работоспособность, надо исправить /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

   Далее нужно поправить файл конфига Exim, который лежит здесь /usr/local/etc/exim/configure. Громадный файлик, поэтому выложу его на FTP (который стоит на моём серваке, и который ставился по вот этой статье), если кому надо забирайте отсюда. Там все понятно, все коменты на русском. Главное не забудьте свои данные поменять где надо.

Теперь будем делать базу в mysql. Если mysql ещё не стоит, ставим, можно по моей статье, которая лежит здесь. Если mysql стоит, то берём два файлика: exim.sql отсюда и exim_dump.sql отсюда. Не забываем менять в файликах данные на свои. Создаём базу:

# mysql -u root -p < /путькфайлику/exim.sql

      И наполняем эту базу:

# mysql -u root -p < /путькфайлику/exim_dump.sql

Поддержка шифрования... Создадим самоподписной сертификат безопасности. Создадим каталог для сертификата и создадим сертификат, как таковой и немного обезопасим его:

# mkdir /etc/ssl/certs && cd /etc/ssl/certs
# openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/certs/mail.pem

Будет несколько вопросов, заполняете свои данные, а на последние 2 вопроса должно стоять реальное название сервака и адрес:

Common Name (eg, YOUR name) []:rtfm.2gogo.ru
Email Address []:alex2 [at] 2gogo [dot] ru

   Обезопасим эти файлики

# chown mailnull:mail mail.pem
# chmod 440 mail.pem

   Создаем каталог, где будет хранится почта:

# mkdir /var/exim && chown mailnull:mail /var/exim

   Т.к. мы много чего правили, можно для надежности перегрузить сервак и если все сделали правильно, нигде не ошиблись, exim запустится. Если нет, смотрите внимательно конфиги. Внесём в базу данных парочку данных, чтобы мы могли проверить работу почты.

# mysql -u exim -p

mysql> use exim;

mysql> INSERT INTO `exim`.`domains` (`domain`, `type`)
    -> VALUES ('2gogo.ru', 'LOCAL');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `exim`.`users` (`login`, `name`, `password`, `uid`, `gid`, `domain`,
    -> `quota`, `status`, `smtp_auth`) VALUES ('alex2', 'alex. System administrator',
    -> ENCRYPT('password-here'), '26', '6', '2gogo.ru', '150', '1', '1');
Query OK, 1 row affected (0.00 sec)

mysql> quit

   А теперь проверяем работу почты:

# telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 rtfm.2gogo.ru ESMTP Exim
ehlo rtfm.2gogo.ru
250-rtfm.2gogo.ru Hello rtfm.2gogo.ru [127.0.0.1]
250-SIZE 20971520
250-PIPELINING
250-AUTH LOGIN PLAIN
250-STARTTLS
250 HELP
mail from: alex2 [at] 2gogo [dot] ru
250 OK
rcpt to: любойпочтовый адрес
250 Accepted
data
354 Enter message, ending with "." on a line by itself
To: любой почтовый адрес
From: alex2 [at] 2gogo [dot] ru
Subject: Test
 
Hi!
This is a test message.
.

250 OK id=1QqZsP-000PQO-Se
quit
221 rtfm.2gogo.ru closing connection
Connection closed by foreign host.
 
     Проверяем куда делось письмо:
 
# cat /var/log/maillog | grep 1QqZsP-000PQO-Se
или смотрим по адресу куда отправляли.
Всё!
 

 

Tags:

Категории:

Рейтинг: 
Средняя: 5 (1 оценка)

Добавить комментарий

Filtered HTML

Plain text