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

Установка и настройка 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

 

Теги

 

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

Postfix с SMTP аутентификацией Cyrus

Понадобилось сделать Postfix с SMTP аутентификацией. Раньше не настраивал, перерыл кучу статей. Очень сумбурно всё изложено, поэтому пришлось написать свой вариант. Если кто-то знает хорошую инструкцию по данному вопросу без лишней воды — пишите в комментариях.

Теги