postfix smtp_bind_address 지시문이 작동하지 않습니다.

postfix smtp_bind_address 지시문이 작동하지 않습니다.

최근에 새 서버(postfix 3.3.0 실행)로 마이그레이션했는데smtp_bind_address 의 설정이master.cf효과가 없습니다. 문제의 서버에는 10개의 ipv4 주소가 있으며 보내는 메일이 올바른 주소를 통해 라우팅되는 것이 중요합니다. 다음은 내가 가지고 있는 것의 일부입니다(192.168.100.1은 단지 예일 뿐이며 실제 IP는 실제 WAN 주소입니다).

smtp      inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1
smtps     inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1

또한 이 메일 서버와 함께 amavis 및 postrsd가 실행되어 메일이 한 서비스에서 다음 서비스로 전달되고 솔직히 말해서 일련의 이벤트에 대해 약간 혼란스럽지만 이전에는 이 구성이 완벽하게 작동했습니다.

smtp_bind_address이사 하려고 했는데main.cf작동했지만 amavis와 postrsd 모두 메일이 127.0.0.1을 통해 전달될 것으로 예상했기 때문에 다른 문제가 발생했습니다.

내 콘텐츠 필터와 함께 보내는 메일을 특정 주소로 바인딩하려면 어떻게 해야 합니까?

답변1

나가는 smtp/릴레이 연결은 다음 라인에 의해 제어됩니다.master.conf

smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp

따라서 -o smtp_bind_address=192.168.100.1필요한 것을 추가할 수 있습니다.

또한 이 조합을 다음에서 사용할 수도 있습니다.main.conf

inet_interfaces = 127.0.0.1 192.168.100.1
smtp_bind_address = 192.168.100.1

이를 통해 응용 프로그램은 127.0.0.1에 연결할 수 있으며 나가는 smtp는 기본적으로 특정 주소에 바인딩됩니다.

방화벽이 이러한 모든 구성을 무시할 수 있다는 점을 잊지 마십시오. 예를 들어 다음과 같은 간단한 규칙이 있습니다.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

나가는 연결의 소스 주소(인터페이스 eth0에서)를 이 인터페이스의 기본(기본) 주소로 변환합니다. 다른 관점에서 보면 (postfix를 구성하지 않고) 방화벽을 사용하여 smtp 연결 소스 주소를 설정할 수 있습니다.

iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -j SNAT --to-source 192.168.100.1

그러나 이것은 유연하지 않으며 최후의 수단으로만 사용합니다(예: 접미사 설정을 수정할 권한이 없습니다).

관련 정보