qmailはセキュリティーホールが見つかったことのない安全なMTUです。
MTUとしては sendmailが広く使われていますが、sendmailのセキュリティー
ホールは非常に多くバージョンアップが頻繁です。
私が使っているサーバはsendmailで運用していますが、こんなことが
ありました。ある人が大きなファイルをメーリングリストに出しました。
sendmailはリストの順にメールを送りますので、リストの途中で
ネットワーク的に遠い人がいれば、そのリストの後に名前のある人は
その分メールが届くのがおそくなります。それである人から、
出したメールがまだ届かないのだが、問題があるのではないかと
連絡をもらいました。
qmailでは並行処理を行うことによりに、この問題を解決している
ようです。
今後は,qmailが広く使われるようになるかもしれません。
パッケージ名 |
qmail-1.03.tgz
|
導入環境 | FeeBSD 3.3-RELEASE |
自分でmakeしてインストールする方法
- ディレクトリの作成
- 以下のコマンドを実行して必要なディレクトリを作成します。
# mkdir /var/qmail
# mkdir /var/qmail/alias
|
- グループとIDの作成
-
/etc/groupに以下の内容を追加します。
qmail:*:2107:
nofiles:*:2108:
|
さらにvipwで以下の内容を追加し、IDを作成します
alias:*:7790:2108::0:0::/var/qmail/alias:/sbin/nologin
qmaild:*:7791:2108::0:0::/var/qmail:/sbin/nologin
qmaill:*:7792:2108::0:0::/var/qmail:/sbin/nologin
qmailp:*:7793:2108::0:0::/var/qmail:/sbin/nologin
qmailq:*:7794:2107::0:0::/var/qmail:/sbin/nologin
qmailr:*:7795:2107::0:0::/var/qmail:/sbin/nologin
qmails:*:7796:2107::0:0::/var/qmail:/sbin/nologin
|
- コンパイルして、必要なディレクトリ階層を作ります。
-
# tar zxvf qmail-1.03.tar.gz
# cd qmail-1.03
# make setup check
|
- 設定ファイルを作ります
-
configはIPアドレスから逆引きして行うのでIPアドレスの逆引きができなければ
この処理はうまくいきません
これを実行すると以下のファイルが作られます。
- /var/qmail/control/me (このホストの名前)
- /var/qmail/control/defaultdomain
- /var/qmail/control/plusdomain
- /var/qmail/control/locals
- /var/qmail/control/rcpthosts (localsからコピーされる)
上記のdefaultdomain, plusdomain, locals にある名前が
@に一致したときにメールを受け取ります。
またrcpthostsにはsmtpアクセスを受け入れるホスト名が
保存されます
- 起動スクリプトの設定
-
# ln -s /var/qmail/boot/home /var/qmail/rc
|
- エイリアスの設定
-
# cd ~alias
# sh
# for i in postmaster root
# do touch .qmail-$i;chmod 644 .qmail-$i
# done
|
これにより~alias/Mailboxにメールが届くようになる
これらのファイル(~alias/.qmail-postmasterなど)の中に
"&fujiki@fc-lab.com"と記述するとfujiki@fc-lab.comにフォワードするようになります
- 各ユーザの設定
- 各ユーザが以下のコマンドを実行します。
% /var/qmail/bin/maildirmake $HOME/Maildir
% echo ./Maildir/ > ~/.qmail
|
これにより、mailbox形式の~/Mailboxに受信するのではなく、MailDirに入るようにします
tcpserverからのqmail-smtpdの起動設定
tcpserverをデーモンとして動かし、qmail-smtpを起動させるために
tcpserverを以下のようにしてインストールします。
% tar zxvf ucspi-tcp-0.88.tar.gz
% cd ucspi-tcp-0.88
% make
# make setup check
|
次に/etc/tcp.smtpを以下のように記述します
192.168.0.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
:allow
|
このファイルから、tcpserverが読み込むcdb形式のファイルを以下のコマンドを
使って作ります。
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
|
これで、127.*と192.168.0.*は/var/qmail/control/rcpthostsに記述が無くても
使えるようになります。他のホストについてはallowの行が適用され、
/var/qmail/control/rcpthostsで制限されることになります。
他のホストからメールを受け取るために、最後の行のallowは必要ですから
必ず設定してください。
設定が終わったら以下のようにして、tcpserverからqmail-smtpdの起動する
スクリプト/usr/local/etc/rc.d/qmail.shを以下のように作成してください。
/var/qmail/rc &
tcpserver -u 7791 -g 2108 -x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd &
|
ここで指定している7791 は qmaild の UID で、2108 は nofiles の GID です。
POP3サーバの立ち上げ
まずpopサーバでの認証に必要なcheckpasswordを
http://cr.yp.to/checkpwd.htmlなどから入手し、
以下のようにしてインストールします。
% tar zxvf checkpassword-0.90.tar.gz
% cd checkpassword-0.90
% make
# make setup check
|
次にtcpserverからqmail-pop3dも起動します。
# tcpserver 0 pop3 /var/qmail/bin/qmail-popup bear.fc-lab.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &
|
これも上で設定した/usr/local/etc/rc.d/qmail.shに追加しておいた方が
よいでしょう。
ローカルのunix shellで使うメールの変更について
最後に今まで使っていたsendmailとbinmail(/usr/libexec/mail.local)を
以下のように無効にして作業は終了です
# chmod 0 /usr/sbin/sendmail
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
# chmod 0 /usr/libexec/mail.local
|
あと/var/qmail/qmail-inject を /usr/libexec/mail.localと
入れ替えればよいかもしれません
バイナリパッケージを使ったインストール
バイナリパッケージを使えば以下のコマンド一発で簡単にインストールできます。
smtpサーバの設定
設定ファイル
/var/qmail/control/の下に以下の内容の設定ファイルをおく
ファイル | 内容 | 例 |
defaultdomain |
このホストのドメイン名 | fc-lab.com |
locals | このドメインのローカルホスト |
localhost bear.fc-lab.com
|
me |
このホスト名 | panda.fc-lab.com |
rcpthosts |
smtpでリレーを許すホスト | *.kitakyu-techno-ctr.co.jp |
以上の localsとrcphostsで設定されたホストからはsmtpアクセスが可能となる。
さらに上記の設定の場合DNSでMXをpanda.fc-lab.comで出すとメールが届く
ようになります。
/etc/inetd.conf
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
|
/var/qmail/alias
".qmail-root" ".qmail-postmaster" ".qmail-mailer-daemon"を
作る。このファイルのなかに
&fujiki@kitakyu-techno-ctr.co.jp
|
のように記述するとエイリアスとなります。
これらのファイルのモードは644としてください。
メールボックスの設定
qmailのMailDir形式を使う場合
# ln -s /var/qmail/boot/maildir /var/qmail/rc
|
さらに以下の処理をしてメールの入るディレクトリを作ります。
% maildirmake /home/fujiki/Maildir
% echo ./Maildir/ > /home/fujiki/.qmail
|
UNIX mailbox形式のファイルを使う場合
# ln -s /var/qmail/boot/home /var/qmail/rc
|
さらに各ユーザのホームディレクトリに Mailboxという名前の
ファイルを作り、スプールからシンボリックリンクをはります。
以下は fujiki というユーザの例です。
# mv /var/mail/fujiki /home/fujiki/Mailbox
# chown fujiki /home/fujiki/Mailbox
# ln -s /home/fujiki/Mailbox /var/mail/fujiki
|
/var/mail/fujikiが存在しない場合は touch /home/fujiki/Mailbox
で作成してください。
pop3サーバの設定
checkpasswordのインストール
checkpasswordを
入手してインストールします。展開して、make;make install
でOKです。
/etc/inetd.conf
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup shibushi.kitakyu-techno-ctr.co.jp /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
|
参考
POP/IMAPの導入,qmailの仕組み
,
Internals qmail-1.03