dracd で Pop before smtp(Postfix/Qpopper)

for 10.2 Jaguar

Back


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

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


BerkeleyDB


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

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以上
 dracd使用のオプションをつけてconfigure。lib-pathにはdracのソースフォルダのパスを入れる。
  趣味として --enable-servermode --enable-shy --enable-32-bit というスイッチをつけるも可。ただし32bitビルドをオンにするとなぜかconfigureで-ldracを見つけてくれないことがある。けども強行でmakeしても通る模様。

% ./configure --with-drac=lib-path
% make
# cp popper/popper /usr/local/libexec/popper
※任意の場所へコピー


Postfix 場所はココ

% make makefiles CCARGS="-DHAS_DB -I/usr/local/include" AUXLIBS="-L/usr/local/lib -ldb"
と 、DB付きでmakeしてインストール。
※pop before smtpとは関係ないところのTips。インストール前にGID「postdrop」という独立したグループをNetinfoマネージャなどで作っておくこと



【設定】
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 hash:/etc/mail/dracd reject_unauth_destination
※/etc/mail/dracd←dracd初回起動時に自動的に作られるデータファイルのデフォルトパス


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

#dracd-setup start

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

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



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



2003 10/30 updated / C's gallery OS X Tips