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

Если ограничения клиента не проходят, он будет немедленно отклонен.

Другие вопросы по тегам