Postfix объединяет несколько проверок
Я пытаюсь настроить Postfix на разрешение почты только в том случае, если она поступает с определенного адреса электронной почты И если она поступает с определенного сервера (Google). Это моя конфигурация:
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/access_from,
check_client_access hash:/etc/postfix/client_access,
reject
доступ_от:
max@[REDACTED].com OK
клиент_доступ:
google.com OK
Однако, если я отправлю электронное письмо с серверов Google, но не с правильного адреса электронной почты, оно все равно пройдет. Вот журналы:
maps_find: hash:/etc/postfix/access_from: [WRONG ADDRESS]@gmail.com: not found
maps_find: hash:/etc/postfix/access_from: gmail.com: not found
maps_find: hash:/etc/postfix/access_from: com: not found
maps_find: hash:/etc/postfix/access_from: [WRONG ADDRESS]@: not found
mail_addr_find: [WRONG ADDRESS]@gmail.com -> (not found)
generic_checks: name=check_sender_access status=0
generic_checks: name=check_client_access
check_namadr_access: name mail-qk1-f178.google.com addr 209.85.222.178
check_domain_access: mail-qk1-f178.google.com
maps_find: hash:/etc/postfix/client_access: mail-qk1-f178.google.com: not found
maps_find: hash:/etc/postfix/client_access: hash:/etc/postfix/client_access(0,lock|fold_fix|utf8_request): google.com = OK
check_table_result: hash:/etc/postfix/client_access OK mail-qk1-f178.google.com
smtpd_acl_permit: checking smtpd_log_access_permit_actions settings
match_list_match: OK: no match
smtpd_acl_permit: smtpd_log_access_permit_actions: no match
generic_checks: name=check_client_access status=1
Postfix видит, что отправляемое электронное письмо недействительно, но когда он также видит, что оно отправлено из Google, он игнорирует предыдущую ошибку и все равно принимает электронное письмо. Другими словами, Postfix выполняет операцию ИЛИ для двух проверок, но мне нужно, чтобы это было И для двух проверок. Как мне это сделать?
1 ответ
Я понял!
smtpd_client_restrictions =
check_client_access hash:/etc/postfix/client_access,
reject
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/access_from,
reject
Если ограничения клиента не проходят, он будет немедленно отклонен.