トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

NetBSDでqmail

(書きかえ中)

はじめに

NetBSDでqmailを使うときのメモ。

NetBSD/i386 2.0.2 + mail/qmail 1.03nb11。vpopmailやdaemontools(のうち、svcとかmultilogとか)は使わない。(NetBSD 1.6.*でもたぶん同じようにできる。)

あと、rblsmtpdでspam対策、Clam AntiVirus 0.80 + Gadoyanvirus 0.3でウイルス対策を行う。

間違っていたら、おしえてね。

もしすでにあなたがqmailなひとだったら

をご存じでなければ、読んでみることをおすすめします。

はじめる前に

2004/4/9以前に、既にpkgsrcからmail/qmailをインストールしている人は、/var/qmailをどこかに退避してから、いったんアンインストールするとよいでせう。

 # /etc/rc.d/qmail stop
 # mv /var/qmail /var/qmail.orig
 # pkg_delete qmail

また同様に、pkgsrcからmail/netqmailをインストールしている人は、念のため、/usr/pkg/etc/qmailをどこかに退避してから、いったんアンインストールするとよいでせう。

 # /etc/rc.d/qmail stop
 # cd /usr/pkg/etc
 # cp -Rp qmail qmail.back
 # pkg_delete -r netqmail

mail/qmailパッケージがどう変わったかについて、詳しく知りたいひとは、cvs logを見てみるといいかも。

まずはインストール

もちろん、pkgsrcを使う。

 qmail本体と関連パッケージ

qmail本体と関連パッケージ

Linuxの各ディストリビューションのpackageや、FreeBSDのportsなどでは、qmailqueueパッチとかlocaltimeパッチとかはあたっていたり、選択できたりする。さて、pkgsrcではどうかというと、デフォルトではなんにもあたらない。

PKG_OPTIONS.qmailという変数があり、これに必要なオプションを指定することによって、必要なパッチがあたる。具体的には、

のオプションを指定できる。

指定する方法は、/etc/mk.confに

 PKG_OPTIONS.qmail=	qmail-netqmail qmail-bigdns qmail-realrcptto

などと指定したいものを並べて書けばよい。

