□postfix = drac + qpopper
参考URL:
http://www.postfix.org/
http://mail.cc.umanitoba.ca./drac/
http://qpopper.sourceforge.net/
http://www.tenchi.ne.jp/~yoko/server/pop_before_smtp.html
sendmail はやめて postfix を使うことにする。
だって設定簡単だし、速いし、DM送信にはもってこい… うそ、
ML送信にはもってこいです。(^^;
tar xvzf package/postfix-2.5.6.tar.gz
cd postfix-2.5.6/
本来ならこのあとで
make (なんとたったこれだけ!)
だけで良い。
ただ、以前のPlamoはDBM系がちゃんと入らないので、このままでは
postfixがまともに動いてくれない可能性があります。というわけで、
他のソフトと同様に dbm が入ってますよー、と教えてあげないと
いけません。
make tidy
make makefiles CCARGS=”-DHAS_DB” AUXLIBS=”-ldb”
make
HAS_DB を何度も宣言すんなとぶつぶつ言われるが warning なので無視!!
あとはユーザー「postfix:postdrop」を追加。前の年月日が着くバージョン
ではグループは mail などを流用でもかまわなかったのだが、正式バージョン
では兼用はいけないらしい。(ユーザーIDとグループ名も同じにしては
いけない?)ちなみにPlamo-3.0ではこのユーザーとグループはすでに用意
してあります。
補足:もし postfix とか postmap とかが動かない場合
(gdbm-1.x と gdbm-2.x との違いによる問題)
make makefiles CCARGS=”-DHAS_DB -I/usr/local/include” AUXLIBS=”-L/usr/local/lib -ldb”
make
としてください。要はどこに入っているdbmを使うかってことです。
というわけで、あとは Postfix の諸々必要な設定をすればOK。
後は起動すればいいけど、Plamo-4.x になると /etc/rc.d/inet.d/postfix
に起動スクリプトが移動している。/etc/rc.d/rc.inet2 から呼んでいるの
だけど、ちゃんと動かないみたいだし…
というわけでPostfixを呼出し部分を書き換える。
> # Postfix
> SERV=”$SERV postfix:start”
もしくは、/etc/rc.d/rc.M の適当なところで
> if [ -x /usr/sbin/postfix ]; then
>??? echo “Starting postfix daemon (/usr/sbin/postfix start)…”
>??? /usr/sbin/postfix start
> fi
としてもよい。
/var/spool/mqueue の中に何も無ければ、
make install
です。前のバージョンでは INSTALL.sh を動かしていましたが、「普通」
のインストール方法になりました。なお、既に postfix が入っている場合
には、
make update
でいいらしいです。でも試していませんので悪しからず!
make install の場合にはいろいろ聞かれるが setgid の所で、デフォルト
では [no] となっていたら postfix とする。他はそのまま。
その後、/etc/postfix/の中にあるファイルをいろいろといじることになる。
まず起動させるためには、
main.cf:
> #myhostname = host.domain.name
:
> #mydomain = domain.name
:
を、コメントをはずしてホスト名とドメイン名を設定してください。
それから、まずローカルに送信できないと言う件については
main.cf:
> mydestination = $myhostname, mail.$mydomain, $mydomain, localhost
と変更し、「/usr/sbin/postfix reload」とする。
「sendmail.aa」に変わるバーチャルホストの設定は、main.cf にて
下記のように行う。バーチャルホストで、届いたアドレスを別のアドレス
に転送する場合には、/etc/postfix/virtual を使う。
main.cf:
> mydestination =
> localhost,
> $myhostname,
> mail.$mydomain,
> $mydomain,
> yebisu.shibuya.tokyo.jp,
> mail.yebisu.shibuya.tokyo.jp,
> tomsawyer.gr.jp,
> mail.tomsawyer.gr.jp,
> neec.hachioji.tokyo.jp,
> mail.neec.hachioji.tokyo.jp
>
あとはあちこちのWEBに書いてあるPostfixの説明をよく読んで設定すること。
ちなみにMLもありますから、いろいろ知りたい方は入ったほうがいいでしょう。
さて、続いて「DRAC」のインストール。これで「POP before SMTP」を実現
しましょう。でないとSPAMの温床になりますよ!
mkdir dracd
cd dracd/
tar xvzf ../package/drac-1.12.tar.Z
さらに Linux の場合には、「Makefile」を、
> For Linux:
> #INSTALL = /usr/ucb/install
> #EBIN = /usr/local/sbin
> #MAN = /usr/local/man/man
> INSTALL = install
> EBIN = /usr/sbin
> MAN = /usr/local/man/man
> #DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO
> DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -DREQ_HASH
> #CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-4.1.25/build_unix
> CFLAGS = $(DEFS) -g
> #LDLIBS = -L/usr/local/src/db/db-4.1.25/build_unix -lnsl -ldb-4.1
> LDLIBS = -ldb
> #TSTLIBS = -L. -ldrac -lnsl
> TSTLIBS = -L. -ldrac
> #MANLIB = 3
> #MANADM = 1m
> MANLIB = 3
> MANADM = 8
として
make
make install
make install-man
そしたら、Plamo-4.x なら /etc/rc.d/initd/dracd で起動してるので
/etc/rc.d/init.d/dracd stop
/etc/rc.d/init.d/dracd start
で平気。起動後プロセスが動いていないなら、-i オプションが必須に
なっているので、/etc/rc.d/initd/dracd の中を書き直し。
> start)
>???????? if dracd_running; then
>???????????????? echo “$DAEMON is already running” >&2
>???????? else
>???????????????? echo “starting $DAEMON” >&2
>???????????????? $DAEMON -i -e 15 $DBFILE &
>???????? fi
> ;;
まぁ実際のところは/etc/rc.d/rc.inet2 を「rc.darcd」が起動するように
修正してもいいかも。このスクリプトが今ひとつだから。
> # Start the various SUN RPC servers.
> if [ -f ${NET}/rpc.portmap ]; then
>?? if [ -f /usr/sbin/rpc.dracd ]; then
>???? echo -n ” dracd”
>???? /usr/sbin/rpc.dracd -i -e 15 /etc/postfix/dracd.db &
>?? fi
>?? :
>?? :
上記のように、rpc.portmap があったら、その直後に入れたほうがいい。
補足:もし rpc.dracd が動かない場合
(gdbm-1.x と gdbm-2.x との違いによる問題)
ひょっとして gdbm-1.x と gdbm-2.x を一緒に入れていませんか? というか
うちはそうでした。そんなときには、Makefile をもう少し書き足してあげると
ちゃんと動くと思います。
> CFLAGS = $(DEFS) -g -I/usr/local/include
> LDLIBS = -L/usr/local/lib -ldb
とこんな感じです。
さて qpopper の作り直し。qpopper-4.0.3 以降になってから超らくちんに
なりました。qpopper のソースディレクトリに移って、まずはPOP3用に
cd /usr/src/qpopper4.0.9/
make realclean
./configure \
–prefix=/usr \
–enable-specialauth \
–with-drac=/usr/src/dracd \
–enable-standalone \
–enable-auto-delete
make
install -s ./popper/popper /usr/sbin/popper_pop3
続いてAPOP用に
make realclean
./configure \
–prefix=/usr \
–enable-specialauth \
–enable-apop=/etc/pop.auth \
–with-popuid=pop \
–with-drac=/usr/src/dracd/ \
–enable-standalone \
–enable-auto-delete
make
install -s ./popper/popper /usr/sbin/popper_apop
でもって、postfix の設定の追加ですが、
> smtpd_recipient_restrictions =
>???????? permit_mynetworks
>???????? reject_non_fqdn_recipient
>???????? reject_unauth_pipelining
>???????? check_client_access hash:/etc/postfix/dracd ★
>???????? reject
上記のパラメーターを適当なところに追記してあげればOK。
これは上からの順番でチェックをしていきます。
なので、「POP before SMTP」や「SMTP AUTH」のチェックは
「check_relay_domains」の前にしないと怒られちゃいます。
★の行が dracd で作られたIPアドレステーブルファイルを参照するよ、
という意味。
Plamo-4.x の場合には btree:/etc/postfix/dracd になっているけど、
今回のように rpc.dracd を作るとファイルの中が hashタイプになる
ので hash:/etc/postfix/dracd とすること。
ちなみに rc.dracd の起動では出力先ファイルを「/etc/postfix/dracd.db」
とかのようにきちんと明示してあげないといけない。なぜなら postfix は
指定されたファイルの最後に勝手に「.db」をつけてしまうから。
これでSPAMの踏み台にされることが避けられます!!
と思ったけどさらに厳重にするために補足追加。
> smtpd_sender_restrictions = reject_unknown_sender_domain
これを /etc/postfix/main.cf の最後に追加すると $mydestination に
かかれていないドメインのアドレスからの送信は受け付けない。
動作確認としては、とりあえずインストールしているサーバーに
対してメールソフトで受信行為をしてみるか、または手動 TELNET
でPOP3プロトコルをしゃべってみる。
受け付けてくれなかったら、/etc/hosts.allow と /etc/hosts.deny を
チェックしてみよう。
POP3を一度も受け付けていない場合には
> # db_dump -p /etc/postfix/dracd.db
> VERSION=3
> format=print
> type=hash
> HEADER=END
> DATA=END
となっているが、一度でもPOP3の認証が通ると、
> # db_dump -p /etc/postfix/dracd.db
> VERSION=3
> format=print
> type=hash
> HEADER=END
>? 192.168.0.23? ←受信しに来たパソコンのIPアドレス
>? 1178522763??? ←そのときのタイムスタンプ
> DATA=END
こんな風になる。
でも「POP before SMTP」だけだとアウトルックな初心者が泣いてしまう
ので、アウトルックは「とても」いやなのですが「SMTP AUTH」も入れて
あげましょう。はー…