postfixは高速、簡単設定、高いセキュリティと 三拍子揃っており、いくつかのLinux Distributionや*BSDで標準採用されつつあり最近とみに人気が上がっている sendmailに代わるMTAです。 sendmailと比べ設定が楽、qmailに比べsendmailとの互換性が高く ユーザに対する影響が少ないといった点も人気の一つでしょう。 また、結構大規模なサイトでも使用しているようなので 信頼性も問題なさそうです。
大きなネットワークで複雑なルールをサポートしなければいけない 場合は別としてほとんどのサイトでは このpostfixで必要十分ではないでしょうか。
当サイトのメールの流量は、それほどたいした量ではありませんが それでもMLのメールを一日当たり数百通程度、転送する分も含めると1000通近くを処理します。 この数年間使用してきましたが、設定をミスったことは あっても(^^;; postfix自体が問題になったことはありません。 また、そのミスもすぐに修正出来ました。
このpostfixは変更すべき設定自体あまりないのですが、 不正リレー対策やuucpなどの若干の設定点を以下にメモります。
postfix以前に当たり前なところとして
ので、うちのようなIPが一つの場合/etc/postfix/main.cfでは
myhostname = ipXXX.myprovider.ne.jp mydomain = ipXXX.myprovider.ne.jp |
などと設定します。postfixの場合、これだけでもほとんど問題なく動作OKです。
以下のようにrelay-test.mail-abuse.orgにtelnetすると 不正リレーのチェックを行ってくれます。デフォルトではおそらく チェックに引っ掛かるので次項の対策を入れましょう。 また、設定後にも通常のメール配送のチェックとともに、忘れずに 不正リレーのチェックをしておきましょう。
telnet relay-test.mail-abuse.org |
smtpd_recipient_restrictions = regexp:/etc/postfix/recipient_checks.reg,\ permit_mynetworks, check_relay_domains notify_classes = resource,software,policy allow_percent_hack = yes swap_bangpath = yes |
/[@!%].*[@!%]/ 550 Please use user@domain address forms only. |
な内容にしておく。これでuser@hogeという形式以外の宛て先は 全て拒否するようになります。!や%を使ってリレーしようとしても できなくなります。
postfixに設定を反映する
postmap transport postfix reload |
transport_maps = hash:/etc/postfix/transport |
.hoge.or.jp uucp:uucpgw.hoge.co.jp site.foo.net uucp:foo |
"uucp:"以降にあるuucpgw.hoge.co.jp, fooはどれもuucpの設定ファイルに あるシステム名と一致させておくこと.
上と同じようにpostmapでtransportファイルを作りなおし設定をリロードして終わり
bsmtpdはuucpでメールの圧縮、かため送りが出来るプログラムです。
debianのサイトから入手できます。
ただしあまり一般的なプログラムではありませんので
通信を行う両方のサイトにインストールしなければいけないでしょう。
インストール時の注意点としてユーザbsmtpが必要です。
また、/var/spool/bsmtpと、その中にbak,out,tmpの各ディレクトリを
自分で作成しなくてはいけません。当然そのディレクトリはchown bsmtpしておきます。
さらに、bsmtpはパッチを当てないとうまく動作しません。
一応メインテナーにはパッチを送りました。
なんかあやしそうですが、当方では過去半年以上postfixとともに
使用していますが問題なしです。メールを何通分かをまとめてgzipで圧縮して配送されるので
リモートからの取得は結構速くなります。
さて、パッチとインストールは終わっているとして
bsmtp unix - n n - - pipe flags=F user=bsmtp argv=/usr/local/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient |
site.foo.net bsmtp:foo |
fooはuucpのシステム名です。
postmapでtransportファイルを作りなおしてpostfixに設定をリロードして終わり