ここでは、素のqmailのbugをfixし、超有名どころのパッチをあてたものとして有名な、netqmailは最低限指定することにする。QMAILQUEUE変数もこれで使えるようになる。(ちなみに、素のqmailから、netqmailへの変更点は、http://www.qmail.org/netqmail/CHANGES を参照。また、Life with qmailによれば、5.10.1. Recommended Patchesにあるパッチは全部あたっているそうなので、みておこう。)あと、bigdnsも必ず指定しておく。それ以外は、お好みで。

さらにパッチ

たとえば、有名どころでいえば、localtimeパッチはあたっていないし、ほかにもあてたいパッチがあるかもしれない。それらは手動であてる。

 # cd /usr/pkgsrc/mail/qmail
 # make patch
 (ここで、任意のパッチをあてて)
 # make install
 # make clean clean-depends

なお、http://qmail.org/top.html にはたくさんのパッチが紹介されているので、一度見てみるとよいかもしれない。ここでは、手動でパッチはあてないことにする。

make

mk.confが書けたら、

 # cd /usr/pkgsrc/mail/qmail
 # make install
 # make clean clean-depends

とする。これで、mail/qmailがインストールされ、同時に、sysutils/checkpassword・mail/qmail-users・net/ucspi-tcp・sysutils/daemontoolsがインストールされる。

その他のパッケージ

必要に応じて、mail/qmHandleやmail/qmailanalogなどのパッケージをインストールする。今回はとりあえず何もインストールしないことにする。

インストール時のpkg_installのアップデート

makeをしたら、

 # cd /usr/pkgsrc/mail/qmail
 # make
 ===> Error: The package tools installed on this system are out of date.
 ===> The installed package tools are dated 2003/09/18 and you must update
 ===> them to at least 2005/02/04 using the following command:
 ===>
 ===>    cd /usr/pkgsrc/pkgtools/pkg_install && /usr/bin/make clean && /usr/bin/make install
 *** Error code 1
 
 Stop.

ってエラーがでるかもしれない。(日付はたぶん違うと思うけど。)でたら、びっくりせずに、書いたあるとおりにするだけ。

 # cd /usr/pkgsrc/pkgtools/pkg_install && /usr/bin/make clean && /usr/bin/make install
 <割愛>
 # make clean

できたら、qmailのインストールを続ける。

インストール時のライセンスエラー

同様に、

 ERROR: qmail-1.03nb11 has an unacceptable license: djb-nonlicense.
 ERROR:     To view the license, enter "/usr/bin/make show-license".
 ERROR:     To indicate acceptance, add this line to your /etc/mk.conf:
 ERROR:     ACCEPTABLE_LICENSES+=djb-nonlicense

って出てきたら、書いてあるように、/etc/mk.confに

 ACCEPTABLE_LICENSES+=djb-nonlicense

を追加しよう。pkgsrcでは、GPL2とか修正BSDライセンスなどといったような一般的なライセンス(?)とは違う特殊なライセンスのものは、このように警告される。ライセンスをちゃんと読んでみたい人は、これも同じく書いてあるように

 make show-license

で読める。

 mail/qmail-run - NetBSDのrc.d起動機構を使う

daemontoolsを使わず、NetBSD標準のrc.d起動機構を使うためのパッケージである、mail/qmail-runをインストールする。

 # cd /usr/pkgsrc/mail/qmail-run
 # make install
 # make clean clean-depends

ちなみに、mail/qmail-runを使うことによって、rc.d起動機構を使うこと以外に、

  • qmailのlogは、syslogでとる。
  • SMTPとPOPの接続制限は、tcp.smtpとtcp.pop3ファイルで行う。
  • /etc/mailer.confを使う。

というように、よりNetBSDらしいソフトウェアとしてqmailを使うことができるようになる。また、

  • とりあえず動かせるqmailの設定をしてくれる。

というおまけもつく。

設定

NetBSDのパッケージらしく、qmailのバイナリや設定ファイルは/usr/pkg以下にインストールされる。/var/qmail以下は、実は全てシンボリックリンク。でも、ここではわかりやすいように、/var/qmail以下のパスで説明する。

 /etc/mailer.conf

まずは、mailer.confの設定。mail/qmail-runのインストールをしたさいのMESSAGESででたように、

 /usr/pkg/share/examples/qmail-run/mailer.conf

に参考にするファイルがある。そのままコピーする。

 # cat /usr/pkg/share/examples/qmail-run/mailer.conf > /etc/mailer.conf

qmailを使うのを止めて、もとに戻したい時は、mailer.conf(5)を参照。

 /var/qmail/control

/var/qmail/control以下に必要なファイルをつくる。mail/qmail-runをインストールしたので、

  • me
  • defaultdomain
  • plusdomain
  • rcpthosts
  • locals

という最低限のファイルができているはず。とりあえず中身をみて、必要に応じて変更する。

なお、設定内容やどんなファイルが他に作れるかは割愛。(UNIXUSER 2002/7号大特集とか、「実用qmailサーバ運用・管理術」などを参照。)

あと、

  • concurrencypop3
  • concurrencyincoming
  • defaultdelivery

というqmailでは見慣れないファイルができている。これは、rc.d起動機構の起動スクリプトから参照される設定ファイルである。

 /var/qmail/alias

  • .qmail-root
  • .qmail-postmaster
  • .qmail-mailer-daemon

ができているので、まずは設定。転送先のアドレスを&で始まるように書くべし。

 &hogena                  ←ローカルのhogenaへ転送
 &hogena@example.co.jp    ←みてのとおり

他は必要に応じて、rfc2142などにしたがって、.qmail-{abuse,noc,security,hostmaster,usenet,news,webmaster,uucp,ftp}などをつくる。とりあえず、abuseとhostmasterだけは作っとく。

 /etc/rc.d

以前の(pkgsrcの)qmailパッケージは、そのままでは起動スクリプトはいろいろいじる必要があったが、今のはそのままでもすぐ動かせる。

/etc/rc.dに、起動スクリプトをコピーする。

 # cp -p /usr/pkg/share/example/rc.d/qmail* /etc/rc.d

中身はただのshスクリプトなので、見ればわかる。もし、以前からqmailを使っていたのであれば、とってある設定ファイルと比較して、つけたすべき引数などを確認する。(起動スクリプトを書き換えてはダメ。変数を/etc/rc.confに書く。)

 /etc/rc.conf

起動するように書く。あと、引数を変える場合もここで設定できるものはする。

 qmailsend=YES
 qmailsend_defaultdelivery="./Maildir/"
 qmailpop3d=YES
 qmailsmtpd=YES
 qmailsmtpd_tcpflags="-p -v -R -l 0"
 qmailsmtpd_presmtpd="/usr/pkg/bin/rblsmtpd"
 qmailqread=NO

上記のqmailsend_defaultdeliveryの変更を忘れると、Maildirにはならない。あと、-pをqmailsmtpd_tcpflagsに追加して、パラノイドチェックすることにした。qmailsmtpd_presmtpdはパラノイドチェックしたものを判定するrblsmtpdを設定する。

 /usr/pkg/etc

メールソフトの設定の"SMTPサーバ"とか"送信サーバ"の項に、このqmailサーバを指定するつもりであれば、tcp.smtpを変更する必要がある。たとえば、自ネットワークが192.168.0.0/24であれば、/usr/pkg/etc/tcp.smtpを

 127.:allow,RELAYCLIENT=""
 192.168.0.:allow,RELAYCLIENT=""
 =:allow,RBLSMTPD=""
 :allow,RBLSMTPD="Paranoid_Check=Deny"

と書く。

もちろんRBLSMTPDの値は任意。

同様に、このqmailサーバを"POP3サーバ"とか"受信サーバ"に指定するつもりであれば、tcp.pop3に

 192.168.0.:allow

と書く。自ネットワーク以外からもPOP3を認めるのであれば、

 :allow

だけでよい。

あとは、

 # /etc/rc.d/qmail cdb

とする。これは、

 # cd /usr/pkg/etc/qmail
 # tcprules tcp.stmp.cdb tcp.smtp.tmp < tcp.smtp
 # tcprules tcp.pop3.cdb tcp.pop3.tmp < tcp.pop3

と同じ。

ちなみに、/etc/rc.d/qmail help を実行すると、いろいろできることがわかる。(mail/qmailをインストールした後のインストールメッセージに出ていたように、Life with qmailqmailctl scriptと引数と動作は同じようになっているみたい。)

起動

起動しよう。

 # /etc/rc.d/qmail start

あとは、/etc/rc.d/qmail statを実行してみたり、/var/log/maillogをみて、動いているかどうか確認。メールをだしたり、うけとったりしてみればいい。

あ、第三者中継の調査などで、一応、OpenRelayになっていないどうかを確認したほうがいいかと。

RBLによるspamはじきも

もし、パラノイドチェックと併用して、RBLによるspamはじきをしたいなら、/etc/rc.confの設定のうち、qmailsmtpd_presmtpdを

 qmailsmtpd_presmtpd="/usr/pkg/bin/rblsmtpd -r all.rbl.jp -r relays.ordb.org -r sbl.spamhaus.org -b"

などとし、/usr/pkg/etc/qmail/tcp.smtpは

 127.:allow,RELAYCLIENT=""
 192.168.0.:allow,RELAYCLIENT=""
 =:allow
 :allow,RBLSMTPD="Paranoid_Check=Deny"

とするとできる。

なお、rblsmtpdの-rのあとにかくRBL情報提供サーバは自分で調べてね。(上記のは例。動くかどうかは知らない。)

あとはClam AntiVirusでAntiVirusっしょ。

 インストール

あとは、AntiVirusですかね。Qmail-Scannerが有名みたいだけど、ここではマイナーなgadoyanvirusを使ってみることにした。

...のだが、gadoyanvirus自体、作者が提供を止めてしまった。たしかGPLだったので、どこかにあるかもしれないけど、メンテされないソフトを使うのもなんなので、やめ。(Qmail-Scannerと比較しても悪いソフトじゃないと思うんだけどなぁ。)

※ 説明はコメントアウトしてあるだけなので、FSWikiのソースをみれば読めます。

間違いの指摘や、ご意見などは、FrontPageにある連絡先にメールを下さるとうれしいです。

最終更新時間:2011年04月24日 19時38分16秒