Эта глава представляет теоретические сведения об ограничениях. Ограничения позволяют вашему почтовому серверу принять или отвергнуть сообщения на основе данных SMTP соединения между клиентом и сервером. Информация, полученная из этого диалога, позволяет Postfix наложить или отменить ограничения на клиент, отправителя и получателя.Слово «ограничить» (restrict) обычно означает, что вы устанавливаете какие то пределы, но в Postfix термин «ограничение» (ограничение) может также означать и обратное – при помощи ограничений вы можете явно разрешить нечто.
Триггеры ограниченийОграничения – это мощный инструмент. Чтобы эффективно им пользоваться, необходимо понимать, каким образом происходит SMTP взаимодействие и какими средствами Postfix это взаимодействие анализирует. Теперь нас будут интересовать этапы SMTP диалога, обозначенные командами, выдаваемыми клиентом.
Клиент
$ telnet mailserver.example.com 25
220 mailserver.example.com ESMTP Postfix
HELO/EHLO имя хоста
HELO client.example.com
250 mailserver.example.com
Отправитель конверта
MAIL FROM:
250 Ok
Получатель(и) конверта
RCPT TO:
250 Ok
DATA
354 End data with .
From: "Sender"
To: "Recipient"
Date: Sat, 17 May 2003 15:24:43 +0200
DATA
Here comes the mail content . . .
250 Ok: queued as 0EAFFE1C65
QUIT
221 Bye
Каждый новый описанный выше и выделенный жирным начертанием отмечает момент, когда демон smtpd получает очередную порцию информации о клиенте и сообщении, которое он хочет передать. Postfix использует эти этапы для инициирования триггеров ограничений; для каждого этапа существует свой собственный параметр ограничения, имя которого образовано из названия активного демона, названия этапа и его предназначения. Поэтому названия триггеров ограничений строятся по такому шаблону: smtpd_название_этапа_restrictions.
Приведем список всех триггеров ограничений с указанием их поведения по умолчанию:
smtpd_client_restrictionsЭтот триггер применяется к IP адресу или имени хоста клиента либо к ним обоим. По умолчанию Postfix разрешает подключение любому клиенту.
smtpd_helo_restrictionsЭтот триггер применяется к аргументу HELO/EHLO клиента и к IP адресу и (или) имени хоста клиента. По умолчанию допускается любой аргумент HELO/EHLO.
smtpd_sender_restrictionsЭто первый набор триггеров, который относится к частям конверта. Postfix применяет его к отправителю конверта, аргументу HELO/EHLO и клиенту. По умолчанию любому отправителю конверта разрешено отправлять сообщения.
smtpd_recipient_restrictionsЭтот триггер применяется к получателям конверта, отправителю конверта, аргументу HELO/EHLO и к IP адресу и (или) имени хоста клиента. По умолчанию Postfix допускает любых получателей для клиентов, которые определены в параметре конфигурации mynet works, для остальных же разрешены получатели в доменах из relay_domains и mydomains. Это не дает Postfix возможности превратиться в открытый почтовый сервер.
smtpd_data_restrictionsЭтот триггер выявляет клиенты, которые отправляют содержимое письма прежде, чем Postfix ответит на команду DATA. Postfix делает это посредством трассировки команды DATA, когда клиент отправляет команду на сервер. По умолчанию ограничения нет.
smtpd_etrn_restrictionsЭтот специальный триггер может ограничить клиенты, которые могут запрашивать у Postfix очистку очереди сообщений. По умолчанию всем клиентам разрешено выдавать команду ETRN.
Каждый триггер ограничений соответствует набору ограничений; вы можете воспринимать триггеры как пустые коробки. Для того чтобы от них была какая то польза, следует вложить в них ограничения.