방화벽 뒤의 로컬 서브넷에 있는 클라이언트에서 Postifx TLS 인증서 유효성 검사

방화벽 뒤의 로컬 서브넷에 있는 클라이언트에서 Postifx TLS 인증서 유효성 검사

그레이리스트, DKIM, SFP, amavis 및 clamav로 구성되고 MX, "A" 레코드 및 역방향 DNS 항목이 올바르게 구성된 방화벽 뒤에 작동하는 postfix 서버가 있습니다. 인터넷상의 다른 도메인으로 메일을 보내고 받을 수 있습니다. 접미사는 도메인에 대해 LetsEncrypt의 인증서를 사용하고 있습니다. 메일 서버는 방화벽 뒤에 있는 192.168.10.0/24의 개인 서브넷에 있습니다. 그리고 그것이 작동하기 위해 나는 다음 포트 25,587, 465, 993과 certbot의 80 및 443에 대한 포트 전달을 수행하고 있습니다. 메일 서버용으로 예약된 공용 IP 주소만 확인하도록 수동 정적 아웃밴드 NAT도 구성했습니다. 지금까지는 모든 것이 잘 작동합니다.

내가 가진 문제는 해당 메일 서버가 192.168.10.0/24 네트워크에 있고 TLS 포트(예: 465 및 587)에 대해 다른 로컬 서브넷(192.168.20.10/24)의 방화벽 뒤에 있는 클라이언트에 대해 메일 전송이 작동하지 않는다는 것입니다. 25 작품!!!. 클라이언트가 외부에서 오는 경우 모든 것이 잘 작동합니다. 이제 내부 클라이언트가 메일 서버에 도달하려고 할 때마다 이 경우 라우터이기도 한 방화벽을 통과합니다. 해당 클라이언트는 메일 서버를 확인하려고 합니다. mail.mySimpleMailProject.com이라고 말하면 인증서가 잘못된 IP, 즉 공용 IP가 아닌 192.168.10.5에 매핑되어 있기 때문에 인증서가 유효하지 않다는 것을 알게 됩니다.

그러나 포트 25를 사용해서만 내부 클라이언트로부터 메일을 보낼 수 있으며 작동합니다. 하지만 내 목표는 내부 네트워크의 보안 채널을 통해 메일을 보내는 것입니다.

가능한 해결책에 대해 읽었습니다.

Nat 반사 구성

이제 저는 NAT 리플렉션을 정말로 원하지 않습니다. NAT는 사악하며 어떤 대가를 치르더라도 이를 피하려고 노력하고 있습니다.

나는 다음과 같이 생각하고 있습니다. postfix에 지시하는 방법이 있습니까?

1) 로컬 네트워크로부터의 연결을 수락합니다.

그 목적을 위해 smtpd_recipient_restrictions에 allowed_mynetworks 항목이 있습니다. 즉,

smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,

    reject_non_fqdn_helo_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_invalid_helo_hostname,
    reject_unknown_helo_hostname,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,

    reject_rbl_client zen.spamhaus.org,

    check_policy_service unix:postgrey/socket,
    permit

2) 내부 네트워크 192.168.20.0/24에서 연결하여 나중에 해당 클라이언트로 가져와 만족시킬 수 있는 또 다른 자체 서명 인증서를 나타내는 경우.

어쩌면 이 문제에 대한 다른 더 나은 해결책이 있을 수도 있습니다. 어떤 힌트라도 높이 평가됩니다.

답변1

솔루션 1
내부적으로 mail.mySimpleMailProject.com을 내부 주소로 해결하는 내부 DNS를 가질 수 있습니다.

솔루션 2
내부 네트워크에서 mail.mySimpleMailProject.com에서 확인된 공용 IP로의 포트 전달이 DNAT(포트 전달)인지 확인하세요.

관련 정보