Как в различных ситуациях конфигурировать почтовый сервер, использующий Postfix и Dovecot
Оригинал: How to configure a mail server with Postfix and Dovecot for different requirements, February 4, 2014
Автор: Sarmed Rahman
Дата публикации: 4 февраля 2014 г.
Перевод: Н.Ромоданов
Дата перевода: март 2014 г.
Полезные команды 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
Для того, чтобы увидеть значение конкретного параметра пакета Postfix, можно для фильтрации вывода использовать команду grep
:
# postconf | grep myorigin append_at_myorigin = yes myorigin = example.tst
Команду postconf
также можно использовать для установки значения конкретного параметра пакета Postfix во время его выполнения.
Политика «Всегда оставлять копию»
Я видел несколько компаний, в которых придерживались политики «всегда оставлять копию письма», которая означает, что копия каждого исходящей почты автоматически отсылается на определенную учетную запись электронной почты.
В пакете Postfix этого можно достичь путем изменения одной строки в конфигурационном файле.
# vim /etc/postfix/main.cf ## assuming that the account is 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
ПРИМЕЧАНИЕ: убедитесь, что в файле /etc/postfix/main.cf
переменная transport_maps
задана правильно следующим образом.
transport_maps = hash:/etc/postfix/transport
Используем Relayhost
relayhost
или smarthost
является почтовым сервером провайдера, который принимает все исходящие письма, отправляемые почтовыми серверами своих клиентов. Клиент может выбрать отправлять все исходящие сообщения на сервер relayhost
вместо непосредственной отправки их через Интернету. relayhost
также может быть сконфигурирован на прием входящих писем от имени почтового сервера клиента путем настройки записи МХ. Конфигурирование relayhost
осуществляется следующим образом.
Файл main.cf
изменяется так, чтобы он указывал relayhost:
# vim /etc/postfix/main.cf relayhost = mail.providermx.com ## in case of IP address ## ## [ ] disables DNS lookups ## 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 ## emails sent from user5 will be rejected ## 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 ## maximum email size in bytes, including header information ## message_size_limit = 10240000 ## maximum mailbox size in bytes. 0 denotes no quota ## mailbox_size_limit = 0 # service postfix restart
Включение возможности использовать незашифрованный пароль в Dovecot
По соображениям безопасности сервер Dovecot IMAP/POP по умолчанию не допускает аутентификацию открытым текстом (т.е. использовать незашифрованный пароль). Но если по некоторым причинам, кому-то потребуется включить аутентификацию открытым текстом в Dovecot, то нужно использовать следующие настройки.
# vim /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no # service dovecot restart
Это некоторые из тех настроек, которыми часто пользуются администраторы почтовых серверов. В пакетах Postfix и Dovecot есть еще много других настроек, которыми можно пользоваться в случае необходимости.
Надеюсь, это руководство будет полезным.