linux:postfix_dovecot
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
linux:postfix_dovecot [2013/04/12 02:35] – 外部編集 127.0.0.1 | linux:postfix_dovecot [2018/09/03 12:33] (現在) – [SIEVE関係] 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: | ||
行 355: | 行 379: | ||
振り分け先のフォルダがサブフォルダの時、ファイルシステム上では「.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には書き換えた値がセットされてしまう。転送先にトラブルがありエラーメールが帰って来た場合、「@」以下のみ書き換えているため転送ホストにそのようなユーザは存在しないため、エラーがどこにも帰らなくなる。 | ||
+ | |||
+ | |||
+ | ===== 2.3系へのアップデート対応 ===== | ||
+ | 2.3系のアップデートでいくつか設定ファイルの修正が必要だった。 | ||
+ | |||
+ | ==== SSL関係 ==== | ||
+ | 以下の設定が必須になったようだ。 | ||
+ | * [[https:// | ||
+ | |||
+ | 以前のバージョンではDiffie Hellman parametersが初回起動時に自動生成され週ごとに再生成されていたが、セキュリティ上のメリットがさほどないため廃止された。バージョン2.3からはssl_dhの指定が強制されるため、以下を必ず設定して、設定した場所にDiffie Hellman parametersファイルを配置しなければならない。 | ||
+ | |||
+ | / | ||
+ | ssl_dh = </ | ||
+ | |||
+ | ファイルの内容は、以前のものを再利用する場合以下のコマンドで変換できる | ||
+ | # 旧バージョンで生成されたssl-parameters.datファイルの場所は適宜探して指定する | ||
+ | dd if=/ | ||
+ | |||
+ | 今回は強度の高いものを新しく再生成する | ||
+ | openssl dhparam 4096 | ||
+ | |||
+ | 生成にはかなり時間がかかるので、しばらく待つ。 | ||
+ | |||
+ | ==== SIEVE関係 ==== | ||
+ | * [[https:// | ||
+ | |||
+ | バージョン2.3にすると、SIEVEの振り分けが動かなくなった。ログに以下のエラーが出力されていた。 | ||
+ | |||
+ | Sep 03 11:06:54 [dovecot] lda(****)< | ||
+ | |||
+ | エラーを返す際のpostmasterのメールアドレスのドメイン部分がうまく取得できていないようだ。これまでは厳密にチェックされていなかったが、バージョン2.3からはチェックされるようになり、SIEVEが起動できなくなったようだ。 | ||
+ | |||
+ | 以下のpostmaster_addressのパラメータにpostmasterのアドレスを設定してやると解決する。 | ||
+ | |||
+ | / | ||
+ | postmaster_address = postmaster@xxxx.co.jp | ||
linux/postfix_dovecot.1365701742.txt.bz2 · 最終更新: 2013/04/22 14:43 (外部編集)