Программы почтовых серверов

MTA это программы, транспортирующие почту между машинами. Традиционным MTA является Sendmail, хотя существует и другой выбор.

Кроме сервера SMTP есть POP сервер (qpopper) и IMAP сервер (Courier-IMAP).

Postfix-2.1.5

Введение в Postfix

Пакет Postfix содержит агент передачи почты (Mail Transport Agent -MTA). Он полезен для пересылки почты другим пользователем на вашей машине. Он так же может быть настроен в качестве центрального сервера почты вашего домена, агента переключения почты или просто агента доставки почты вашему локальному интернет провайдеру (ISP).

Информация о пакете

Зависимости Postfix

Требуемые

Berkeley DB-4.3.27

Установка Postfix

Конфигурация сборки

Дерево исходников Postfix содержит не скрипт configure, а файл makefile в директории верхнего уровня, содержащий целевые файлы makefile, который перегенерирует все остальные файлы makefile в дереве сборки. Если вы захотите использовать дополнительные программы, например оболочку базы данных для виртуальных пользователей или TLS/SSL аутентификацию, вам понадобится перегенерировать файлы makefile, используя один или более подходящий CCARGS и AUXLIBS параметр, описанный ниже.

Вот пример, который комбинирует аргументы TLS/SSL и Cyrus-SASL:

make makefiles \ CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/include/openssl -I/usr/include/sasl" \ AUXLIBS="-L/usr/lib -R/usr/lib -lssl -lcrypto -lsasl2"
SSL/TLS аутентификация

Для использования SSL/TLS аутентификации при помощи Postfix, сначала вам понадобится применить патч, доступный на ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz. Распакуйте архив патча и примените его при помощи следующей команды:

patch -p1 < ../pfixtls-0.8.18-2.1.3-0.9.7d/pfixtls.diff

Вам понадобиться разместить следующие значения в команде make makefiles:

CCARGS="-DHAS_SSL -I/usr/include/openssl" \ AUXLIBS="-L/usr/lib -lssl -lcrypto"

Для использования SSL или TLS вам так же понадобится Cyrus SASL-2.1.20.

Cyrus-SASL

Для использования Cyrus-SASL с Postfix используйте следующие аргументы:

CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl" \ AUXLIBS="-L/usr/lib -R/usr/lib -lsasl2"
OpenLDAP

Для использования OpenLDAP с Postfix используйте следующие аргументы:

CCARGS="-I/usr/include -DHAS_LDAP" \ AUXLIBS="-L/usr/lib -lldap -llber"
MySQL

Для использования MySQL с Postfix используйте следующие аргументы:

CCARGS="-DHAS_MYSQL -I/usr/include/mysql" \ AUXLIBS="-L/usr/lib -lmysqlclient -lz -lm"
PostgreSQL

Для использования PostgreSQL с Postfix используйте следующие аргументы:

CCARGS="-DHAS_PGSQL -I/usr/include/postgresql" \ AUXLIBS="-L/usr/lib -lpq -lz -lm"

Установка Postfix

Перед компилированием программы вам надо создать пользователей и группы, которые должны присутствовать во время выполнения скрипта установки. Добавим пользователей и группы при помощи следующих команд:

groupadd postfix && groupadd postdrop && groupadd -g 65534 nogroup && useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix && useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody && chown postfix:postfix /var/mail

Установим Postfix запуском следующих команд:

make && sh postfix-install daemon_directory=/usr/sbin \ manpage_directory=/usr/share/man \ sample_directory=/usr/share/doc/postfix \ -non-interactive

Завершим этап установки установкой документации к программам, выполнив следующие команды:

