Администраторы почтовых серверов могут сталкиваться с самыми разными задачами, вытекающими из служебных политик или специфичных требований пользователей. Эта инструкция охватит общие случаи администрирования почтовых серверов. Говоря более конкретно, она покажет, как различные требования к почтовому серверу могут быть реализованы тюнингом параметров 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
## подразумевается, что нужный адрес allmail@example.tst ## 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
user1@example.tst OK user2@examle.tst OK user3@example.tst OK user4@example.tst OK ## письма, отправленные от user5, будут отклонены ## user5@example.tst 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
user@qwer.com 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 чтобы соответствовать нуждам всех заинтересованных сторон.