tl;dr
ここを読めば出来る
なぜReceivedヘッダを隠すのか?
postfixはデフォルトでReceivedヘッダをそのまま送ります。
「送信元クライアント」とは自分が送信した時のマシンの事で、メーラーとしてOutlookを使った場合以下の情報をReceivedヘッダへ乗せます。
- コンピュータ名
- プライベートIP
なので、恥ずかしいコンピュータ名をつけていればその情報が受信者に渡ってしまうし、プライベートIPから内部ネットワークについてのヒントを与えてしまう事になります。
これをSMTPサーバに到達した時点で隠したい。
手順
postfixにはメールの内容をチェックして書き換えたり、行を削ったり、Rejectしたりできる機能があるので、これを使います。
- 参考
/etc/postfix/main.cf
を書き換え
header_checks の設定がコメントアウトされているので、以下の形にする
header_checks = pcre:/etc/postfix/header_checks
/etc/postfix/header_checks
を用意
デフォルトで空っぽ(コメントだけ)なので、以下を書き足す
/^Received:/ IGNORE
ただ、これだとリレー中に付与されたReceivedヘッダも削除されるので、プライベートIPっぽいものが含まれていたら削除するようしたいかもしれません。
以下は192.168もしくは10.で始まるIPが含まれた行を削除する例。172.16.はめんどいので。。。
/^Received:.*192\.168\.[0-9]+\.[0-9]+/ IGNORE
/^Received:.*10\.[0-9]+\.[0-9]+\.[0-9]+/ IGNORE
確認
Receivedヘッダが削られていることを確認しましょう。
GMailに送った場合は、メールを開き、「メッセージのソースを表示」から確認できます。
Outlookで受け取った場合、メールを開き、ファイル→情報→プロパティからインターネットヘッダーから確認できます。