linux:postfix_dovecot
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
linux:postfix_dovecot [2013/04/12 02:35] – 外部編集 127.0.0.1 | linux:postfix_dovecot [2017/05/23 17:11] – [転送時の送信元書き換え] Wiki Editor | ||
---|---|---|---|
行 26: | 行 26: | ||
#/ | #/ | ||
home_mailbox = .maildir/ | home_mailbox = .maildir/ | ||
+ | |||
+ | ==== ローカルヘッダの隠蔽 ==== | ||
+ | メールを送信する際に、接続元MUAのIPアドレスやホスト名がReceivedヘッダに記録される。メールの経路情報として重要ではあるが、内部のネットワーク構成をあまり知られたくないので、(メールシステムの仕様や理念からは少し外れるかもしれないが)ヘッダを削除しておく。 | ||
+ | |||
+ | Postfixのheader_checksで該当するヘッダを削除すればよい。ただし、 | ||
+ | |||
+ | # / | ||
+ | header_checks = regexp:/ | ||
+ | | ||
+ | # / | ||
+ | /^Received: from.*192\.168\..*/ | ||
+ | |||
+ | / | ||
+ | |||
+ | ただし、条件にマッチしたヘッダがすべて削除されるので、場合によっては外からのメールのヘッダも消えるので注意すること。たとえば、上記の場合、「192.168...」がReceivedヘッダに含まれていれば削除されてしまう。外出先から送信する場合などは、送信ホストのアドレスが記録されるので、これを消したいのだが、、、自分が接続した場合だけ削除する方法がわからない。 | ||
+ | |||
+ | ===== aliasによる簡易的なバーチャルメールボックス ===== | ||
バーチャルユーザのメールボックスについては、いくつか実現方法がある。今回はaliasでファイルにmaildir形式で配送することで実現する。 | バーチャルユーザのメールボックスについては、いくつか実現方法がある。今回はaliasでファイルにmaildir形式で配送することで実現する。 | ||
行 70: | 行 87: | ||
「virtual.example.jp」という架空ドメインを作成し、バーチャルメールボックスはここで全て管理する。このドメインには、外部から直接メールを受け取らない。ローカルのaliasからのみ転送することにする。 | 「virtual.example.jp」という架空ドメインを作成し、バーチャルメールボックスはここで全て管理する。このドメインには、外部から直接メールを受け取らない。ローカルのaliasからのみ転送することにする。 | ||
+ | === バーチャルメールボックスの設定 === | ||
+ | / | ||
+ | account1@virtual.example.jp | ||
+ | account2@virtual.example.jp | ||
+ | 起点となるディレクトリ以下のどのディレクトリにメールを格納するかを決める。ディレクトリはあらかじめ作成しておく必要があるかもしれない。 | ||
+ | ファイルを作成したら、以下のコマンドでデータベースを更新する。 | ||
+ | > postmap / | ||
- | + | これで、/ | |
- | + | ||
===== dovecotの設定 ===== | ===== dovecotの設定 ===== | ||
/ | / | ||
行 293: | 行 315: | ||
# | # | ||
dovecot | dovecot | ||
- | | + | |
dovecotにアクセスしユーザ情報を取得するためのクエリにあたる部分。dovecotのバーチャルユーザマップでユーザ名のみを記載している場合「-d ${user}」でユーザ名のみで検索するようにする。ドメイン名まで含めてユーザを登録している場合は、Webサイトの通りでよい。 | dovecotにアクセスしユーザ情報を取得するためのクエリにあたる部分。dovecotのバーチャルユーザマップでユーザ名のみを記載している場合「-d ${user}」でユーザ名のみで検索するようにする。ドメイン名まで含めてユーザを登録している場合は、Webサイトの通りでよい。 | ||
+ | |||
+ | エラーメールを受け取った際に、エラーメールは「Return-Path」が空である必要があるが、dovecotでローカル配送すると送信元をReturn-Pathに設定するので、「Return-Path: | ||
行 356: | 行 380: | ||
振り分け先のフォルダがサブフォルダの時、ファイルシステム上では「.spam」のように隠しフォルダであるが、sieveではINBOX.サブフォルダ名と記述する。 | 振り分け先のフォルダがサブフォルダの時、ファイルシステム上では「.spam」のように隠しフォルダであるが、sieveではINBOX.サブフォルダ名と記述する。 | ||
+ | |||
+ | |||
+ | ===== 転送時の送信元書き換え ===== | ||
+ | メールが転送される時、メールを実際に送信(転送)するサーバと、メール本体に書かれている送信元情報が異なってしまう。メールシステム上は特に問題ないが、最近のスパム対策に引っ掛かり問題となる可能性がある。例えばspfはメール本体の送信者情報から送信元サーバを検証するため、転送メールでは送信元として転送前のspfレコードを検索してしまう。そうすると、そのspfには実際に送信している転送ホストがリストされていないため、検証に失敗してしまう。そこで、転送時にspfの検証に利用されるenvelope_senderを書き換えて対応する。 | ||
+ | |||
+ | Postfixの設定ファイル「main.cf」に以下を設定 | ||
+ | |||
+ | # 書き換え対象のヘッダ | ||
+ | sender_canonical_classes = envelope_sender | ||
+ | | ||
+ | # 書き換えルールを記述したファイル。「regexp: | ||
+ | sender_canonical_maps = regexp:/ | ||
+ | |||
+ | / | ||
+ | # 「@」以下をすべて自サイトのドメインに書き換え | ||
+ | / | ||
+ | |||
+ | 書き換えルールファイルを作成した後にpostmapでデータベース作成 | ||
+ | > postmap / | ||
+ | |||
+ | |||
+ | これで転送メールのspfの問題は解消されるが、問題もありそう。転送したメールの表面上のヘッダは書き変わらないが、Return-Pathには書き換えた値がセットされてしまう。転送先にトラブルがありエラーメールが帰って来た場合、「@」以下のみ書き換えているため転送ホストにそのようなユーザは存在しないため、エラーがどこにも帰らなくなる。 |
linux/postfix_dovecot.txt · 最終更新: 2018/09/03 12:33 by Wiki Editor