www.eserv.ru // HELO

wikipost /2011-04-05 15:44/ (v11)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird

Проверка HELO в acSMTP

Для [не рекомендуемого] включения проверки HELO в Eserv/3 в файлах acSMTP\conf\smtp\HELO.rules.txt и acSMTP\conf\smtp\EHLO.rules.txt ниже строк
\ INCOMINGHOST GetHostIP DUP | NIP DUP 790 LOG \ 0= | PeerIP <> | 791 LOG
добавить строки:
IsLanClient 0= [IF] INCOMINGHOST GetHostIP DUP | NIP DUP " 550 Can't get IP of HELO host, err={n}{CRLF}" STR@ StopProtocol \EOF 0= | PeerIP <> | " 550 IP of HELO host not match PeerIP{CRLF}" STR@ StopProtocol \EOF PeerIP GetHostName DUP | NIP NIP " 550 Can't get host name of {CLIENT}, err={n}{CRLF}" STR@ StopProtocol \EOF 0= | INCOMINGHOST COMPARE-U | " 550 HELO not match PTR{CRLF}" STR@ StopProtocol \EOF [THEN]

Модифицированный HELO.rules.txt

Традиционные заблуждения

Обратите внимание, что хост SMTP-клиента [b]НЕ ОБЯЗАН[/b] иметь доменное имя (PTR в DNS для его IP). RFC2821 (п. 4.1.1.1) говорит буквально следующее:
[quote="rfc"]The argument field contains the fully-qualified domain name of the SMTP client [b]if one is available[/b]. In situations in which the SMTP client system does not have a meaningful domain name (e.g., when its address is dynamically allocated and no reverse mapping record is available), the [quote="support"]client SHOULD send an address literal[/quote] (see section 4.1.3), optionally followed by information that will help to identify the client system.
[/quote] Перевод: [quote="rfc"]Поле аргумента содержит полное доменное имя SMTP-клиента, [b]если оно доступно[/b] [т.е. если оно у него есть — E.S.]. В ситуациях, в которых SMTP-клиент не имеет осмысленного доменного имени (т.е. когда его адрес выделяется динамически, и записей обратного отображения нет), [b]клиент МОЖЕТ отправить литерал адреса[/b] (см. секцию 4.1.3), опционально с информацией, помогающей идентифицировать клиентскую систему.[/quote] К сожалению, в современной практике при настройке значительной части MX-серверов указанное положение SMTP RFC игнорируется — серверы настраиваются так, [b]чтобы клиент без доменного имени не мог отправить письмо[/b] (это одна из антиспам-техник). Мы НЕ рекомендуем настраивать ваши Eserv'ы таким образом (т.е. не рекомендуем добавлять строки конфигурации, указанные в начале этой страницы), но вы ВЫНУЖДЕНЫ настраивать свои Eserv'ы так, чтобы в исходящей почте домен в HELO соответствовал вашему IP (PTR'у для этого IP) — правильно настраивать опцию Server[HostName] — иначе значительная часть SMTP-серверов будет отвергать вашу почту.

Процитируем также п 4.1.3. про литералы адреса, упомянутые выше.
[quote="rfc"]4.1.3 Address Literals
Sometimes a host is not known to the domain name system and communication (and, in particular, communication to report and repair
the error) is blocked. To bypass this barrier a [b]special literal form of the address is allowed as an alternative to a domain name[/b]. For IPv4 addresses, this form uses four small decimal integers separated by dots and enclosed by brackets such as [123.255.37.2], which indicates an (IPv4) Internet Address in sequence-of-octets form.[/quote]
[quote="rfc"]4.1.3 Адресные литералы Иногда хост не известен в системе доменных имён, и связь (и, в частности, связь для отчета и исправления ошибки) блокируется. Для преодоления этого барьера [b]специальная литеральная форма адреса допускается в качестве альтернативы доменному имени[/b]. Для IPv4-адресов, эта форма использует маленькие десятичные целые числа, разделенные точками и заключенные в квадратные скобки как [123.255.37.2], что обозначает (IPv4) Интернет-Адрес в форме последовательности-октетов.[/quote]
Работает на Eserv/7.0.beta1/Linux/x64 (Jun 14 2022)