postfix에서 클라이언트 발신자 IP를 제거 / 숨기기 하시겠습니까?


16

postfix에서 보낸 이메일에서 클라이언트 IP를 숨기려고합니다.

다음은 내가 의미하는 바의 예입니다.

Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    by mail.[removed].com (Postfix) with ESMTP id D50C7BF185DD
    for <[removed]@gmail.com>; Thu,  2 Aug 2012 16:14:21 +0900 (JST)
Date: Thu, 02 Aug 2012 07:14:08 +0000

이 줄을 주목하십시오 (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

이메일에서 해당 라인을 제거하고 싶습니다.

나는 이것을 시도했다.

/etc/postfix/main.cf :

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

smtp_header_checks :

/^((.*) [(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])])/    IGNORE

그러나 내 IP 주소는 여전히 이메일 수신 부분에 있습니다. 로컬로 SMTP 서버에서 이메일을 보내면 IP 주소가localhost.localdomain [127.0.0.1]

헤더에서 클라이언트 IP를 제거하려면 어떻게해야합니까?

답변:


12

에서 main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

에서 dynamicmaps.cf:

# Use your real path to dict_pcre.so, below
pcre    /usr/lib/postfix/dict_pcre.so           dict_pcre_open

당신은 이것을 당신의 /etc/postfix/smtp_header_checks:

/^Received: .*/     IGNORE
/^X-Originating-IP:/    IGNORE

그런 다음 실행

# /etc/init.d/postfix reload

내 IP 주소가 여전히 표시됩니다. 노력해 주셔서 감사합니다.
Kyle

postfix-pcre가 필요하지 않습니다. 정규식은 같은 방식으로 작동합니다.
Kyle

좋구나. pcre가 시스템에 설치되어 있는지 확인했습니다. 로 변경 regexp:/etc/postfix/smtp_header_checks되었습니다 pcre:/.... 그런 다음 postfix를 다시 시작하고 오류가 있는지 maillog를 모니터링했습니다. 오류가 표시되지 않았습니다. 이메일에는 여전히 내 IP가 표시됩니다. XD 노력해 주셔서 감사합니다. Mike.
Kyle

흠 ... 나는 오류가 발생하지만이 발견 irbs.net/internet/postfix/0404/1097.html 나는이와 정규식 테스트 postfix.org/pcre_table.5.html을 인수를 사용하여 : postmap -q "Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])" pcre:/etc/postfix/smtp_header_checks출력했다 IGNORE가 그래서 일. 그러나 이메일에서 변경 사항이 없습니다 ... 필드가 main.cf잘못 되었습니까?
Kyle

1
젠장 방금 당신의 시간을 낭비했습니다. 처음에 내 잘못이야. smtp_header_checks하기로되어있었습니다 header_checks... 지금 작동합니다. 시간을 낭비해서 정말 죄송합니다. 당신의 노력에 감사드립니다. 감사합니다. pcre도 작동합니다. 나는 centos에있다. 다시 한번 감사드립니다.
Kyle

3

/etc/postfix/master.cf를 열고 다음을 찾으십시오.

cleanup unix n - n - 0 cleanup

해당 줄 아래에 추가하고 다음을 수행하십시오.

cleanup unix n - n - 0 cleanup -o header_checks=pcre:/etc/postfix/header_checks

/ etc / postfix / header_checks를 편집하고 아래 코드를 추가하십시오 :

/^Received:/ IGNORE

이제 postfix를 다시 시작하십시오. CentOS에서 다음과 같이 말합니다.

service postfix restart


1
불행히도, 이것은 또한 Received수신 메일 의 헤더를 제거합니다 .

0

새 메일 제출을 위해 수신 헤더에서 발신자 IP를 제거하려면 옵션 header_checks대신 키를 사용하십시오 smtp_header_checks.

header_checks = regexp:/etc/postfix/header_checks_submission

smtp_header_checks옵션은 Postfix에서 외부 서버로 전송되는 메일에만 적용되는 반면 header_checks클라이언트에서 Postfix로 전송 된 수신 메일 에는 적용됩니다.

구성 요소에 대한 개요는 Postfixhttp://www.postfix.org/OVERVIEW.html 에서 메일받는 방법을 참조하십시오 . 메일은 smtpd-> 정리-> 수신 큐에서 이동합니다. smtpd처리는 메일을 수신하고, 주입 Received송신원 IP 어드레스를 가진 헤더. 이 header_checks(5)옵션은cleanup(8) 이메일 헤더를 삭제 구성 요소에 .

되어 있지 그런 설정하는 것이 좋습니다 header_checks이에서 수신 된 헤더 수정하는 것처럼 당신의 main.cf 세계적으로 옵션을 모두 이메일, 외부 서버로부터받은 심지어한다. 대신, 포트 587에서 전용 제출 서비스를 통해 이메일을 보내도록 클라이언트를 구성하고 인증 된 제출에 대해서만 헤더를 다시 쓰도록 Postfix를 구성해야합니다.

에서 줄 뒤에 /etc/postfix/master.cf다음 -o줄을 추가하십시오 submission.

submission inet n       -       y       -       -       smtpd
  # Require SASL authentication
  -o smtpd_sasl_auth_enable=yes
  # Require TLS transport security, do not leak your credentials in plaintext.
  -o smtpd_tls_security_level=encrypt`
  # Disallow unauthenticated users from sending mail through this port.
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  # Use a different cleanup service (see below)
  -o cleanup_service_name=ascleanup

시간은 구성 할 수 정리 에 대한 서비스를 uthenticated ubmissions. 이름 을 짧게 정렬하기 위해 이름 을 선택 하지만 모든 이름이 작동합니다. 이렇게하려면 정리 서비스 행을 동일한 파일 에 복제 하되 첫 번째 필드의 이름을 바꾸고 새 옵션을 추가하여 필터 파일을 선택하십시오.ascleanupmaster.cf

cleanup   unix  n       -       y       -       0       cleanup
ascleanup unix  n       -       y       -       0       cleanup
  -o header_checks=pcre:/etc/postfix/header_checks_submission

( pcre테이블을 사용하려면 postfix-pcre데비안에서 설치해야 합니다. 그러면 dynamicmaps.cf 파일이 자동으로 업데이트됩니다. 더 이상 변경할 필요가 없습니다.)

마지막 부분은의 실제 필터 구성입니다 /etc/postfix/header_checks_submission. 잠재적으로 다음과 같은 것을 사용할 수 있습니다.

/^Received: .*/ IGNORE

수신 된 전체 헤더 행을 제거하지만 대신 from helo.host (reverse.host.name [192.0.2.1])다른 정보를 유지하면서 부분을 삭제할 수도 있습니다 .

/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1

mail_name옵션을 변경 한 경우 Postfix구성과 일치하도록 단어를 변경하십시오 . (이 패턴은 Postfix 소스 코드 smtpd / smtpd.c 에 따라 정확합니다 .)

데비안 버스터에서 postfix 3.4.7-0 + deb10u1로 이것을 테스트했습니다. 동일한 접근 방식을 사용하는 또 다른 훌륭한 설명은 Postfix로 이메일을 보낼 때 수신 된 헤더에서 발신자의 IP 및 사용자 이름을 숨기는 방법을 참조하십시오 .

위의 수정으로 다음과 같이 변경됩니다 Received: by ....

Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
        by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
        for <some@example.com>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)

-1

이것을 사용하십시오 :

/^Received: from .*127.0.0.1**/ IGNORE

*양쪽에 싱글 만 사용


아니면 더 좋아? / ^ 수신 :. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.