postfix는 특정 발신자 주소("MAIL FROM:")에 대해서만 메일 릴레이를 제한합니다.

postfix는 특정 발신자 주소("MAIL FROM:")에 대해서만 메일 릴레이를 제한합니다.

특정 발신자 주소의 메일만 릴레이하도록 postfix를 구성하고 싶습니다. Postfix는 보낸 사람의 주소("MAIL FROM:")에 따라 메일을 다른 릴레이 호스트(/smarthosts)(Gmail, AOL, ...)로 릴레이해야 합니다.

지금까지 현재 구성은 다음과 같이 작동합니다.

  • 사용자는 일반적으로 메일 릴레이를 위해 postfix에서 인증합니다. 인증할 수 없으면 릴레이가 불가능합니다. 이 인증은 릴레이 호스트에 대한 인증과 다릅니다.

  • 보낸 사람의 주소("MAIL FROM:")에 따라 특정 릴레이 호스트가 선택됩니다( smtp_sender_dependent_authentication, sender_dependent_relayhost_maps, smtp_sasl_password_maps). 이것도 잘 작동합니다.

  • 그러나 사용자가 인증할 수 있고 보낸 사람 주소가 에 포함되지 않은 경우 sender_dependent_relayhost_mapspostfix는 메일을 직접 중계하려고 시도합니다. 이는 IP 주소 제한(블랙리스트)으로 인해 작동하지 않는 경우가 많습니다.


내 질문은 이제 스마트호스트 없이 직접 전달되었을 메일, 즉 보낸 사람의 주소가 에 나열되지 않은 메일을 거부하는 방법입니다 sender_dependent_relayhost_maps. 이것을 달성하는 방법에 대한 힌트가 있습니까?

답변1

제한적인 테스트가 필요합니다.~ 전에 permit_sasl_authenticated. 이에 대한 전제 조건은 25수신 메일용 포트에 smtpd를 분리하고 메일용으로 또 다른 smtpd를 분리하는 것입니다.제출포트에 587. 그렇지 않으면 이 제한으로 인해 수신 메일이 테스트를 통과하지 못하기 때문에 거부됩니다. 그런 다음 permit_sasl_authenticated포트에서 를 25완전히 제거하고 의 제출 구성에 테스트를 추가합니다 master.cf.

  • 귀하의 질문에 문자 그대로 대답하자면,check_sender_access나열된 모든 도메인을 허용 목록에 추가하고 sender_dependent_relayhost_maps나머지 도메인에 대해서는 메일을 거부하는 적절한 테스트가 될 것입니다.

    check_sender_access type:table

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

    이는 다음 중 하나에 추가될 수 있습니다.smtpd_sender_restrictions또는smtpd_recipient_restrictions.

  • 동일한 작업을 수행하지만 사용자가 서로의 주소를 사용하는 것을 추가로 방지하는 방법은 다음과 같습니다.reject_sender_login_mismatch. 여기에는 추가 사항이 필요합니다.smtpd_sender_login_maps그러나 virtual_alias_maps항목이 이미 로 구성된 경우 [email protected] username동일한 파일을 사용할 수 있으며 로 가상 별칭 데이터베이스를 업데이트할 때마다 허용된 보낸 사람 주소가 자동으로 업데이트됩니다 postmap. 이러한 제출 구성의 예는 다음과 같습니다 master.cf.

    submission inet n - - - - smtpd
    # Other parameters
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # Other parameters
    

관련 정보