Postfixの設定メモ


postfixの設定

postfixは高速、簡単設定、高いセキュリティと 三拍子揃っており、いくつかのLinux Distributionや*BSDで標準採用されつつあり最近とみに人気が上がっている sendmailに代わるMTAです。 sendmailと比べ設定が楽、qmailに比べsendmailとの互換性が高く ユーザに対する影響が少ないといった点も人気の一つでしょう。 また、結構大規模なサイトでも使用しているようなので 信頼性も問題なさそうです。

大きなネットワークで複雑なルールをサポートしなければいけない 場合は別としてほとんどのサイトでは このpostfixで必要十分ではないでしょうか。

当サイトのメールの流量は、それほどたいした量ではありませんが それでもMLのメールを一日当たり数百通程度、転送する分も含めると1000通近くを処理します。 この数年間使用してきましたが、設定をミスったことは あっても(^^;; postfix自体が問題になったことはありません。 また、そのミスもすぐに修正出来ました。

このpostfixは変更すべき設定自体あまりないのですが、 不正リレー対策やuucpなどの若干の設定点を以下にメモります。

基本的なところ

postfix以前に当たり前なところとして

  1. MXレコードの指し示すサイトはAレコードでないといけない
  2. 逆引きと異なると拒否される可能性がある

ので、うちのような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 

不正リレー対策

  1. /etc/postfix/main.cfに以下の行を追加
    
     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 
  2. /etc/postfix/recipient_checks.regファイルを作成し
    
     /[@!%].*[@!%]/           550 Please use user@domain address forms only. 

    な内容にしておく。これでuser@hogeという形式以外の宛て先は 全て拒否するようになります。!や%を使ってリレーしようとしても できなくなります。

  3. postfixに設定を反映する

    
     postmap transport
     postfix reload 

uucpの設定

  1. /etc/postfix/main.cfのTRANSPORT MAPの辺りにtransportファイルの設定があるので 以下のような設定にします。
    
     transport_maps = hash:/etc/postfix/transport 
  2. /etc/postfix/transportファイルにuucp配送したいサイトを記述します。
    
     .hoge.or.jp    uucp:uucpgw.hoge.co.jp
     site.foo.net   uucp:foo 

    "uucp:"以降にあるuucpgw.hoge.co.jp, fooはどれもuucpの設定ファイルに あるシステム名と一致させておくこと.

  3. 上と同じようにpostmapでtransportファイルを作りなおし設定をリロードして終わり

bsmtpdの設定

bsmtpdはuucpでメールの圧縮、かため送りが出来るプログラムです。 debianのサイトから入手できます。 ただしあまり一般的なプログラムではありませんので 通信を行う両方のサイトにインストールしなければいけないでしょう。
インストール時の注意点としてユーザbsmtpが必要です。 また、/var/spool/bsmtpと、その中にbak,out,tmpの各ディレクトリを 自分で作成しなくてはいけません。当然そのディレクトリはchown bsmtpしておきます。
さらに、bsmtpはパッチを当てないとうまく動作しません。 一応メインテナーにはパッチを送りました。
なんかあやしそうですが、当方では過去半年以上postfixとともに 使用していますが問題なしです。メールを何通分かをまとめてgzipで圧縮して配送されるので リモートからの取得は結構速くなります。
さて、パッチとインストールは終わっているとして

  1. /etc/postfix/master.cfのbsmtpの設定を以下のようにします。
    
     bsmtp     unix  -       n       n       -       -       pipe
     flags=F user=bsmtp argv=/usr/local/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient 
  2. /etc/postfix/transportファイルにuucpの時と同じように 以下のような記述を追加します。
    
     site.foo.net    bsmtp:foo 

    fooはuucpのシステム名です。

  3. postmapでtransportファイルを作りなおしてpostfixに設定をリロードして終わり

参考リンク

更新履歴

2001/5/5 bsmtpの記述と誤字などを修正
2001/2/27 main.cfの変更点など
2001/2/26 作成