[[Postfix]]

*考察 [#c6c069d6]
どうも Postfix で POP before SMTP をやろうとすると、dracd ってのを使ってるサイトが良く見つかる。
でも dracd って Fedora のリポジトリに無いし、仮に使おうとすると dracd はもとより courier-imap へのパッチ当てなども必要になるので使いたくない。
#contents

そこで courier-imapd の各デーモン起動スクリプトの修正と、postfix の設定だけでどうにかならんかな、と試してみるのがこのページの趣旨になりました。
*やりたいこと [#ka391e97]
-postfix と courier-imapd で、POP/IMAP before SMTP を実現したい。
-postfix や courier-imapd にパッチなどは当てたくない。

*構成 [#r0d1f80a]
大筋は以下のような感じです。

*MySQL に IP を登録してルックアップさせてみる [#icd3b053]
 CREATE TABLE check_client_access (
   source varchar(255) NOT NULL default '',
   access varchar(255) NOT NULL default '',
   created timestamp NOT NULL,
   KEY source (source)
 ) TYPE=MyISAM COMMENT='KaWaZ Special - POP before SMTP';
-courier-imap で pop/imap の認証が通った接続元IPをデーターベースに記録するようにする
--記録の仕方は courier-imap の起動スクリプトにIP登録用スクリプトを挟むことにより行う
--IP登録用スクリプトは自分で作成
-postfix は接続元IPをデータベースから探して許可されていればリレーを許すようにする。
-上記とは別に登録後一定時間が経過したIPに関してはデーターベースからレコードを削除するようなスクリプトをcronで走らせる。

*設定例 [#d7c84ccf]
+main.cf の smtpd_recipient_restrictions を以下のように変更する。
 smtpd_recipient_restrictions =
     permit_mynetworks
     check_client_access hash:/etc/postfix/allow_clients
     reject_unauth_destination
デフォルトは permit_mynetworks, reject_unauth_destination なので間に POP before SMTP 用のチェックを挟むわけです。

*メモ [#nca12bb3]
どうも Postfix で POP before SMTP をやろうとすると、dracd ってのを使ってるサイトが良く見つかる。でも dracd って Fedora のリポジトリに無いし、仮に使おうとすると dracd はもとより courier-imap へのパッチ当てなども必要になるので使いたくない。

そこで courier-imapd の各デーモン起動スクリプトの修正と、postfix の設定だけでどうにかならんかな、と試してたんだが、Postfix のこと理解したら案外簡単に実現できてしまった。
みんな何で dracd なんて使ってんだよって感じです。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS