qmailの情報 http://ccs.cla.kobe-u.ac.jp/Jouhou/96/miyake/sotsuron/index.htm
最新 qmailのインストール
/usr/ports/mail/qmail/ で make make
install する
/var/qmail/configure/config-fast mail.972432.com
chmod 644 /var/qmail/alias/.qmail-*
cp /var/qmail/boot/home /var/qmail/qmail.sh
sendmailの無効化 #rm
/etc/rc.d/inet.d/sendmail
#kill –STOP [sendmailのプロセスID]
#usr/sbin/sendmail
–q
#chmod
0 /usr/sbin/sendmail sendmailバイナリのsetuidビットを削る
#mv
/usr/sbin/sendmail /usr/sbin/sendmail.back 移動する。
次に、sendmailの代わりにqmailのwrapperが呼び
出されるよう、シンボリックリンクをはる。
#ln
-s /var/qmail/bin/sendmail /usr/sbin/sendmail こうすることでperlのスクリプトでsendmailが呼ばれたときもあた
かもsendmailを使っているかのよう
にqmailが振る舞う。
#chmod 0
/usr/bin/mail /usr/bin/mail の無効化
リレーの制御
一連のインストールの手順でいくつかの設定ファイル
が作成され、/var/qmail/controlディレクトリ以下に存在する。そのうちのほとんどは
そのまま使用できるが、SMTPサーバとしてSMTPクライアントの要求を受けてメールをリレーするため
には、/var/qmail/control/rcpthostsが障害となってくる。
qmailはSPAMの踏み台にされることを防止するため、初期設定でlocalhost以外からメールの送信は、rcphostsに記述された宛先以外へは拒否する設定となってい
る。しかしこのままでは外部にメールを送ることができない上、 rcpthostsに配送が予想される宛先を全て列記することは不可能
である。かといってrcpthostsを削除してしまえば、全てのメールのリレーを許可す
るようになるものの、それでは絶好のSPAMの踏み台となってしまう。
そこで自サイト内からのSMTP接続の時は許可するように設定する必要が生じる。qmailを用いたメール環境では、リレーの制御にtcpserverというソフトを用いるのが一般的であるようだが、今
回はすでにインストールされているtcp-wrapperを利用することにする。tcpdの /etc/hosts.allowファイルのクライアントに対応した部分で 環境変数 RELAYCLIENT を空文字列にするよう設定する。
tcp-env:
192.168.1., 127.0.0.1: setenv = RELAYCLIENT
これにより、knet内のホスト192.168.1.*からのメールを受け取り、リレーを許可するという設
定となる。
qmqil の起動
sh /var/qmail/qmail.sh
終了 kill qmail-send の PID
/home/mnyu/.Maildir/ 以下のパーミッションをuserの書き込み可にする
fetch http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
root-ana# tar zxvf checkpassword-0.90.tar.gz のインストール
root-ana# cd checkpassword-0.90
root-ana# make
root-ana# make setup check
root-ana# ./install
root-ana# /bin/checkpassword ができる
6# echo to: mnyu@localhost | /var/qmail/bin/qmail-inject
6# echo to: mnyu@mail.972432.com | /var/qmail/bin/qmail-inject
6# echo to: mnyu | /var/qmail/bin/qmail-inject
6# echo to: mnyu@kk.email.ne.jp | /var/qmail/bin/qmail-inject
6# echo to: yoronk@yahoo.co.jp | /var/qmail/bin/qmail-inject
のいずれも mnyu に 空 のメールが行く
sylpeedからmnyu@mail.972432.com に
you are not welcome to use tcp-env from mail.972432.com とでて 送信できない
6#
telnet 972432.com 110
Trying 192.168.1.2...
Connected to 972432.com.
Escape character is '^]'.
Connection closed by foreign host.
このように拒否されるのは inetd.conf に 次の行をいれる 一行で
pop3 stream tcp nowait root
/var/qmail/bin/qmail-popup qmail-popup
mail.972432.com
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
現在うまく行っているこのときの各種設定 gyu anagura ともに 送受smtp
& pop OK
//////////////////////// ここは ホスト gyu です
/////////////////////
/etc/inetd.conf
ftp stream tcp
nowait root
/usr/libexec/ftpd ftpd -l
telnet stream tcp
nowait root
/usr/libexec/telnetd telnetd
一行pop3 stream tcp nowait root /var/qmail/bin/qmail-popup
qmail-popup
mail.972432.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 一行
smtp stream
tcp nowait qmaild
/var/qmail/bin/tcp-env tcp-env
/var/qmail/bin/qmail-smtpd
/etc/hosts.allow はじめ近くに書く
tcp-env : localhost 192.168.1.0/255.255.255.0 : setenv = RELAYCLIENT
tcp-env : ALL : ALLOW
resolv.conf
domain 972432.com
#domain yoron.net
nameserver 127.0.0.1
nameserver 192.168.1.1
//////////////////////// ここまでは ホスト
gyu です /////////////////////
//////////////////////// ここからは ホスト anagura
です /////////////////////
/etc/inetd.conf
pop3 stream tcp nowait root
/var/qmail/bin/qmail-popup qmail-popup yoron.dp-21.net
/bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir
smtp stream tcp nowait
qmaild /var/qmail/bin/tcp-env tcp-env
/var/qmail/bin/qmail-smtpd
/etc/hosts.allow
tcp-env : localhost 192.168.1.0/255.255.255.0 : setenv = RELAYCLIENT
tcp-env : ALL : ALLOW
resolv.conf
domain dp-21.net
nameserver 210.164.91.70 (ns.dp-21.net)
#nameserver 192.168.1.1
nameserver 202.224.32.1
#nameserver 202.224.32.2
//////////////////////// ここまでは ホスト anagura
です /////////////////////
メールの置き場所 および 形式
Maildir
sendmail形式で dirと言うのでuserごと
directryがあると 混乱しやすいが /var/mail/
以下に root やmnyuと言ったファイルがあり メールが連結された1個のファイル (ここにはroot wnn qmaild
postadm などuserのファイルがある )
配送中にシステムがクラッシュしても、メッセージが破壊されない
取り出し方
サーバー自身に login していれば mail コマンドでとれる win9xクライアントからは サーバーにpop サーバーをインストールして これに接続する
Mailbox
qmail形式
/home/mnyu/Mailbox と言う ファイルにメールが連結される 本質的にはこの形式は信頼性に欠けている
qmailではこうした危険を回避するため、maildir形式をサポートしている=>
(コマンド#/var/qmail/bin/maildirmake
Maildir ; #chmod –R 700
~/Maildirによる;
tmp、new、curという3つのディレクトリ 要作成)
user mnyu でlogin
して
mnyu# /var/qmail/bin/maildirmake ~/Maildir
mnyu# touch .qmail
.qmailファイルはsendmail環境における、.forwardファイルにあたり、ユーザーレベルでの配送の指示を
設定することができる。qmailは互換性のため、デフォルトではmbox形式のメールボックスへの配送をすることになってい
る。それゆえ、maildir形式のメールボックスへの配送を行うためには.qmailにその旨を記述する必要がある。.qmailの所有者はそのホームディレクトリのユーザーでパー
ミッションは600に設定する。
起動用スクリプトの修正
/var/qmail/rc
の下の部分を変更する
qmail-start
./Mailbox splogger qmail
↓
qmail-start ./Maildir/ splogger qmail
用語
共有メールスプール (Maildir) = /var/mail/ のこと 配送中にシステムがクラッシュしても、メッセージが
破壊されない
メールボックス
= ユーザーのホームディレクトリにある
~/Mailbox