Перейти к основному содержанию

Установка и настройка Postfix на Ubuntu

Mail

Ставим Postfix на Ubuntu для нескольких доменов. Помимо всего прочего настраиваем DKIM.

Наш почтовый сервер будет только отправлять письма, как спамер. На приём будет работать другой сервер, поэтому приём почты настраивать не будем.

Устанавливаем почтовый сервер:

apt-get update
apt-get install postfix

Общий тип почтовой настройки выбираем "Без настройки":

postfix

Создаём главный файл настроек /etc/postfix/main.cf:

myorigin = postfix02.mydomain.ru
myhostname = postfix02.mydomain.ru
mydomain = mydomain.ru

smtpd_banner = postfix02.mydomain.ru
biff = no

alias_maps = hash:/etc/postfix/aliases

mynetworks = 127.0.0.0/8 10.10.0.0/16 10.11.0.0/16  [::ffff:127.0.0.0]/104 [::1]/128
message_size_limit = 35840000
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

masquerade_classes = envelope_sender, header_sender

relay_domains = mydomain.ru, sale.mydomain.ru, promo.mydomain.ru
relay_transport = hash:/etc/postfix/transport
transport_maps = hash:/etc/postfix/transport

maximal_queue_lifetime = 5d

compatibility_level = 2
smtp_use_tls = yes

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Последние 4 строки - конфиг для dkim. mynetworks - список сетей, с которых можно слать, в моём случае без авторизации.

Создаём файл /etc/postfix/aliases:

postmaster    root

Создаём файл /etc/postfix/transport:

mydomain.ru smtp:10.10.30.10
onemoredomain.ru smtp:10.10.30.10

Выполняем:

postalias /etc/postfix/aliases
postmap /etc/postfix/transport
postconf compatibility_level=2

postmap и postalias надо повторять после любых изменений в файлах.

Дальше ставим opendkim:

apt-get install opendkim opendkim-tools

Создаём каталог для ключей и сгенерируем ключ (пока для одного домена):

mkdir /etc/opendkim
chown opendkim:opendkim /etc/opendkim
opendkim-genkey -D /etc/opendkim/ --domain mydomain.ru --selector myselector

Где mydomain.ru - ваш домен, myselector - ваш селектор который вы выберете.

Появится два файла /etc/opendkim/myselector.private и /etc/opendkim/myselector.txt с секретным и публичным ключами. Публичный ключ нужно добавить в соответствующую TXT запись вашего домена:

myselector._domainkey  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQK........DAQAB"

Настраиваем /etc/opendkim.conf:

AutoRestart             Yes
AutoRestartRate         10/1h

Syslog                  Yes
SyslogSuccess           Yes
LogWhy                  Yes

Mode                    sv

InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable

Создаём файл /etc/opendkim/TrustedHosts:

127.0.0.1
localhost
10.10.0.0/16
10.11.0.0/16

Здесь те же сети, что и в файле настроек /etc/postfix/main.cf в пункте mynetworks.

Создаём файл /etc/opendkim/KeyTable:

myselector._domainkey.mydomain.ru mydomain.ru:myselector:/etc/opendkim/myselector.private

Создаём файл /etc/opendkim/SigningTable:

*@mydomain.ru myselector._domainkey.mydomain.ru

Задаем группу владельца opendkim для созданных ключей и файлов:

chown :opendkim /etc/opendkim/*

Устанавливаем права на секретный ключ:

chmod 640 /etc/opendkim/myselector.private

В /etc/default/opendkim необходимо указать сокет, который будет слушать opendkim (другие директивы SOCKET необходимо закомментировать):

SOCKET="inet:8891@localhost"

Перезапускаем postfix и opendkim:

service opendkim restart
service postfix restart

Осталось только проверить и отправить письмо.

После успешной отладки убираем из логов всё про DKIM. Настраиваем /etc/opendkim.conf, меняем параметры логирования:

Syslog                  No
SyslogSuccess           No
LogWhy                  No

Подкручиваем гайки

Я пока не собираюсь считать статистику сколько писем не дошло. Поэтому отключаю отправку отчетов от MAILER_DAEMON. В файле /etc/postfix/master.cf меняем строку:

bounce    unix  -       -       y       -       0       discard

В /etc/postfix/main.cf настраиваем сколько дней пытаться отправить почту:

maximal_queue_lifetime = 5d

Не забываем про:

service postfix restart

 

Теги

 

Похожие материалы

NXLog — сбор логов Postfix на Ubuntu

Пришла задача организовать сбор логов на почтовом сервере Postfix, который развёрнут на Ubuntu Server. Заказчика интересуют логи отправки писем в виде JSON. Он хочет, чтобы почтовый сервер на каждую отправку письма отчитывался — передавал по curl данные из лога. Поможет нам в этом непростом деле NXLog.

Теги

Почтовый сервер Exim SMTP

Филип Хейзел, перевод В.Айсин
В наши дни частых злоупотреблений в сети и больших объемов нежелательной почты любой, кто занимается администрированием почтового сервера, должен иметь общее представление о том, как работает интернет-почта и как ее сервер обрабатывает. Это относится как к небольшим персональным хостам, так и к большим фермам серверов.

Теги

Postfix — ограничить поток исходящих писем

Почтовый сервер postfix ориентирован на максимальную производительность. Если у него есть письмо, то он постарается его как можно быстрее отправить. Но иногда требуется ограничить поток исходящих писем. При этом желательно, чтобы postfix продолжал принимать письма без ограничений, но отправлял их постепенно. Бывает, что провайдер ограничивает ваш сервер и разрешает отправлять, например, не более 300 писем в минуту. 

Теги