Не могу понять, почему неверно срабатывает правило helo_access.------------maim.cf---------------------------
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = nomyhostname = domen.ru
alias_maps = hash:/etc/aliases
mydestination = localhost.localdomain, domen.ru, localhost
relayhost =
mynetworks = 192.168.0.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 500000000
message_size_limit = 20000000
recipient_delimiter = +
inet_interfaces = allsmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_helo_access hash:/usr/local/etc/access_helo, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000, hash:/etc/postfix/recipient, reject_unverified_recipient, permit
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/whitelist, reject_non_fqdn_sender, permit
smtpd_data_restrictions = reject_unauth_pipelining, reject_non_fqdn_recipient, reject_multi_recipient_bounce
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_sasl_authenticated_header = yes
smtpd_sasl_application_name = smtpdmailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
local_recipient_maps =sender_bcc_maps = hash:/usr/local/etc/sender_bcc_map
recipient_bcc_maps = hash:/usr/local/etc/recipient_bcc_map
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_helo_required = yes
default_destination_recipient_limit = 1
queue_run_delay = 10000s
initial_destination_concurrency = 2
maximal_backoff_time = 40000s
default_destination_concurrency_limit = 5
minimal_backoff_time = 1000s
bounce_template_file = /etc/postfix/bounce.cf
--------------------------------------------------------------------------------------/usr/local/etc/access_helo----------------------
127.0.0.1 REJECT Your server confgired incorrectly
loaclhost REJECT Your server confgired incorrectly
localhost.localdomain REJECT Your server confgired incorrectly
localhost.domain.ru REJECT Your server confgired incorrectly
10 REJECT Your server confgired incorrectly
172.16 REJECT Your server confgired incorrectly
192.168 REJECT Your server confgired incorrectly
user@domain.ru OK
----------------------------------------------------------------------В филиале кривой IP, пользователя user@domain.ru блокирует:
--------------------mail.log---------------------------------------
March 23 12:15:12 mail postfix/smtpd[15495]: NOQUEUE: reject: RCPT from unknown[xx.xx.xxx.xx]: 550 5.5.2 <[0.203.195.1]>: Helo command rejected: invalid ip address; from=<user@domain.ru> to=<adm@domain.ru> proto=ESMTP helo=<[0.203.195.1]>
---------------------------------------------------------------------Значит необходимо, чтобы от конкретно этого пользователя письма проходили всегда. Но вроде и в access_hello его прописал и permit_sasl_authenticated стоит, а всё-равно блокирует.
Подскажите, может где ошибся?
> smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
> и в access_hello его прописал и permit_sasl_authenticated стоит, а всё-равно блокирует.
> Подскажите, может где ошибся?Ошиблись в:
- прописанном в smtpd_helo_restrictions - access_hello не учитывается
- непонятно куда прописали хост ("и в access_hello его прописал") - в приведенном вами файле этой прописанности не видно
>> smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
>> и в access_hello его прописал и permit_sasl_authenticated стоит, а всё-равно блокирует.
>> Подскажите, может где ошибся?
> Ошиблись в:
> - прописанном в smtpd_helo_restrictions - access_hello не учитывается
> - непонятно куда прописали хост ("и в access_hello его прописал") - в
> приведенном вами файле этой прописанности не видноПерестил правило в smtpd_helo_restrictions.
В файле:
--------------/usr/local/etc/access_helo----------------------
user@domain.ru OK
----------------------------------------------------------------------
это не оно?
March 23 12:15:12 mail postfix/smtpd[15495]: NOQUEUE: reject: RCPT from unknown[xx.xx.xxx.xx]: 550 5.5.2 <[0.203.195.1]>: Helo command rejected: invalid ip address; from=<user@domain.ru> to=<adm@domain.ru> proto=ESMTP helo=<[0.203.195.1]>RCPT from unknown[xx.xx.xxx.xx] - это client.
<[0.203.195.1]>: Helo command rejected: invalid ip address; - это helo
from=<user@domain.ru> - sender
to=<adm@domain.ru> - recipient
вот и проверяйте в соответствующих местах.
> March 23 12:15:12 mail postfix/smtpd[15495]: NOQUEUE: reject: RCPT from unknown[xx.xx.xxx.xx]:
> 550 5.5.2 <[0.203.195.1]>: Helo command rejected: invalid ip address; from=<user@domain.ru>
> to=<adm@domain.ru> proto=ESMTP helo=<[0.203.195.1]>
> RCPT from unknown[xx.xx.xxx.xx] - это client.
> <[0.203.195.1]>: Helo command rejected: invalid ip address; - это helo
> from=<user@domain.ru> - sender
> to=<adm@domain.ru> - recipient
> вот и проверяйте в соответствующих местах.Добавил в файл:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/whitelist,
свой домен
Сейчас проверю.
Хело проверяется тут:smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
Внимание вопрос.... Как оно поймет, что при заданном домене отправителя/получателя хело проверять не надо ?
> Хело проверяется тут:
> smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
> Внимание вопрос.... Как оно поймет, что при заданном домене отправителя/получателя хело
> проверять не надо ?Я чуть выше написал, что переместил правило в smtpd_helo_restrictions. Сейчас у меня так:
smtpd_helo_restrictions = check_helo_access hash:/usr/local/etc/access_helo, reject_invalid_helo_hostname, permit
в файле
----------/usr/local/etc/access_helo---------------
127.0.0.1 REJECT Your server confgired incorrectly
loaclhost REJECT Your server confgired incorrectly
localhost.localdomain REJECT Your server confgired incorrectly
localhost.ng-servis.ru REJECT Your server confgired incorrectly
10 REJECT Your server confgired incorrectly
172.16 REJECT Your server confgired incorrectly
192.168 REJECT Your server confgired incorrectly
user@domain.ru OK
-------------------------------------------------------------------Но всё-равно письмо отбраковывается.
postmap на файл после правки, случайно, не забыли натравить? Ибо там тип - hash.
> postmap на файл после правки, случайно, не забыли натравить? Ибо там тип
> - hash.Нет, не забыл. Повторил ещё раз на всякий случай.
То есть сама конструкция верная?
Может совсем убрать эту проверку, посмотрел по логам, все срабатывания об этот фильтр только с нашего домена.
Сдается мне, PavelR Вам ниже верную мысль подсказывает. :) У Вас вот, что в поле helo:
----------
helo=<[0.203.195.1]>
---------
Вот это и напишите в helo_acces в качестве поля OK. Хотя я не совсем врубаюсь, почему у этого поля такое значение. Или это Вы для примера?
> Сдается мне, PavelR Вам ниже верную мысль подсказывает. :) У Вас вот,
> что в поле helo:
> ----------
> helo=<[0.203.195.1]>
> ---------
> Вот это и напишите в helo_acces в качестве поля OK. Хотя я
> не совсем врубаюсь, почему у этого поля такое значение. Или это
> Вы для примера?Нет-нет это не пример. Это действительно такое приветствие. Филиал нашей организации в ХМАО, провайдер Пурстаком.
Попробовал добавить, сейчас проверю.
>[оверквотинг удален]
>> что в поле helo:
>> ----------
>> helo=<[0.203.195.1]>
>> ---------
>> Вот это и напишите в helo_acces в качестве поля OK. Хотя я
>> не совсем врубаюсь, почему у этого поля такое значение. Или это
>> Вы для примера?
> Нет-нет это не пример. Это действительно такое приветствие. Филиал нашей организации в
> ХМАО, провайдер Пурстаком.
> Попробовал добавить, сейчас проверю.Нет, та же ошибка:
Mar 24 08:58:25 mail postfix/smtpd[24966]: NOQUEUE: reject: RCPT from unknown[xx.xx.xxx.xx]: 550 5.5.2 <[0.203.195.1]>: Helo command rejected: invalid ip address; from=<user@domain.ru> to=<adm@domain.ru> proto=ESMTP helo=<[0.203.195.1]>
-----------access_helo-----------------
0.203.195.1 OK
--------------------------------------------postmap не забыл.
пропишите в smtpd_helo_restrictions check_client_access hash:/etc/postfix/whitelist и добавьте вайтлистинг не по кривому хело, а по IP хоста.
Не уверен, но попробуйте в том виде, в каком записано в <>. То есть - с квадратными скобками. А вообще - геморрой на пустом месте. :) Влепите в проверке helo - permit_mynetworks cамой первой проверкой. И влупите вот такую строчку в main.cf:
mynetworks = cidr:/etc/postfix/network-table (я из своего конфига взял). Ну и файл в виде (например):
192.168.0.0/16 my_internal_network
1.1.1.1/32 my_frend_Vasya
Туда, разумеется, надо включать сети (IP), которым Вы доверяете. И тем, у которых вот такие вот кривые HELO. :) кстати - за такое HELO их админу надо гвоздь в голову вбить.
А - да. И естественно, после изменения конфига - postfix reload. :) На всякий случай уточняю.
> Туда, разумеется, надо включать сети (IP), которым Вы доверяете. И тем, у
> которых вот такие вот кривые HELO. :) кстати - за такое
> HELO их админу надо гвоздь в голову вбить.не-не, низя так, зачем им разрешать транзит почты через нас.
Релеить почту через нас им низя, только доставлять нам минуя наши стрикт-проверки, для этого делаем whitelist и в нужные точки добавляем.
>> Туда, разумеется, надо включать сети (IP), которым Вы доверяете. И тем, у
>> которых вот такие вот кривые HELO. :) кстати - за такое
>> HELO их админу надо гвоздь в голову вбить.
> не-не, низя так, зачем им разрешать транзит почты через нас.
> Релеить почту через нас им низя, только доставлять нам минуя наши стрикт-проверки,
> для этого делаем whitelist и в нужные точки добавляем.Ладно, спасибо всем. Убрал проверку HELO из конфига совсем. По логам, такую проверку не проходят только те, чьи письма нам нужны, а спамеров совсем не замечено. Да и postgrey на страже.
>а спамеров совсем не замечено.ага, куда там. если только другими проверками отсеклись.
>Да и postgrey на страже.
тоже помогает
>> Хело проверяется тут:
>> smtpd_helo_restrictions = reject_invalid_helo_hostname, permit
>> Внимание вопрос.... Как оно поймет, что при заданном домене отправителя/получателя хело
>> проверять не надо ?
> Я чуть выше написал, что переместил правило в smtpd_helo_restrictions. Сейчас у меня
> так:да-да, я видел. А вот вы мое, то что я чуть выше написал, по-видимому нет:
===
RCPT from unknown[xx.xx.xxx.xx] - это client.
<[0.203.195.1]>: Helo command rejected: invalid ip address; - это helo
from=<user@domain.ru> - sender
to=<adm@domain.ru> - recipientвот и проверяйте в соответствующих местах.
===
Вам большими буквами выделить то, на что я ваше внимание обращаю ?
> smtpd_helo_restrictions = check_helo_access hash:/usr/local/etc/access_helo, reject_invalid_helo_hostname,
> permit
> в файле
> user@domain.ru OKда-да, я видел.
> Но всё-равно письмо отбраковывается.
Вот когда он в хело будет слать вам значение "user@domain.ru" - вот тогда check_helo_access его и пропустит.
> March 23 12:15:12 mail postfix/smtpd[15495]: NOQUEUE: reject: RCPT from unknown[xx.xx.xxx.xx]:
> 550 5.5.2 <[0.203.195.1]>: Helo command rejected: invalid ip address; from=<user@domain.ru>
> to=<adm@domain.ru> proto=ESMTP helo=<[0.203.195.1]>Я не знаю почему такое ограничение и вообще баг это или где-то в стандартах сказано..., но у Винемы такой код:
/* XXX Allow 0.0.0.0 but not 0.1.2.3 */
if (byte_count == 1 && byte_val == 0 && addr[strspn(addr, "0.")]) {
if (gripe)
msg_warn("%s: bad initial octet value: %.100s", myname, addr);
return (0);
}
Если у кого есть время, то можно спросить в postfix-devel
Перечитал RFC
http://www.rfc-editor.org/rfc/rfc5735.txt секция 3
http://www.rfc-editor.org/rfc/rfc1122.txt секция 3.2.1.3
Винема прав.
Вот, оказывается, где собака порылась. :) А мы тут все голову сломали.
> Вот, оказывается, где собака порылась. :) А мы тут все голову сломали.А я не понял, объясните кто-нибудь?
>> Вот, оказывается, где собака порылась. :) А мы тут все голову сломали.
> А я не понял, объясните кто-нибудь?по рукам железной линейкой постучите тому, кто создал сеть 0.x.y.z, а точнее выбрал исползование этих адресов.
http://www.iana.org/assignments/ipv4-address-space/ipv4-addr...000/8 IANA - Local Identification 1981-09 RESERVED
Для внутреннего использования надо использовать адреса в пространствах описанных вhttp://tools.ietf.org/html/rfc5735#page-6 как "Private-Use Networks".
> Вот, оказывается, где собака порылась. :) А мы тут все голову сломали.я вообще думал, что это такая обфускация реального адреса топикстартером.
ппц.