[qmail設定ファイルの設定]
それでは、とりあえずメールのやり取りができるようにqmailの設定をしてみましょう。
qmailのインストールが完了すると/var/qmail以下に必要なファイルが展開されます。
qmailの設定ファイルは/var/qmail/control以下にあるので、その編集を行います。
初期設定では、/var/qmail/control以下には次のようなファイルが作成されているでしょう。
それぞれの役割とともにそれを列記しておきます。
defaultdomain:toなどにドメイン名が省略された場合、補完されるドメイン名
locals:受信するホスト名・ドメイン名(qmail-sendが利用)
plusdomain:補完するドメインを設定するらしい
rcpthosts:SPAM対策用に中継の設定をします。
(このファイルに記述されているドメイン名やホスト名が中継を許可されます。 )
me:自ホストのFQDNを設定します。
これだけだと、メールを送ったときに送り主のメールアドレスが、
meに記述されたものになってしまいます。
meにはメールサーバーの名前が入ってしまっていますので例えば、@mailsv.hogehoge.com
のようなアドレスになって届いてしまいます。
多くの場合、上記のような事態は避けたいと思うでしょう。
それを避けるためにdefaulthostというファイルを追加します。
具体的な例として、たとえば、realdomain.comというドメインを扱うために次のような設定をしています。
[defaultdomain]
realdomain.com
[locals]
localhost
realdomain.com
mail.realdomain.com
[plusdomain]
realdomain.com
[rcpthosts]
localhost
realdomain.com
mail.realdomain.com
.realdomain.com
[me]
mail.realdomain.com
[defaulthost]
realdomain.com
この他にも様々な設定ファイルの記述が可能なようです。
必要に応じて調べてみてください。
[起動スクリプトのコピーとaliasの設定]
それでは、qmailを起動するためのqmailの起動スクリプトを
/var/qmail/rcとしてコピーしましょう。
起動スクリプトのデフォルトファイルはインストールの段階で
/var/qmail/boot/homeというファイルとして提供されています。
# cp /var/qmail/boot/home /var/qmail/rc
またroot,postmaster,mailer-daemonあてのメールの転送先を決めてやる必要があります。
/var/qmail/alias以下に
.qmail-hogehogeというファイルを作るとhogehogeあてのメールをどう処理するかの設定を
することが可能になります。
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon
.qmail-root
# chmod 644 .qmail*
として、/var/qmail/alias以下に.qmail-postmaster、 .qmail-mailer-daemon、
.qmail-rootの
三つのファイルを作ってあげましょう。
[sendmailの停止]
この時点では、sendmailが動いていてもかまわないらしいのですが、
念のためsendmailはこの時点で止めておきましょう。
まず、起動時のsendmailを起動するかどうかの設定をしましょう。
起動時のsendmailを起動するかどうかの設定方法は
LinuxとFreeBSDで違います。
[LINUXの場合]
/etc/rc.d/rc*.d/の下に
S**sendmailというシンボリックリンクがあるはずです。
rc*.dの*の部分には各runlevelが入ります。
# runlevel
として現在のrunlevelを調べ、例えば、
N 3
と表示されたら、
/etc/rc.d/rc3.d/
のディレクトリの中のファイルによって起動プログラムの
設定を変えられるという訳です。
このファイルをS**sendmail -> K**sendmail
とかえることで起動時にsendmailを起動するかどうかを変えられます。
[FreeBSDの場合]
FreeBSDではsendmailを起動するかどうかは
/etc/rc.confに記述します。
仮にsendmailがデフォルトで起動されているとしたら
rc.confの中のsendmailに関する行が
sendmail_enable="YES"
のようになっているでしょう。
このYESの部分を下記のように
sendmail_enable="NO"
のように変えることで起動時に立ち上がるsendmailを止めることができます。
次にsendmailプログラムを使用しているプログラムのためにsendmailの一部を
qmail内にあるsendmail代替プログラムに書き換えます。
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
もともとあるsendmailのプログラムのバックアップを取り、/usr/sbin/sendmailとして
qmail内にある代替プログラムへのシンボリックリンクを作るわけです。
また、
# ps aux | grep sendmail
などとしてsendmailが起動しているかどうかを確認し、
sendmailが起動しているようであればkillなどによってプロセスを停止させてください。
(LINUXであれば、/etc/rc.d/init.d/sendmail stopなどとしてプロセスを停止させると良いでしょう)
(FreeBSDの場合、/usr/sbin/sendmail -qなどとすればsendmailを停止させることができるようです。ただし上記によってsendmailはqmail内へのシンボリックリンクに変えてしまっているのでkillでプロセスを殺してしまう方が面倒でなくていいかもしれません。)
以上の設定が終わったらqmailのテストに入りましょう。
[qmailの送信テスト]
以下のコマンドでqmailを立ち上げます。
# csh -cf '/var/qmail/rc &'
[1] 58413
上記のようなプロセス番号が表示されるので
psによって立ち上がっているかどうかを確認します。
# ps aux |grep qmail
qmails 58413 0.0 0.3 908 428 p0 S 1:14PM 0:00.02
qmail-send
qmaill 58414 0.0 0.3 872 432 p0 S 1:14PM 0:00.00
splogger qmail
root 58415 0.0 0.3 872 344 p0 S 1:14PM 0:00.00
qmail-lspawn ./
qmailr 58416 0.0 0.3 872 356 p0 S 1:14PM 0:00.00
qmail-rspawn
qmailq 58417 0.0 0.3 860 372 p0 S 1:14PM 0:00.00
qmail-clean
この時点で、localからlocalあてにはメールの送信ができるはずです。
上記のようにqmailが立ち上がっていることが確認できたらテストメールを送ってみます。
#echo to:user | /var/qmail/bin/qmail-inject
とすると/home/user/Mailboxにユーザあてのメールが届いているはずです。
[Maildir形式への変更]
さて、sendmailなど従来のメール保存方式では、Mailboxという保存形式を利用してきました。
Mailbox形式は、/var/spool/mail/ユーザー名 というファイルに格納されるようになっています。
しかし、すべてのユーザーのメールがこの1つのディレクトリに集まったり、
1つのユーザー宛のメールすべてが1つのファイルに格納されて巨大になったりすると、
煩雑なうえにサーバに負荷がかかることになります。
そこで、qmailでは、Mailbox形式ではなく、Maildirという形式を用いることが推奨されています。
その設定をすることにしましょう。
まず、各ユーザーディレクトリにMaildirディレクトリを作る必要があります。
この時、このMaildirを作るユーザはそのユーザで行ってください。
maildirmakeで作られたディレクトリの実行権限は700で生成されますので
rootで作るとuserからMaildirを覗く事ができないために
Oct 20 13:39:57 dns qmail: 1003552797.595120
delivery 4: deferral: Unable_to_chd ir_to_maildir._(#4.2.1)/
のようなエラーメッセージがmaillogに残され、届かなくなってしまうのです。
(Maildirが700で生成されるのは、本来プライベートなものであるはずのメールが
他のユーザに覗かれる様ではセキュリティ上好ましくないからです。)
例えば、fooというユーザで
#/var/qmail/bin/maildirmake ~foo/Maildir
とするとfooのホームディレクトリにMaildirというディレクトリができると思います。
また、LINUXの場合
#/var/qmail/bin/maildirmake /etc/skel/Maildir
としておくとユーザの追加が行われた時、そのホームディレクトリに
自動的にMaildirができるので便利でしょう。
FreeBSDの場合
# /var/qmail/bin/maildirmake /usr/share/skel/Maildir
のようにすればいいようです。
(/etc/skelというディレクトリもあるようなのですが、ここに作っても何もできませんでした。)
以上の手順が終わったらqmailを停止し、
/var/qmail/rc を以下のように修正してqmailを立ち上げ直します。
qmailを停止するには
# ps aux |grep qmail
qmails 58413 0.0 0.3 912 432 p0- I 1:14PM 0:00.02
qmail-send
qmaill 58414 0.0 0.3 872 432 p0- I 1:14PM 0:00.00
splogger qmail
root 58415 0.0 0.3 872 384 p0- I 1:14PM 0:00.00
qmail-lspawn ./
qmailr 58416 0.0 0.3 872 356 p0- I 1:14PM 0:00.00
qmail-rspawn
qmailq 58417 0.0 0.3 860 372 p0- I 1:14PM 0:00.00
qmail-clean
でqmailのプロセスを調べ、そのうち,rootで立ち上がっているもの
この場合で言うと
root 58415 0.0 0.3 872 384 p0- I 1:14PM
0:00.00 qmail-lspawn ./
のプロセスである58415をkillすればよいでしょう。(アンダーラインを引いた部分です。)
# kill 58415
上記作業をした後、もう一度
# ps aux |grep qmail
として、何も表示されないことを確認するといいでしょう。
上記作業が終わったら、/var/qmail/rcをviなどで以下のように書き換えます。
[修正前]
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox
by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Mailbox splogger qmail
[修正後]
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox
by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger
qmail
上記のように修正ができたら、/var/qmail/rcを
# csh -cf '/var/qmail/rc &'
などとして立ち上げ、再度テストをしてみましょう。
#echo to:user | /var/qmail/bin/qmail-inject
とすると/home/user/Maildir/newの下にユーザあてのメールが届いているはずです。
さて、それでは次のページでメールが外部から受け取れるようにSMTPの設定をしましょう。
|
qmail
メールサーバの構築Expert UNIX Series
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) qmailのインストールから、設定、運用まで、FreeBSDとLinuxの場合について、あますところなく解説。付属CD‐ROMにはFreeBSD、4.4‐RELEASEとqmailソースを収録。もっとも詳しいqmailの解説書。
内容(「MARC」データベースより) qmailのインストールから、設定、運用まで、FreeBSDとLinuxの場合について解説。付属CD-ROMにはFreeBSD
4.4-Releaseとqmailソースを収録。とても詳しい解説書。 (C) Amazon.co.jp
|
|
SendmailとqmailによるLinuxメールサーバー構築ガイド
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) 本書は主に、LinuxなどのUNIX系OSを使用してメールサーバー、つまりはインターネットメールシステムを構築しようとしているユーザーを対象としている。まずUNIX系OSにおいて一般的なメール転送エージェント、すなわちMTAであるsendmailについて解説している。後半では、最近注目を集めているqmailについて解説している。
内容(「MARC」データベースより) メール転送エージェントのsendmailや、最近注目を集めているqmailを用いて、メールサーバーのシステム構築から運用管理、セキュリティ対策までを自分で作るためのマニュアル。
(C) Amazon.co.jp
|
|
qmailで作る快適メールサーバー―qmailのインストールから活用までを徹底解説
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) 安全・強固で使いやすいメールサーバー"qmail"の、はじめての完全解説書。次世代標準となったメールサーバーをはじめて完全解説。「Postfix」の解説を同時収録。
内容(「MARC」データベースより) ポストsendmail ナンバー1は、qmailで決まり!
安全・強固で使いやすい、次世代標準となったメールサーバーqmailのはじめての完全解説書。
(C) Amazon.co.jp
|