Правила ACL взял отсюда http://www.lissyara.su/articles/freebsd ... rier-imap/ Да и судя по всему они примерно одинаковые везде.
Суть проблемы в том, что правила, например, относящиеся к проверке хело, у всех размещены acl_smtp_rcpt. Логика размещения именно здесь - понятна. Непонятно почему у меня они не работают когда они размещены в acl_smtp_rcpt.
Когда я взял эти же блоки и разместил их в acl_smtp_helo - они начали работать. Я лишь заменил deny на drop, потому что, на мой взгляд, нефиг держать соединение в подобных случаях.
Т.е. когда эти блоки в acl_smtp_rcpt - я подключаясь телнетом пишу в helo свой IP и оно пропускает. Когда оно в acl_smtp_helo - отшибает, как и должно.
Код: Выделить всё
acl_smtp_helo = acl_check_helo
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_data
acl_check_helo:
drop message = "HELO/EHLO required by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
drop condition = ${if match{$sender_helo_name}{\N^\d+$\N}{yes}{no}}
hosts = !127.0.0.1:!localhost:*
message = "There can not be only numbers in HELO!"
drop message = "The use of IP is forbidden in HELO!"
hosts = *:!+relay_from_hosts
condition = ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
drop condition = ${if eq{$sender_helo_name}{$interface_address}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "The use of my IP is forbidden!"
drop condition = ${if eq{$sender_helo_name}{$primary_hostname}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "The use of my hostname is forbidden!"
accept
Такое ощущение, что ни одно правило deny из acl_smtp_rcpt - просто не работает.
Когда подключаюсь exim -bh [IP] - эти правила вроде как отображаются, но все равно не срабатывают.
В общем подскажите, пожалуйста, куда смотреть. Весь конфиг пока не выкладываю, чтоб не перегружать пост, вдруг у меня какая-нибудь типичная ошибка новичка, и решение элементарное.