dracd で Pop before smtp(Postfix/Qpopper)

for 10.3 Panther

Back


【概要】
pop3サーバ(popper)がdarcdに認証情報を引き渡し、smtpサーバ(Postfix)がその情報をもとにsmtpユーザを認証。MTAは 純正のPostfixを使用。

[インストールする物]
Qpopper(popper)
dracd

注意点
POP before SMTPで使用する、Postfix/Qpopper/dracd のDB(dracd.db)の種類(btree/hash等)は同一のものにしておくこと
同様にコンパイル、インストール時に使うDBプログラムはPostfix/Qpopper/dracdで同じ物/バージョンを使用すること


【コンパイル】(いずれも最新版で、順番通りにコンパイル)

dracd 場 所はココ
 configureがないので自分でmakefileを編集す る。
その後make install。
※rpc.dracdが/usr/local/sbin/にインストールさ れるのだが、事前に
/usr/local/sbin/を作っておかないと、sbinファイルができてしまうので注意


 同根されているdrac起動スクリプトをOS X用に編集してパスが通ったところに放り込む。
< dracd-setup >
- PATH=/usr/local/bin:/priv/usr/sbin:/usr/local/sbin:/usr/bin:/usr/sbin
+ PATH=/bin:/usr/local/bin:/priv/usr/sbin:/usr/local/sbin:/usr/bin:/usr/sbin

- #DRACD_PID=`ps -axc | grep 'rpc.dracd$' | sed -e 's/^ *//' -e 's/ .*//'`
- DRACD_PID=`ps -e | grep 'rpc.drac$' | sed -e 's/^ *//' -e 's/ .*//'`

+ DRACD_PID=`ps -axc | grep 'rpc.dracd$' | sed -e 's/^ *//' -e 's/ .*//'`
+ #DRACD_PID=`ps -e | grep 'rpc.drac$' | sed -e 's/^ *//' -e 's/ .*//'`


# cp dracd-setup /usr/local/bin


Qpopper (popper) 場所 はココ ※dracd対応はバージョン3.1以上
 pam-auth、openssl、dracd使用のオプションを つけてconfigure。
  趣味として --enable-servermode --enable-shy --enable-32-bit というスイッチをつけるも可。

% ./configure --with-drac=lib-path --with-openssl=/usr/bin --with-pam=pop3
% ./configure --with-drac=/PATHTODRAC/drac --with-openssl=/usr/include --with-pam=pop3
% ./configure --with-drac=/PATHTODRAC/drac --with-openssl=/usr --with-pam=pop3
% make
# cp popper/popper /usr/local/libexec/popper ※任意の場所へ手動コピー



【設定】
dracd
/etc/mail/dracd.allowにてdracdへのアクセス制限の設定。

255.255.255.255 127.0.0.1
255.255.255.255 111.222.333.444
※1
※1. メールサーバのアドレス。同じマシンで稼働しているならコメントアウト



Postfix

main.cfの最後にdracd用の設定を記述(1行で)。

smtpd_recipient_restrictions = check_client_access btree:/etc/mail/dracd reject_unauth_destination
※/etc/mail/dracd←dracd初回起動時に自動的に作られ るデータファイルのデフォルトパス
※使用するDBのタイプに注意 btree/hash 等



ユーザpostfixのIDが27、グループpostdropのIDが28になっているか確認。

master.cfの設定が、純正のままだとsmtpdが動いてくれないようなので編集。

</etc/postfix/master.cf>
- #smtp inet n - n - - smtpd
+ smtp inet n - n - - smtpd



【起動/検証
まず、portmap(OSX標準でインストール済み)を起動。※1
dracdのソースに添付されている起動スクリプトでdracdを起動。

#dracd-setup start

その後postfixを起動。
※1. dracdの動作に必要。/etc/hostconfigのRPCSERVERをYESにするとOS起動時に自動で起動する

pop3へのアクセスが30分内(dracdのデフォルト設定)にない場合に、 smtpにRejectされれば、成功。
DBに付属しているtestプログラムでも検証可能。



RPCサービスのセキュリティ】
portmapをたちあげたことで、rpcサービスを稼働させていることになる(らしい)。これが何も知らずにほっておく と結構なセキュリティホールになることもあるそうな。とはいえ普通は動いてるのはportmapだけのはずなので問題ないとは思うが。。。一応、ファC アーウォール等でで111番ポートへのアクセスを制限しておいた方が良いかもと思われる。



2006 2/26 updated / C's gallery OS X Tips