install -d /usr/share/doc/postfix && cp -rf html/* /usr/share/doc/postfix

Описание команд

sh postfix-install ... -non-interactive : Это удержит скрипт установки от любых вопросов, применив директории по умолчанию везде, кроме трех отдельно указанных позиций.

make makefiles : Эта команда пересоберет файлы makefile во всем дереве исходников для использования опций, содержащихся в переменных CCARGS и AUXLIBS.

Конфигурация Postfix

Файлы конфигурации

/etc/aliases, /etc/postfix/main.cf и /etc/postfix/master.cf

Конфигурационная информация

cat >> /etc/aliases << "EOF" # Begin /etc/aliases MAILER-DAEMON: postmaster postmaster: root root: LOGIN # End /etc/aliases EOF
[Замечание]

Замечание

Для защиты имеющегося файла /etc/aliases, команда выше добавляет в него эти псевдонимы, если он есть. Этот файл должен быть проверен и из него должны быть удалены дублированные псевдонимы.

Файлы /etc/aliases, который только что был создан или дополнен, main.cf и master.cf должны быть персонализированы для вашей системы. Файл aliases требует вашей не-root регистрации, поэтому почта, адресованная root, может быть перенаправлена вам на уровне пользователя. Файлу main.cf необходимо ваше полностью определенное имя хоста. Все это может быть выполнено при помощи команд sed, введенных в консоли с соответствующими заменами вашего не-root имени для [user] и вашего полностью определенного имени хоста для [localhost.localdomain]. Вы можете увидеть, что файл main.cf частично документирован, поэтому загрузите его в ваш редактор для внесения требуемых изменений.

sed -i "s/LOGIN/[user]/" /etc/aliases && sed -i "s/#myhostname = host.domain.tld/myhostname = \ [localhost.localdomain]/" /etc/postfix/main.cf && /usr/bin/newaliases && /usr/sbin/postfix start

Стартовый скрипт Postfix

Для автоматизации запуска Postfix во время загрузки, установим стартовый скрипт /etc/rc.d/init.d/postfix, включенный в пакет blfs-bootscripts-6.0.

make install-postfix

Содержание

Установленные программы: bounce, cleanup, error, flush, lmtp, local, mailq, master, newaliases, nqmgr, oqmgr, pickup, pipe, postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postqueue, postsuper, proxymap, qmgr, qmqpd, sendmail, showq, smtp, smtpd, spawn, trivial-rewrite, verify и virtual
Установленные библиотеки: нет
Установленные директории: /etc/postfix и /usr/share/doc/postfix

Короткое описание

bounce

Демон, поддерживающий файлы "отчет на-сообщение" с информацией о статусе не переданности.

cleanup

Демон, который обрабатывает прибывающую почту, включает ее в очередь входящей почты и информирует менеджер очереди о ее прибытии.

error

Демон, который обрабатывает не переданные запросы от менеджера очереди.

flush

Демон, который поддерживает запись отсроченной почты по назначению.

lmtp

Демон, который обрабатывает сообщения переданных запросов от менеджера очереди.

local

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

mailq

Символическая ссылка на sendmail.

master

Резидентный процесс, который запускает демон Postfix по требованию.

newaliases

Символическая ссылка на sendmail.

nqmgr

Демон, который ожидает прибытия входящей почты и располагает ее для доставки.

oqmgr

Менеджер очереди в старом стиле. Он будет скоро удален.

pickup

Демон, который ожидает намека, что новая почта была положена в директорию помещения почты, и передает ее демону cleanup.

pipe

Демон, который обрабатывает запросы от менеджера очереди для доставки сообщений внешним командам.

postalias

Создает или запрашивает одну или более базу данных псевдонимов Postfix или обновляет имеющуюся.

postcat

Печатает содержимое файлов named в формате, удобном для чтения.

postconf

Отображает или изменяет значение параметров конфигурации Postfix.

postdrop

Создает файл в директории размещения почты и копирует свой стандартный ввод в файл.

postfix

Контролирует операции почтовой системы Postfix.

postkick

Посылает запрсы к указанному сервису через локальный канал передачи.

postlock

Закрывает почтовую папку для эксклюзивного использования и выполняет размещенные в ней команды.

postlog

Postfix-совместимый интерфейс регистрации для использования в, например, скриптах оболочки.

postmap

Создает или запрашивает одну или более таблицу просмотра Postfix или обновляет имеющуюся.

postqueue

Интерфейс пользователя Postfix для управления очередью.

postsuper

Интерфейс пользователя Postfix для управления очередью суперпользователя.

proxymap

Предоставляет таблицу сервисов просмотра в режиме "только для чтения" для других процессов Postfix.

qmgr

Демон that awaits the arrival of incoming mail and arranges for its delivery.

qmqpd

Демон, который получает одно сообщение на соединение, перенаправляет его в демон cleanup и размещает его во входящей очереди.

sendmail

Интерфейс совместимости Postfix с Sendmail.

showq

Демон, сообщающий статус очереди почты Postfix.

smtp

Просматривает список почтовых адресов для целевого хоста, сортирует список по предпочтениям и соединяется с каждым перечисленным адресом, пока ищет отвечающий сервер.

smtpd

Принимает запросы сетевого соединения и выполняет ноль или более SMTP трансакций на соединение.

spawn

Слушает порт, указанный в Postfix файле master.cf и вызывает внешнюю команду как только соединение будет установлено.

trivial-rewrite

Демон, который перезаписывает адреса в стандартном виде.

verify

Поддерживает запись тех адресов получателя, о которых известно, что они должны быть доставлены или нет.

virtual

Доставляет почту в виртуальные почтовые директории пользователя.