Как настроить почтовый сервер с Postfix и Dovecot под различные требования

Администраторы почтовых серверов могут сталкиваться с самыми разными задачами, вытекающими из служебных политик или специфичных требований пользователей. Эта инструкция охватит общие случаи администрирования почтовых серверов. Говоря более конкретно, она покажет, как различные требования к почтовому серверу могут быть реализованы тюнингом параметров Postfix и Dovecot.

Полезные команды Postfix

До того, как мы начнём, давайте взглянем на некоторые команды, связанные с Postfix.

1. postfix reload или service postfix restart?

Для перезагрузки Postfix с обновлёнными конфигурационными файлами могут быть использованы две команды.

  • postfix reload: Эта команда проверит конфигурационные файлы и, соответственно, обновит Postfix. Поскольку данная команда не приводит к отключению Postfix, она крайне рекомендована в условиях реальной работы.
  • service postfix restart: Эта команда, для начала, остановит Postfix, а затем запустит его снова. Эта команда запустит свежий экземпляр Postfix.

В зависимости от требований и удобства, мы можем выбрать любую из этих опций для перезапуска Postfix.

2. postconf

postconf — это очень полезная команда Postfix. Далее несколько примеров использования postconf.

Для показа значений всех параметров Postfix:

# postconf

Чтобы увидеть значения специфичных параметров, можно использовать grep для фильтра вывода:

# postconf | grep myorigin
append_at_myorigin = yes
myorigin = example.tst

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

# postconf -e 'myorigin = example.tst'

Обратите внимание, что любые параметры Postfix, изменённые командой postconf, сохраняться до перезагрузки. То же самое может быть достигнуто модификацией конфигурационного файла /etc/postfix/main.cf.

Политика "всегда BCC"

Аббревиатура BCC означает blind carbon copy. Что можно перевести как «скрытая копия письма». Буквально BCC означает копию имейлов, отправленных кому-либо, чьё имя и адрес не видны другим получателям.

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

В Postfix этого можно добиться изменением конфигурационного файла.

# vim /etc/postfix/main.cf
## подразумевается, что нужный адрес [email protected] ##
always_bcc = allmail
# service postfix restart

Обход DNS запросов

Postfix может быть настроен таким манером, что DNS запросы для отдельных доменов всегда будут сводиться к предопределённому IP адресу. Это очень полезно как в тестовых условиях, так и для доменов, которые используют множество почтовых серверов для различных целей.

Например, если мы хотим, чтобы Postfix отправлял все письма с доменом назначения abcd.com на сервер с IP адресом 1.2.3.4, мы может сделать модификацией конфигурации Postfix следующим образом.

# vim /etc/postfix/transport
abcd.com smtp:[1.2.3.4]
# postmap /etc/postfix/transport
# service postfix restart

ВНИМАНИЕ: убедитесь, что значение transport_maps правильно заданов в /etc/postfix/main.cf как показано ниже.

transport_maps = hash:/etc/postfix/transport

Использование Relayhost (ретранслирования)

Relayhost, также известный как smarthost, это ISP почтового сервера, который принимает все исходящие письма, идущие из почтовых ящиков клиентов его почтовых серверов. Клиент может выбрать, сдать все исходящие письма relayhost'у вместо отправки напрямую через Интернет. Также твиком MX записей relayhost может быть настроен на приём исходящих писем для пользователей почтового сервера. Конфигурация relayhost'а дана ниже.

main.cf меняется для нужд relayhost:

# vim /etc/postfix/main.cf
relayhost = mail.providermx.com

## в случае IP адреса ##
## [ ] отключить запросы DNS ##
relayhost = [100.200.100.200]
# service postfix restart

Верификация учётной записи отправителя письма

Для защиты от спама, иногда полезно верифицировать валидность учётной записи отправителя письма на локальном домене.

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

Во-первых, мы добавляем валидные аккаунты.

# vim /etc/postfix/sender_access
[email protected]		OK
[email protected]		OK
[email protected]		OK
[email protected]		OK
## письма, отправленные от user5, будут отклонены ##
[email protected]		REJECT
# postmap /etc/postfix/sender_access

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

# vim /etc/postfix/main.cf
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject_unauth_destination, reject_unknown_sender_domain
# service postfix restart

Теперь валидными отправителями являются только user1, user2, user3 и user4. А user5 и все другие адреса отправителей будут заблокированы.

Блокировка специфичных адресов или доменов

Postfix может быть настроен на блокировку исходящих и входящих писем от отдельных адресов отправителей или отдельных доменов. Этот фокус может делать следующая конфигурация.

# vim /etc/postfix/access
[email protected]   	550		 address blocked
wxyz.com	        550		 domain blocked
# postmap access
# vim /etc/postfix/main.cf
smtpd_recipient_restrictions = hash:/etc/postfix/access, permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination
# service postfix restart

Внимание: можно использовать один файл для блокировки отправителей и получателей вместо использования раздельных файлов sender_access (описан ранее) и access. Лично я предпочитаю держать их раздельно для упрощения решения проблем.

Установка максимального размера письма и максимального размера почтового ящика

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

# vim /etc/postfix/main.cf
## максимальный размер письма, включая значения заголовков ##
message_size_limit = 10240000

## максимальные размеры почтового ящика в байтах. 0 снимает лимиты ##
mailbox_size_limit = 0
# service postfix restart

Включение Plaintext аутентификации в Dovecot

По причинам безопасности, сервер Dovecot IMAP/POP, по умолчанию, не позволяет аутентификацию простым текстом — plaintext (например, использовать незашифрованные пароли). И это правильно и очень хорошо! Но по некоторым причинам, иногда необходимо задействовать аутентификацию plaintext в Dovecot, для этого используется следующая настройка.

# vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
# service dovecot restart

Это только некоторые вещи, которые делают администраторы почтовых серверов. Возможно ещё более глубокая настройка Postfix и Dovecot чтобы соответствовать нуждам всех заинтересованных сторон.

Оставьте комментарий