qmailの設定
HOME BACK

 FreeBSDではsendmailではないMTAを使いたかったのでqmailにチャレンジすることにした。/usr/portsにqmail1.03があるので、迷わずにこれによるインストールを実施した。なお、インストールするマシンはインターネットへの接続が可能な状態にする必要がある。接続できないようであれば、CDROM等によりqmail-1.03.tar.gzを用意しておく必要がある。
$
cd /usr/ports/mail/qmail
で、qmailのディレクトリへ移動し、
$make
その後、su rootでrootになり
# make install
でインストールする。

基本的な設定

 基本的設定に必要なファイルは、/var/qmail/control以下にある。デフォルトで各種ファイルが用意できているはずであるが、なければ作る必要がある。
#vi me
hogehoge.net
このファイルにはFQDNを記述するようであるが、ドメインだけとした。

#vi locals
localhost
localhost.hogehoge.net
mail.hogehoge.net
hogehoge.net
このファイルではメールサーバーでローカル配送として処理すべきドメインを1行に1つずつ記述する。

#vi rcphosts
hogehoge.net
mail.hogehoge.net
ns.hogehoge.net
このファイルでは外部からのメールのうち、このメールサーバーで処理するドメインを1行に1つずつ記述する。rcphostsに書いていないドメイン宛のメールは、不正中継メールとして受け取りを拒否する。

#vi defaulthost
hogehoge.net
このファイルではメールを送信するときに、宛先もしくは送信者のドメイン部が省略されていると、defaulthostファイルの内容が付加される。

#vi defaultdomain
.hoghoge.net
このファイルではホストからメールを送信するときに、宛先もしくは送信者のドメイン部にドット( .)がないと、defaulthostの内容が付加される。

mailの起動

 /var/qmail/boot以下に起動スクリプトのサンプルがあるのて゛適当なものを/var/qmail/rcとしてコピーする。今回はMaildir形式としたので
#cp /var/qmail/boot/maildir /var/qmail/rc
とした。portsからインストールした場合はリンクが張られているようであるが、念のため
#ln -s /var/qmail/rc /ur/local/etc/rc.d/qmail.sh
とする。
reboot後、psで起動を確認する。
$ps ax
205 con- I 0:00.01 splogger qmail
206 con- I 0:00.01 qmail-lspawn ./Maildir/
207 con- I 0:00.01 qmail-rspawn
208 con- I 0:00.01 qmail-clean

Maildirの設定

 ユーザーfooの/home/fooにMaildirを設定するためには
#su foo
$ cd /home/foo
$ /var/qmail/bin/maildirmake Maildir
で作成される。これでメールは各人のMaildirへ1通ずつのメールとして蓄積されることになる。

sendmailの停止、aliasの設定

 FreeBSD4.4Rをインストールすると標準でsendmailが起動してしまうのでこれを停止させる必要がある。/etc/rc.confにおけるsendmailの記述をNOへ変更する。
sendmail_enable="NO"
このままではシステムからrootあてのメール処理に不都合が生じるので、qmail付属のコマンドに置き換える。
#killall sendmail
#cd /usr/sbin
#mv sendmail sendmail.bak
#chmod 0 sendmail.bak
#ln -s /var/qmail/bin/sendmail sendmail
必要なaliasを設定する。
#touch /var/qmail/alias/.qmail-root
#touch /var/qmail/alias/.qmail-postmaster
#touch /var/qmail/alias/.qmail-mailer-daemon
これだけだと空のファイルなのでこれらのメールを転送するアドレスを記述する。
# echo foo@hogehoge.net > /var/qmail/alias/.qmail-root
これでようやくroot宛のメールがfoo@hogehoge.netへ転送されることになる。

tcpserverの設定

 qmail自体ではsmtp接続を受け付けないので外部からのメールを受信するために、何らかの処置が必要となる。inetdを使うものとtcpserverを使うものがあるが、今回はtcpserverでトライした。 tcpserverは、 portsが用意されているので、/usr/ports/sysutils/ucspi-tcpで ucspi-tcp-0.88.tar.gzをインストールする。
$make
その後、su rootでrootになり
# make install
でインストールする。smtpのアクセスをコントロールする/etc/tcp.smtpを記述する。
#vi /etc/tcp.smtp
192.168.0.:allow,RELAYCLIENT=""
127.0.0.1:allow,RELAYCLIENT=""
中継は自宅内LANとlocalhostのみなので上記のような内容とした。これをデータベース化する必要があるので
#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
で/etc/tcp.smtp.cdbを作成する。これはバイナリーファイルとなる。

tcpserver経由の起動設定

 起動スクリプトの記述にはユーザーIDとグループIDが必要となる。
%id -u qmaild
82
%id -g qmaild
81
起動スクリプトは/usr/local/etc/rc.d/smtp.shとして置くので
# vi /usr/local/etc/rc.d/smtp.sh
/usr/local/bin/tcpserver -HR -x /etc/tcp.smtp.cdb -u 82 -g 81 0 smtp /var/qmail/bin/qmail-smtpd &
と記述する。実行ファイルにする必要があるので
#chmod +x smtp.sh
とする。どういうわけかtcpseverの接続ログを記録する-vオプションを設定するとうまく動作しなかったので上記とした。リブート後にps axとすると
202 con- I 0:00.01 /usr/local/bin/tcpserver -HR -x /etc/tcp.smtp.cdb・・・・・
と起動しているはずである。

popの設定

 popは家庭内LANからのみで外部から受け付けないので気楽である。こちらもtcpserver経由とするつもりであったが、checkpasswordとの組み合わせの関係なのかうまく動作しなかったので、inetd経由となってしまった。checkpassword-0.90.tar.gzをインストールする必要がある。
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
からダウンロードして
$ tar xzvf checkpassword-0.90.tar.gz
$cd checkpassword-0.90
#make setup check
とする。
/etc/inetd.confのpop3のコメントアウトを外し
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup ns.hogehoge.net /bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir
とする。
inetdなので/etc/hosts.allowに下記内容を記述する。
qmail-pop3d : 192.168.0. : allow
これは家庭内LANのみからpopを受け付けることを意味している。もちろんルーターではpopは許可していない。これにより家庭内LANの各PCからメールのやりとりが可能となる。

HOME BACK

15/Feb/2003 Copyright all revered by mac