왜 이것이 작동하지 않습니까?

왜 이것이 작동하지 않습니까?

나는 다음과 같은 경우에 릴레이 호스트로 메일 릴레이를 허용하는 접미사를 갖고 싶습니다.

a) 발신자 도메인이 허용됩니다

다음 중 하나:

b) 보낸 사람이 인증했습니다. c) 클라이언트에 IP 화이트리스트 항목이 있습니다.

지금까지 나의 현재 접근 방식은 다음과 같습니다.

relayhost = [RELAYHOST]:25
smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/restricted_senders

smtpd_recipient_restrictions = 
  check_client_access cidr:/etc/postfix/ip_whitelist, 
  permit_sasl_authenticated, 
  reject_unauth_destination

제한된 발신자 포함

example.com   OK

및 다음을 포함하는 ip_whitelist

192.168.1.3   OK

인증된 클라이언트 또는 IP 화이트리스트 클라이언트에서 메일을 보내는 동안 보낸 사람 도메인 제한은 작동하지 않습니다. 인증 또는 client_access가 일치하자마자 발신자 제한이 더 이상 확인되지 않는 것 같습니다.

답변1

왜 이것이 작동하지 않습니까?

그만큼smtpd_sender_restrictions:

기본값은 모든 것을 허용하는 것입니다.

쉼표 및/또는 공백으로 구분된 제한 사항 목록을 지정합니다. 다음 줄을 공백으로 시작하여 긴 줄을 계속하세요. 제한 사항은 지정된 순서대로 적용됩니다. 일치하는 첫 번째 제한이 적용됩니다.

그리고

check_sender_access type:table

지정된 검색액세스(5)MAIL FROM주소, 도메인, 상위 도메인 또는 에 대한 데이터베이스를 선택 localpart@하고 해당 작업을 실행합니다.

따라서 구성에서는 먼저 허용 example.com/etc/postfix/restricted_senders다음 다른 모든 것을 허용합니다. 그만큼smtpd_reject_unlisted_sender다음과 같은 이유로 변경되지 않습니다.

1) 주소가 일치하지 않는 경우 주소는 "알 수 없음"으로 간주됩니다.가상(5)별칭 또는정식(5)2) 주소가 해당 주소 클래스에 대해 유효하지 않습니다. 클래스 기반 주소 유효성 검사에 대한 정의는 다음을 참조하세요.ADDRESS_CLASS_README.

도메인이 다음 example.org위치에 없습니다.현지의,가상 별칭,가상 사서함...도 아니다계전기도메인 클래스이므로기본 도메인 클래스. 이 클래스에는 대상이나 유효한 수신자 테이블이 없습니다. 분명히 다른 도메인 클래스에 속하지 않는 모든 주소는 이 주소 클래스에 유효합니다. 로컬 시스템은 원격 시스템에서 어떤 주소를 사용할 수 있는지 알 수 없으므로 이는 논리적입니다.

smtpd_sender_restrictions이것으로 충분하다

잊어 버려smtpd_reject_unlisted_sender혼자서도 할 수 있으니까요 smtpd_sender_restrictions.

  • 가장 쉬운 구성은 다음과 같습니다.

    smtpd_sender_restrictions = 
        check_sender_access hash:/etc/postfix/restricted_senders,
        reject
    
  • 대안은 regex:테이블을 사용하는 것입니다.

    smtpd_sender_restrictions = 
        check_sender_access regex:/etc/postfix/restricted_senders
    

    이를 통해 다음을 사용할 수 있습니다.정규 표현식:

    /example\.com$/  OK
    //               550 You are not allowed to use this sender address.
    

    다음을 사용하여 조회 결과를 테스트할 수 있습니다.postmap -q:

    $ /usr/sbin/postmap -q [email protected] regexp:/etc/postfix/restricted_senders
    550 You are not allowed to use this sender address.
    
    $ /usr/sbin/postmap -q [email protected] regexp:/etc/postfix/restricted_senders
    OK
    

관련 정보