20.2. Построение почтового сервера POP3

Проблема

Требуется настроить почтовый сервер POP3 — базовый сервер пересылки интернет-почты для одного домена, с поддержкой TLS/SSL для защиты подключений.

Решение

Потребуются следующие компоненты:

Примечание: Инструкции для Debian приведены в разделе 20.3.

Начните с установки или обновления OpenSSL и famd. Затем удалите все установленные почтовые агенты и серверы POP/IMAP, начиная с Sendmail, если он установлен по умолчанию. Остановите все процессы, связанные со старым почтовым агентом:

$ ps ax | grep sendmail
root 10204 0.0 0.7 5296 1980 ? S 19:27 0:00 sendmail: accepting connections
$ su
# kill 10204

Установите Postfix. Если собираете программу из исходных текстов, не забудьте включить поддержку SASL (см. файл SASL_README в архиве). После установки Postfix создайте резервную копию /etc/postfix/main.cf:

# cp /etc/postfix/main.cf /etc/postfix/main.cf-old

Очистите файл конфигурации и скопируйте следующий фрагмент, используя пути и имена хостов/доменов, относящиеся к вашей системе:

command_directory = /usr/sbin
mail_owner = postfix
default_privs = nobody
mydomain = tuxcomputing.com
myhostname = windbag.tuxcomputing.com
myorigin = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain
mynetworks_style = subnet
home_mailbox = Maildir/
mail_spool_directory = /var/mail
smtpd_banner = $myhostname ESMTP $mail_name
mailbox_size_limit = 0
recipient_delimiter = +

Определите псевдонимы для root и postmaster в /etc/aliases:

# Формат описания - см. man 5 aliases
root: foober@test.net
postmaster: root

Создайте базу данных псевдонимов:

# newaliases

и запустите встроенную программу проверки синтаксиса:

# postfix check

Для запуска Postfix вручную используйте команду:

# postfix start

Если Postfix уже работает, перезапустите программу:

# postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Убедитесь в том, что Postfix и SMTP демон работают в системе:

$ ps ax | grep postfix
26342 ? Ss 0:00 /usr/lib/postfix/master

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 windbag.test.net ESMTP Postfix (Libranet/GNU)
EHLO windbag.test.net
250-windbag.test.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-XVERP
250 8BITMIME
telnet> quit
Connection closed.

Теперь установите Courier-IMAP. Если вы используете RPM-пакеты, потребуются courier-imap-common и courier-imap-pop3. При сборке из исходников обязательно ознакомьтесь с файлом README.

Для генерации сертификата POP3 TLS/SSL отредактируйте файл /etc/courier/pop3d.cnf:

[ req_dn ]
ST=NHS
L=Albuquerque
O=mail server
OU=Automatically-generated POP3 SSL key
CN=Windbag
emailAddress=postmaster@tuxcomputing.com

Сгенерируйте ключ и сертификат:

# mkpop3dcert
Generating a 1024 bit RSA private key
writing new private key to '/usr/lib/courier/pop3d.pem'
1024 semi-random bytes loaded
Generating DH parameters, 512 bit long safe prime, generator 2

После установки сгенерируйте сертификат POP3 TLS/SSL. В некоторых дистрибутивах Courier запускается автоматически после установки. Для ручного запуска используйте:

# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start

Теперь у вас имеется полностью рабочий почтовый сервер POP3.

Комментарий

Некоторые дистрибутивы Linux изменяют пути и файлы Postfix и Courier, поэтому обязательно проверяйте корректность конфигурации.

Courier отличается от других почтовых серверов: почтовая очередь создаётся в домашнем каталоге каждого пользователя:

# ls /home/foober
Desktop Maildir
# ls /home/foober/Maildir
courierimapkeywords courierimapuiddb cur tmp
courierimapsubscribed courierpop3dsize new

Новая почта сохраняется в /Maildir/new до загрузки пользователем. Соответствующий параметр задаётся в main.cf:

home_mailbox = Maildir/

POP3 сервер может работать на старом компьютере, например, с процессором Pentium. Рекомендуется выделить отдельный компьютер для сервера, чтобы минимизировать риски для других данных.

Самоподписанный SSL-сертификат подходит большинству пользователей. Однако, если вам нужен сертификат от проверенного центра (например, VeriSign), он обойдётся в несколько сотен долларов в год. Интернет-провайдеры могут предлагать совместные сертификаты по доступной цене.

См. также

Раздел 20.3; локальная документация Courier (/usr/share/doc/courier-doc); Postfix Basic Configuration; домашняя страница Courier-IMAP.