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

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

 

Теги

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Реклама ИП «Скоромнов Дмитрий Анатольевич» ИНН 331403723315

 

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

Автоматически чистить почтовый ящик из Ubuntu

Понадобилось мне как-то автоматически стирать все письма из почтового ящика. Ящик был на Exchange, автоматически там можно удалять письма, но только в папку "Удалённые", что не совсем то что нужно. Не найдя нормального функционала автоматической очистки папки плюнул и решил с соседнего сервера Ubuntu кроном удалять письма из ящика. Итак, на сервере Ubuntu ставим пакет fetchmail:

Теги