발신자 확인 기능이 있는 exim4 스마트호스트

발신자 확인 기능이 있는 exim4 스마트호스트

ISP 메일 서버 앞의 스마트 호스트로 exim4를 설정하려고 합니다. 잘못된 발신자(스팸일 가능성이 높음)가 보낸 일부 이메일을 제외하고는 모든 것이 잘 작동합니다. ISP는 다음과 같이 이를 거부합니다.

450 4.1.8 <[email protected]>: Sender address rejected: Domain not found

이로 인해 exim 스마트호스트가 재시도하게 되어 대기열 크기가 불필요하게 늘어납니다.

내가 이것을 구성하는 데 가장 가까운 것은 /etc/exim4/local_sender_callout파일을 사용하는 것입니다. 그러나 콜아웃은 ISP로 전달되고 ISP는 이를 거부합니다.

554 5.7.1 <[email protected]>: Relay access denied(모든 주소에 대해, 유효한 주소라도). 이 경우에는 설정이 /etc/exim4/passwd.client작동하지 않는 것 같습니다...

exim 스마트호스트를 사용하여 발신자 확인(콜아웃 포함 또는 바람직하지 않음)을 어떻게 설정할 수 있나요?

설명: 내 exim은 오픈 릴레이가 아니며 이미 이메일을 허용하는 제한된 도메인 목록만 지정하고 있습니다. 그런 다음 해당 이메일은 실제 사서함으로 배달되기 위해 스마트호스트로 전송됩니다. 설정 다이어그램은 아마도 다음과 같을 것입니다.

Internet -> my exim(mx) -> ISP(smarthost) <- users accessing email via POP/IMAP

내 도메인의 mx 레코드가 내 exim 서버를 가리킵니다. 그러나 ISP는 내 도메인의 이메일을 수락하고 이를 사서함에 저장합니다.

답변1

실제로 최종 대상을 향한 더 깊은 제한적인 필터 세트를 사용하여 프런트엔드 MX를 설정하는 것입니다. 이 문제를 해결하는 가장 좋은 방법은 최소한 프런트 엔드에서 제한을 두는 것입니다.

하지만 스마트호스트가 있기 때문에 "모든 도메인"에 대한 이메일을 스마트호스트로 보냅니다. 이는 도메인 유효성 검사와 나쁘게 결합됩니다. RCPT 명령에 대해 정의된 ACL 어딘가에 require verify = senderExim이 메시지를 수락하기 전에 보낸 사람 도메인에 이메일을 보내는 방법이 있는지 확인하는 것이 있어야 합니다 .

귀하는 항상 켜져 있으므로 스마트호스트 라우터 바로 앞에 추가 라우터를 배치하는 것이 좋습니다. 스마트호스트에 domains = ! +local_domains및 가 있다고 가정하고 스마트호스트 라우터에 no_more추가 하고 그 앞에 다음 라우터를 삽입합니다.no_verify

remote_dns_verify:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  # ignore_target_hosts = +some_hostlist_matching_rfc1918_and_so_on
  same_domain_copy_routing
  verify_only
  no_more

이로써,확인path는 스마트호스트를 사용하지 않으므로 더 이상 "모든 것에 대한 경로"가 없습니다. 확인은 DNS가 있는 원격 도메인만 라우팅할 수 있으므로 ISP가 라우팅할 수 없다는 이유로 거부하는 이메일을 더 이상 수락하지 않습니다.

그런 다음 ISP가 거부한 메일의 재시도를 중지하기 위해 특정 원격 오류와 일치하는 몇 가지 재시도 규칙을 설정하는 방법을 살펴보겠습니다. 보다http://www.exim.org/exim-html-current/doc/html/spec_html/ch-retry_configuration.html이상.

관련 정보