• Отправитель находится в одной из сетей, указанных с помощью переменной
$mynetworks
. По умолчанию в качестве значения этой переменной заданы адреса сетей, которым принадлежат все сетевые интерфейсы компьютера, в том числе интерфейс
localhost
.
• Отправитель принадлежит домену, указанному в переменной
$relay_domains
. По умолчанию значение данной переменной равно значению переменной
$mydestination
.
• Отправитель пытается передать письмо на компьютер, принадлежащий одному из доменов, указанных в переменной
$relay_domains
,
или их поддоменов.
Конфигурация по умолчанию указывает на то, что Postfix должен обрабатывать почту из того домена, которому принадлежит сам сервер, и от компьютеров, непосредственно связанных с сервером, посредством сетевых интерфейсов. В большинстве случаев такая конфигурация вполне приемлема, но иногда приходится изменять ее. Чтобы сделать это, вам надо изменить значение
$mynetworks
или
$relay_domains
(либо модифицировать обе переменные). Предположим, например, что Postfix должен обслуживать рабочую станцию
work.threeroomco.com
. Для этого вам надо переопределить значения переменных следующим образом:
mynetworks = 127.0.0.0/8
relay_domains = work.threeroomco.com
Возможно, вам потребуется расширить набор компьютеров, обслуживаемых сервером. В этом случае значения переменных могут выглядеть так:
Данные опции сообщают о том, что письма должны приниматься из сетей 192.168.99.0/24, 172.24.0.0/16 и
localhost
(127.0.0.0/8), а также с компьютеров, принадлежащих доменам
$mydestination
и
pangaea.edu
.
Для управления действием
mynetworks
,
relay_domains
и некоторых других опций может использоваться опция
smtpd_sender_restrictions
. По умолчанию эта опция отсутствует в
main.cf
, но при необходимости вы можете включить ее в состав конфигурационного файла. Значение
permit_mx_backup
данной опции соответствует опции
relay_based_on_MX
сервера
sendmail
. Подробные сведения о
smtpd_sender_restrictions
вы найдете в документации на сервер Postfix.
Настройка Postfix для передачи почты через ретранслятор
В простейшем случае, чтобы сконфигурировать Postfix для передачи почты посредством другого сервера, достаточно установить значение опции
relayhost
. Эта опция, находящаяся в файле
main.cf
, указывает на компьютер, выполняющий функции ретранслятора. Если в конфигурационном файле сервера имен, управляющего доменом, присутствует запись
MX
, указывающая на сервер-ретранслятор, то в качестве значения опции
relayhost
можно задать имя этого домена. Например, если в роли ретранслятора выступает сервер, расположенный на компьютере
franklin.threeroomco.com
, в файл
main.cf
необходимо включить следующую запись:
relayhost = franklin.threeroomco.com
Если ваш сервер находится в том же домене, что и сервер-ретранслятор, и если на ретранслятор, указывает запись
MX
, то вместо имени
franklin.threeroomco.com
вы можете использовать переменную
$mydomain
. Такой подход предпочтительнее тем, что переносе почтового сервера, обслуживающего домен, на другой компьютер перенастраивать Postfix не приходится.
В обычных условиях при передаче почты Postfix обращается к серверу DNS. Если же сервер имен в вашей сети отсутствует (например, если преобразование имен осуществляется с помощью файлов
/etc/hosts
), вам необходимо включить в конфигурационный файл следующую запись:
disable_dns_lookups = yes
Эта опция указывает серверу Postfix на то, что он не должен обращаться к серверу DNS для преобразования имен. В этом случае Postfix определяет адрес ретранслятора с помощью записи в файле
/etc/hosts
.
Настройка Postfix для противодействия распространению спама
Подобно
sendmail
и Exim, Postfix содержит средства, позволяющие бороться с распространением спама. Вы можете блокировать рекламные сообщения, сравнивая информацию в заголовках писем с шаблонами, либо использовать списки IP-адресов.
Инструменты для сравнения с шаблонами, предоставляемые сервером Postfix, достаточно сложны, в частности, они позволяют использовать для анализа содержимого заголовков регулярные выражения. Регулярные выражения часто указываются в отдельном файле, но при желании вы можете задавать их непосредственно в конфигурационном файле
main.cf
. Пример опции, предназначенной для проверки заголовков, приведен ниже.
header_checks = regexp:/etc/postfix/bad_headers
В файле
bad_headers
указываются регулярные выражения, подобные приведенным в листинге 19.2. Если заголовки почтового сообщения соответствуют регулярным выражениям, содержащимся в файле, и если в файле указано, что письмо должно быть отвергнуто, оно возвращается отправителю. Регулярные выражения могут задаваться либо в стиле
POSIX (regeхр: описание)
, либо в стиле
PCRE (pcre: описание)
.
Листинг 19.2. Файл с регулярными выражениями Postfix, используемыми для фильтрации спама
#### Поля Subject: заголовков сообщений, полученных от спамеров
/^Subject: ADV:/ REJECT
/^Subject: Accept Visa/ REJECT
#### Поля From: и Received: заголовков сообщений,
#### полученных от спамеров
/^(From|Received):.*badspammer\.net/REJECT
/^From: spammer@abigisp\ .net/ REJECT
На заметку
Регулярные выражения будут подобно рассматриваться далее в этой главе. Дополнительную информацию о них вы можете получить, обратившись к страницам справочной системы, посвященным программе
egrep.
Опция
header_checks
предоставляет большие возможности, но она сложна в использовании. Более простое решение проблемы спама состоит в применении списков IP-адресов. Для работы с такими списками предназначены две приведенные ниже опции.