Postfix로 이메일을 보낼 때 수신 헤더에서 발신자의 IP 및 사용자 이름을 숨기려면 어떻게해야합니까?


13

메일을 발송할 때 Postfix 는 인증 된 사용자의 IP 및 사용자 이름을 이메일의 수신 헤더에 삽입합니다. 메일 서버에서 보낸 특정 전자 메일을 보낸 사람을 추적하는 데 유용하지만 개인 정보에 영향을 미칩니다. 모든 사용자가 계정을 손상시키지 않고 스팸 좀비로 전환하지 않도록 신뢰할 수있는 소규모 상황에서는 모든 사용자가 읽을 수 있도록 IP 주소와 계정 이름을 브로드 캐스트하지 않겠습니다. 간단히 말해서, 이것을 보내지 않도록 Postfix 를 어떻게 설정합니까?

수신 : [xxxx] (pc1.example.com [xxxx]) (암호 DHE-RSA-AES256-SHA (256/256 비트)와 함께 TLSv1 사용) (클라이언트 인증서가 요청되지 않음) (인증 된 발신자 : 사용자) ESMTPSA ID가 CC77010C148 인 example.com (Postfix); 2011 년 11 월 11 일 금요일 04:55:18 +0000 (UTC)

답변:


20

표준 솔루션은 header_checks 옵션 을 사용하는 것입니다. 이 의지 작업, 메일에 우리가 (이 할 것 같은) 수신 및 발신 모두 모든 메일에 선을받은 필터링 경우, 우리는 잠재적으로 잃게 수신 할 수 헤더는 전송 문제 해결에 중요 할 수있는 우리. 이 문제를 해결하기 위해, 우리는 적용됩니다 header_checks만 아마도에 전송 된 우리 메일로 전송 될 수 없었다 메일로 제출 포트 (당신이 하는 사용하여 제출 포트를 , 당신이하지 않은? ).

이 게시물header_checks 은 제출 포트에만 독점적으로 적용하는 방법을 설명합니다 . 우리가해야 할 일은 cleanup_service_name 옵션을 제출 서비스에 전달하여 새로운 정리 서비스 인“subcleanup”을 설정하는 것입니다. 관련 섹션은 /etc/postfix/master.cf다음과 같습니다.

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup

이제 header_checks새로운 정리 서비스에 옵션을 전달할 수 있습니다 . 그 부분은 /etc/postfix/master.cf다음과 같습니다.

cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks

마지막으로, 우리는 화일을 /etc/postfix/submission_header_checks받은 헤더 행을 걸러내는 정규식을 포함하는 파일을 만들어야합니다 . 파일에 넣는 정규식은 smtpd_sasl_authenticated_header설정 했는지 여부에 따라 다릅니다 .

경우 smtpd_sasl_authenticated_header이며 yes, 다음 사용

/^Received:.*\(Authenticated sender:/ IGNORE

그렇지 않으면 다음을 사용하십시오.

/^Received:.*\(Postfix/ IGNORE

(두 번째 사례를 처리하는 방법을 보여준 Dominic P와 Bryan Drewery에게 감사합니다.)


전화 postmap submission_header_checks해야합니까?
Mitar

@Mitar 실마리는 없지만, 알고 있다면 대답을 자유롭게 편집하십시오. 이것들은 10.04의 오래된 지침이지만 14.04가 나올 때 업데이트 될 것입니다.
Michael Kropat

그것은없이 일한 것 같습니다. :-)
Mitar

1
+1, 매우 유용한 답변에 감사드립니다. 몇 년 후, 나는 약간의 조정이 필요했습니다. Postfix 2.9.6을 실행 중입니다. /^Received:.*\(Postfix/ IGNORE헤더에 "인증 된 발신자"부분이 없기 때문에 정규식을 다음과 같이 변경했습니다 . 새로운 정규식과 관련된 위험이 있습니까?
Dominic P

1
이 답변은 smtpd_sasl_authenticated_header = yes가 설정되어 있다고 가정합니다. 그것이 없으면 Dominic의 수정 된 정규식이 필요합니다.
Bryan Drewery

-1

당신이 사용할 수있는

smtpd_sasl_authenticated_header = no

에서가 postfix/main.cf보내는 메일의 헤더 정보를 제거합니다.


이 답변이 @ Michael 's보다 훨씬 간단한 이유는 무엇입니까? 제출 포트를 통해받은 메일이 아닌 모든 헤더에서 IP를 제거합니까?
knocte

2
@knocte smtpd_sasl_authenticated_header는 기본적으로 "no"로 설정되어 있습니다. 사용하도록 설정하면 Postfix는 SASL 인증에 사용 된 사용자 이름을 초기 "수신 됨"헤더에 추가합니다. 즉, 질문에 표시된 "인증 된 발신자 : 사용자"부분이 추가됩니다. @Michael의 답변은 사용자 부분뿐만 아니라 클라이언트의 IP를 포함한 전체 "수신 된"헤더를 제거합니다.
n.st

@ n.st : Markus의 대답이 IP를 제거하지 않으므로이 질문이 아닙니까?
knocte

@knocte 정확히.
n.st

1
공감하려면 125+가 필요합니다. 나는 그것을 테스트했으며 IP가 아닌 사용자 이름 만 제거합니다.
John
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.