Khi gửi email bằng Postfix, làm cách nào tôi có thể ẩn IP và tên người dùng của người gửi trong tiêu đề đã nhận?


13

Khi gửi thư, Postfix sẽ chèn IP và tên người dùng được xác thực vào tiêu đề đã nhận trên email. Mặc dù điều này hữu ích để theo dõi những người đã gửi một email cụ thể được gửi từ máy chủ thư của bạn, nhưng nó cũng có ý nghĩa riêng tư. Trong một tình huống quy mô nhỏ nơi tôi có thể tin tưởng tất cả người dùng không bị xâm phạm tài khoản của họ và biến thành zombie spam, tôi không muốn phát địa chỉ IP và tên tài khoản cho tất cả mọi người đọc. Nói tóm lại, làm cách nào để thiết lập Postfix để không gửi cái này:

Đã nhận: từ [xxxx] (pc1.example.com [xxxx]) (sử dụng TLSv1 với mật mã DHE-RSA-AES256-SHA (256/256 bit)) (Không yêu cầu chứng chỉ ứng dụng khách) (Người gửi xác thực: người dùng) qua thư. example.com (Postfix) với ESMTPSA id CC77010C148 cho; Thứ Sáu, ngày 11 tháng 11 năm 2011 04:55:18 +0000 (UTC)

Câu trả lời:


20

Giải pháp tiêu chuẩn là sử dụng tùy chọn header_checks . Tuy nhiên, điều này sẽ hoạt động, nếu chúng tôi lọc các dòng nhận được trên tất cả thư đến và đi (vì điều này sẽ làm), chúng tôi có thể mất các tiêu đề đã nhận trong thư gửi cho chúng tôi, điều này có thể quan trọng để khắc phục sự cố. Để giải quyết vấn đề này, chúng tôi sẽ chỉ áp dụng header_checkscho thư không thể gửi cho chúng tôi Thư mail đã được gửi đến cổng gửi (bạn đang sử dụng cổng gửi , phải không? ).

Bài đăng này giải thích làm thế nào để áp dụng header_checksriêng cho cổng trình. Những gì chúng ta cần làm là chuyển tùy chọn Cleanup_service_name cho dịch vụ gửi để chúng ta có thể thiết lập một dịch vụ dọn dẹp mới, subcleanup. Phần có liên quan /etc/postfix/master.cfcó thể trông như thế này:

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

Bây giờ chúng ta có thể chuyển header_checkstùy chọn sang dịch vụ dọn dẹp mới. Phần đó /etc/postfix/master.cfcó thể trông như thế này:

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

Cuối cùng, chúng ta cần tạo tệp /etc/postfix/submission_header_checks, tệp này sẽ chứa regex lọc các dòng tiêu đề đã nhận. Regex nào bạn đặt trong tệp phụ thuộc vào việc bạn đã smtpd_sasl_authenticated_headerđặt chưa.

Nếu smtpd_sasl_authenticated_headeryes, sau đó sử dụng:

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

Nếu không, sử dụng:

/^Received:.*\(Postfix/ IGNORE

(Cảm ơn Dominic P và Bryan Drewery đã chỉ ra cách xử lý trường hợp thứ hai.)


Bạn có phải gọi postmap submission_header_checkskhông
Mitar

@Mitar không có manh mối, nhưng nếu bạn phát hiện ra rằng bạn làm, hãy thoải mái chỉnh sửa câu trả lời. Đây là những hướng dẫn cũ cho 10.04, nhưng có lẽ tôi sẽ cập nhật chúng khi 14.04 xuất hiện.
Michael Kropat

Có vẻ như nó làm việc mà không có. :-)
Mitar

1
+1, cảm ơn vì câu trả lời rất hữu ích. Vài năm sau, tôi phải chỉnh sửa một chút. Tôi đang chạy Postfix 2.9.6. Tôi đã thay đổi biểu thức chính thức thành: /^Received:.*\(Postfix/ IGNOREvì tôi không nhận được phần "Người gửi xác thực" trong các tiêu đề của mình. Bạn có thấy bất kỳ rủi ro liên quan đến regex mới của tôi không?
Đaminh P

1
Câu trả lời này giả sử smtpd_sasl_authenticated_header = yes được đặt. Không có nó thì regex được sửa đổi bởi Dominic là cần thiết.
Bryan Drewery

-1

Bạn có thể dùng

smtpd_sasl_authenticated_header = no

trong postfix/main.cfđể loại bỏ thông tin tiêu đề trong thư đi của bạn.


Tại sao câu trả lời này đơn giản hơn nhiều so với @ Michael? Điều này có xóa IP khỏi tất cả các tiêu đề, thay vì chỉ từ các thư nhận được qua cổng gửi không?
knocte 19/03/2016

2
@knocte smtpd_sasl_authenticated_headerđược đặt thành "không" theo mặc định. Khi được bật, Postfix sẽ thêm tên người dùng đã được sử dụng để xác thực SASL vào tiêu đề "Đã nhận" ban đầu - đó là phần thêm phần "Người gửi xác thực: người dùng" được hiển thị trong câu hỏi. Câu trả lời của @ Michael không chỉ xóa phần người dùng mà toàn bộ tiêu đề "Đã nhận", bao gồm cả IP của khách hàng.
n.st

@ n.st: bạn đang nói rằng câu trả lời của Markus không xóa IP và do đó không phải là câu hỏi SO này?
knocte 30/03/2016

@knocte Chính xác.
n.st

1
Tôi cần 125+ để downvote. Tôi đã kiểm tra nó và nó chỉ xóa Tên người dùng, không phải IP.
John
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.