Postfix reject_unknown_reverse_client_hostname : 기본 unknown_client_reject_code (450)를 550으로 바꾸십시오. 왜 / 언제 안됩니까?


9

SPAM과의 매일의 싸움에서 와일드 인터넷에서 연결하는 클라이언트의 DNS 요구 사항을 많이 시행하려는 유혹을 받았던 적이 여러 번있었습니다.

자세하게 는 다음과 같이 smtpd_client_restrictions 섹션에 reject_unknown_reverse_client_hostname 설정 을 추가 했습니다.

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            reject_unknown_reverse_client_hostname
            reject_unauth_pipelining 

어쨌든, 나는 그러한 제한에 부딪 칠 때 Postfix 동작은 기본값 unknown_client_reject_code이 450 이므로 상당히 "부드럽습니다" . 따라서 클라이언트는 계속 재 시도하도록 초대됩니다.

550 응답을 조사하는 동안 공식 Postfix 설명서에서 다음 진술을 만났습니다 .

여기에 이미지 설명을 입력하십시오

나는 절대적 해요 하지 전체에 대한 전문가 RFC 5321 만 알 수있는 사람이 오래된만큼로서 RFC 821 , 난 정말 (최대의 SMTP 수준에서 내 후위 인스턴스에 영향을 미칠 수, 왜 대신 450의 550 응답을 볼 수 없습니다 일시적인 오류 발생시 Postfix는 명시 적 설정에 관계없이 450으로 고정됩니다.

그렇다면 누군가가 그러한 대체품의 문제를 이해하도록 도울 수 있습니까?


추신 : 그 동안 나는 "완화 된"제한으로 끝났습니다.

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            warn_if_reject reject_unknown_reverse_client_hostname
            reject_non_fqdn_helo_hostname
            reject_unauth_pipelining 
            reject_invalid_helo_hostname 

답변:


12

두 가지 실용적인 답변으로 시작하겠습니다

  1. 첫 번째로 가장 확실한 대답은 일시적인 DNS 오류가있는 경우 임시 바운스는 발신자 메일 서버가 DNS 오류가 수정 될 때까지 다시 시도 할 수 있다는 것입니다. 이 경우 영구 바운스는 실제 햄 메일이 사용자에게 도달하지 못하도록 차단합니다.

  2. 두 번째 대답은 메일을 보낼 수있는 실제 기능 프로그램이없는 봇넷 상자를 통해 많은 스팸이 전송된다는 것입니다. 그들은 한 번만 정크를 뿌릴 것이며, 메시지에 일시적 또는 영구적 인 오류가 발생하더라도 메시지를 다시 보내려고하지 않습니다. 따라서 일시적인 오류를 사용하면 스팸의 상당 부분을 차단할 수 있지만 여전히 햄이 다시 시도하도록 허용하고 있습니다. (그런데 그레이리스트가 여전히 작동하고 여전히 많은 스팸을 포착하는 이유 입니다.)

이 것들 외에도 이론과 RFC에 더 많은 해답이 있습니다.

RFC는 섹션 4.2.1에 나와 있습니다. 그:

회신이 4yz 또는 5yz 범주 (아래 참조)에 맞는지 여부를 결정하는 경험 법은 명령 형식이나 발신자 또는 수신자의 속성 (즉, , 명령이 동일하게 반복되고 수신기는 새로운 구현을하지 않습니다).

역방향 조회 실패의 경우 DNS 오류가 수정 된 경우에만 메시지 자체를 변경하지 않고 메시지를 수락 할 수 있습니다. 따라서 이것은 일시적인 오류 여야합니다.

메시지가 스팸 이 아닌 경우 보내는 메일 서버 sysadmin은 오류 메시지를 확인하고 DNS 문제를 해결하여 사용자가 메시지를 중재하거나 다시 보내지 않고도 메시지를 배달 할 수 있습니다. 또한 이메일을 보내는 사용자가 메일 서버 및 / 또는 DNS 항목을 담당하지 않는 한, 영구적 인 반송이 발생하더라도 철자가 틀린 경우와 달리 아무것도 할 수 없습니다. 주소.

물론, 귀하는 여전히 어떤 이유로 든 이메일을 거부 할 권리가 있습니다.


DNS 임시 문제에 대해 생각했지만 ..... " 일시적인 오류 조건으로 인해 매핑이 실패한 경우 SMTP 서버는 항상 450으로 응답 합니다." 여기에는 일시적인 DNS 조회 문제가 포함되어야합니다. 그렇지 않습니까? 두 번째 포인트 (BotNet, 그레이 리스팅 등)는 합리적입니다. 클라이언트가 적절한 큐 메커니즘을 구현하지 않으면 4XX 응답이 5XX와 동일한 효과를냅니다. 어쨌든 이것이 왜 이것이 이것이 RFC 수준에서 영향을 미치는지 그리워합니다.
Damiano Verzulli

2
@DamianoVerzulli DNS가 잘못된 이름을 반환하도록 잘못 구성된 경우가 아니라 오류가 발생하여 매핑이 실패한 경우 적용되며 이후에 수정됩니다. 어쨌든 RFC와 관련된 문제를 조금 확장했습니다.
Jenny D

1
올바른 RFC 섹션을 가리켜 주셔서 감사합니다. 나는 이것에 초점을 맞추고있다 : " 명령 형식이나 SENDER 또는 수신자의 속성 에서 어떤 변경없이 반복 될 경우 응답은 4yz 이다 ". 내 첫번째 추측은 클라이언트의 DNS 호스트 이름뿐 아니라 역 DNS 매핑이 있다는 것입니다 있습니다 보낸 사람의 속성. 그렇지 않습니까? 그렇지 않으면 발신자 속성이 무엇인지 알 수 없습니다. (BTW : 개인적으로 제 의견을 보내지 마십시오.이 토론에 관심이 있고 의견을 보내 주셔서 감사합니다! 의견을 보내 주셔서 감사합니다!).
Damiano Verzulli 2016

1
@DamianoVerzulli DNS 호스트 이름은 보내는 메일 서버의 속성이 아니며 메일 서버 구성 내에서 변경할 수 없습니다. 그것은 권위있는 DNS 서버에 의해 제어되는데, 이것은 보통 같은 서버는 아니며, 전자 메일 서버의 일부는 훨씬 적습니다. 때로는 같은 조직 내에서 통제되지도 않습니다. (나는 개인적으로 복용하지 않습니다-이것은 사실에 대한 토론입니다. 어떤 독단적 인 주장도없이 개인적으로 취할 것이 없습니다! 나는 그것이 매우 흥미롭고 분명하지 않다고 동의합니다.
Jenny D
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.