Страница 1 из 1
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-20 17:54:47
ElDeRone
Задача: требовать аутентификацию для пользователей, посылающих письма с существующих ящиков из локальных доменов не из локальных сетей.
в acl_check_rcpt:
Код: Выделить всё
deny !authenticated = *
domains = +local_domains
!hosts = +relay_from_hosts
вроде бы работает, но при этом режет письма из доменов указанных в relay_to_domains
как починить? как сделать правильно?
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-24 16:29:58
Alex Keda
с положением восклицательных знаков, внимательней
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-25 12:39:24
ElDeRone
если я правильно все понимаю, код читается так:
запретить всем неавторизованным
из локальных доменов
не из разрешенных сетей
Отправлено спустя 1 минуту 39 секунд:
там между строками И или ИЛИ?
Отправлено спустя 8 минут 54 секунды:
но все равно непонятно, как эта acl'ка влияет на relay_to_domains?
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-25 15:04:31
xM
ElDeRone писал(а): там между строками И или ИЛИ?
И. Только учтите что у вас там два НЕ ещё :-)
Отправлено спустя 7 минут 50 секунд:
Вообще, есть require если именно надо требовать. В принципе, реализовать можно и логикой accept / deny
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 9:46:54
ElDeRone
То есть первый воскл. знак распространяется на все подстроки в том числе?
Код: Выделить всё
require authenticated = *
domains = +local_domains
!hosts = +relay_from_hosts
а такая конструкция не запретит сторонним почтовикам присылать мне письма без авторизации?
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 9:58:16
xM
Отрицание только на конкретную строку действует.
Это правило у вас даст передаст управление следующему для аутентифицированных пользователей локальных доменов не из локальных сетей. В противном случае будет deny.
В этой связи если вы будет использовать именно такое правило, надо тщательно выбирать место, куда его вставлять исходя из логики вашей конфигурации.
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 10:05:30
ElDeRone
xM писал(а): Это правило у вас даст передаст управление следующему для аутентифицированных пользователей локальных доменов не из локальных сетей. В противном случае будет deny.
в противном случае это для всех остальных?
то есть таки нелокальные домены не смогут присылать мне письма?
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 10:09:17
xM
Смотря где поставить, я ж говорю.
Отправлено спустя 1 минуту :
Require дает accept при совпадении всех условий и deny в противном случае
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 10:15:26
ElDeRone
Код: Выделить всё
acl_check_rcpt:
accept
hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|`#&?]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
# require verify = sender
# deny !authenticated = *
# domains = +local_domains
# !hosts = +relay_from_hosts
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
control = submission/sender_retain
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient
deny
message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
!acl = acl_local_deny_exceptions
senders = ${if exists{CONFDIR/local_sender_blacklist}\
{CONFDIR/local_sender_blacklist}\
{}}
accept
domains = +relay_to_domains
endpass
verify = recipient
accept
dnslists = zen.spamhaus.org
message = Your IP address ($sender_host_address) is blacklisted by Spamhaus\n\(http://www.spamhaus.org/query/bl?ip=$sender_host_address)\n\$dnslist_text
set acl_m1 = "spam@domain.com"
accept
наверное вот эту часть
Код: Выделить всё
accept
domains = +relay_to_domains
endpass
verify = recipient
надо поставить выше того правила...
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-01-26 12:25:35
xM
Ох, трудно сказать. Надо видеть конфиг.
Но, вообще, приём relay_to_domains надо делать до, конечно.
Отправлено спустя 5 минут 14 секунд:
Лично я с аутентифицированными разбираюсь сразу после проверки синтаксиса HELO и MAIL TO
# --- local domain spoofing control
...
deny authenticated = *
condition = ${if !match_domain{$sender_address_domain}{+local_domains}}
!senders = :
message = Sending from foreign domain denied
delay = 5s
# --- limit user activity
deny authenticated = *
ratelimit = 100 / 1h / strict / $authenticated_id
# --- accept authenticated users
accept authenticated = *
control = dkim_disable_verify
# --- accept authenticated users only for local domains
deny message = Authentication need to relay
!hosts = +relay_from_hosts
sender_domains = !+ghs_domains : +local_domains
...
+ghs_domains - это у меня один домен частично хостится на Google.
Можете модифицировать под ваши потребности.
Отправлено спустя 15 минут 26 секунд:
xM писал(а): Require дает accept при совпадении всех условий и deny в противном случае
Вру. Не accept, передает проверку следующему правилу, конечно.
Проверка авторизации в acl_check_rcpt
Добавлено: 2016-03-10 18:47:45
ElDeRone
Код: Выделить всё
deny !authenticated = *
condition = ${if match_domain{$sender_address_domain}{+local_domains}}
domains = +local_domains
!hosts = +relay_from_hosts
вот так вроде работает
проверил четыре варианта неавторизованных:
1. с левого айпишника с нашего домена на наш домен - зарубило, ок
2. с левого айпишника с ненашего домена на наш домен - пропустило, ок
3. с разрешенного айпишника с ненашего домена на наш домен - пропустило, ок
4. с разрешенного айпишника с нашего домена на наш домен - пропустило, ок
какие еще могут быть варианты? может упустил чего...