20.2. Построение почтового сервера POP3
Проблема
Требуется настроить почтовый сервер POP3 — базовый сервер пересылки интернет-почты для одного домена, с поддержкой TLS/SSL для защиты подключений.
Решение
Потребуются следующие компоненты:
- Postfix;
- Courier-IMAP (поддержка как POP3, так и IMAP);
- OpenSSL;
- демон famd (File Alteration Monitor Daemon).
Примечание: Инструкции для 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.