| HOME | INDEX |

   
 

qmail 1.03 + vpopmail 5.2.2 インストール

   
     

qmail 1.03 のインストール

   


 qmail のインストールディレクトリを作成する。

# mkdir /var/qmail

 qmail の実行に必要なグループとユーザを作成する。

# /usr/sbin/groupadd nofiles
# /usr/sbin/useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# /usr/sbin/groupadd qmail
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false qmailq
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false qmailr
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false qmails

# chown root.qmail /var/qmail

 qmail の tarball をダウンロードする。

URL

FILE

http://www.qmail.org/

qmail-1.03.tar.gz

 tarball を伸張する。

# gzip -cd qmail-1.03.tar.gz | tar xvf -

  INSTALL の手順に従いコンパイルする。

# make setup check

 config スクリプトを実行し、コントロールファイルを作成する。ホストが DNS に登録されていない場合はエラーとなるため、config-fast でコントロールファイルを作成する。

# ./config-fast mallet.jp

# head /var/qmail/control/*

=> /var/qmail/control/defaultdomain <==
mallet.jp

==> /var/qmail/control/locals <==
localhost
mx.mallet.jp

==> /var/qmail/control/me <==
mx.mallet.jp

==> /var/qmail/control/plusdomain <==
mallet.jp

==> /var/qmail/control/rcpthosts <==
localhost
mallet.jp

 最低限必要なエイリアスを定義する。.qmail-default は宛先不明のメールを受け取るが、SPAM の餌食となるため、設定しない方が安全である。

# cd ~alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-webmaster .qmail-root
# chmod 644 .qmail*

# echo '&hoge@mallet.jp' >.qmail-postmaster
# echo '&hoge@mallet.jp' >.qmail-mailer-daemon
# echo '&hoge@mallet.jp' >.qmail-webmaster
# echo '&hoge@mallet.jp' >.qmail-root

 ユーザー毎に Maildir 形式のメールボックスを作成する。

# /var/qmail/bin/maildirmake ~/Maildir
# su - hoge
$ /var/qmail/bin/maildirmake ~/Maildir
$ exit

 /var/qmail/boot/home を /var/qmail/rc にコピーする。rc スクリプトの ./Mailbox を ./Maildir/ に修正する。

# cd /var/qmail/boot
# cp home ../rc
# cd ..
# vi rc

#!/bin/sh

# Start qmail-daemons except for qmail-smtpd
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail &

 デーモン起動&起動確認.

# csh -cf '/var/qmail/rc &'
# ps aux | grep 'qmail'
qmails 12165 0.0 0.3 1144 396 pts/1 S 16:23 0:00 qmail-send
qmaill 12166 0.0 0.3 1112 432 pts/1 S 16:23 0:00 splogger qmail
root 12167 0.0 0.2 1100 336 pts/1 S 16:23 0:00 qmail-lspawn ./Maildir/
qmailr 12168 0.0 0.2 1100 336 pts/1 S 16:23 0:00 qmail-rspawn
qmailq 12169 0.0 0.2 1092 352 pts/1 S 16:23 0:00 qmail-clean
# tail /var/log/maillog
May 25 15:50:34 tomozo qmail: 990823834.935657 status: local 0/10 remote 0/20


   

eximの削除と qmail ダミーパッケージのインストール

   


 qmail ダミーパッケージ をダウンロードする。

URL

FILE

http://www.izumi-si.co.jp/info/qmail/debian.dummy.html

qmail-dummy_1.09-3_all.deb

 eximの削除

# dpkg --remove exim

他のパッケージとの依存性のためエラー終了するが、パッケージに削除マークが付く

 qmail-dummy のインストール。

# dpkg --install qmail-dummy_1.09-3_all.deb

既存 MTA の削除が同時に行われる

     
     
   

tcpserver のインストール

   


 ucspi-tcp の tarball をダウンロードする。

URL

FILE

http://cr.yp.to/ucspi-tcp.html

ucspi-tcp-0.88.tar.gz

 tarball を伸張する。

$ gzip -cd ucspi-tcp-0.88.tar.gz | tar xvf -

 コンパイルする。

$ cd ucspi-tcp-0.88
$ make

 root になりインストールする。

$ su
# make setup
# make check


     
   

SMTP 接続用の tcpserver ルールを作成する

   


 /var/qmail/rules ディレクトリを作成する。

# mkdir /var/qmail/rules

 smtp.filter を以下のように作成する。

# vi /var/qmail/rules/smtp.filter

127.0.0.1:allow,RELAYCLIENT=""
192.168.:allow,RELAYCLIENT=""

 tcpserver の接続制御データベースを作成する。中継を許可したいネットワークを追加した場合には tcp.smtp.cdb を再作成する。

# /usr/local/bin/tcprules \
> /var/qmail/rules/tcp.smtp.cdb \
> /var/qmail/rules/tcp.smtp.tmp < /var/qmail/rules/smtp.filter


     
   

qmail の自動起動設定

   

 

 /var/qmail/rc を以下のように書き換える。504 は qmaild の UID で 503 は nofiles の GID である。

# vi /var/qmail/rc

#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.

# Start qmail-daemons except for qmail-smtpd
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail &

# Start qmail-smtpd via tcpserver
/usr/local/bin/tcpserver \
-R -v -c 20 -u 504 -g 503 \
-x /var/qmail/rules/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 \
| /var/qmail/bin/splogger smtpd &

 

 /etc/rc.d/init.d 以下に起動スクリプトを置く。

# vi /etc/rc.d/init.d/qmail

#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

case "$1" in
start)
# Start daemons.
echo "Starting qmail."

/var/qmail/rc

echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac

exit 0

 実行属性を与える。

# chmod +x /etc/rc.d/init.d/qmail

 update-rc.d で runlevel ごとの起動スクリプトへのシンボリックリンクを更新する。

# update-rc.d qmail defaults

 マシンを再起動してから SMTP 接続チェック。

# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mx.mallet.jp ESMTP
QUIT
221 mx.mallet.jp
Connection closed by foreign host.


     
   

vpopmail のインストール

   

 

 qmail の実行に必要なグループとユーザを作成する。

# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail -m -s /bin/true vpopmail

 vpopmail の tarball をダウンロードする。

URL

FILE

http://inter7.com/vpopmail/

vpopmail-5.2.2.tar.gz

tarball を伸張する。

$ gzip -cd vpopmail-5.2.2.tar.gz | tar xvf -

 INSTALL の手順に従いコンパイルする。

$ su

# mkdir /var/qmail/rules/tcpserver.d

# ./configure --enable-logging=y \
> --enable-relay-clear-minutes=40 \
> --enable-roaming-users=y \
> --enable-tcpserver-file=/var/qmail/rules/tcpserver.d/smtp.filter.cdb

# make

# make install-strip


     
   

POP 接続用の tcpserver ルールを作成する

   

 

 pop3.filter を以下のように作成する。

# vi /var/qmail/rules/pop3.filter

:allow

 tcpserver の接続制御データベースを作成する。

# /usr/local/bin/tcprules \
> /var/qmail/rules/tcp.pop3.cdb \
> /var/qmail/rules/tcp.pop3.tmp < /var/qmail/rules/pop3.filter

 /var/qmail/rc にを以下を追加する。

# vi /var/qmail/rc

# Start vpopmail via tcpserver
/usr/local/bin/tcpserver \
-R -H -x /var/qmail/rules/tcp.pop3.cdb 0 pop3 \
/var/qmail/bin/qmail-popup mallet.jp \
/home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir &

 POP before SMTPのデータベースを定期的にクリーニングする為のエントリを追加する。

# vi /etc/cron.d/clearopensmtp
40 * * * * root /home/vpopmail/bin/clearopensmtp 2 >&1 > /dev/null

# chmod +x /etc/cron.d/ntpdate
# /etc/init.d/cron restart

 マシンを再起動してから POP3 接続チェック。

# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK <1258.1021128470@mallet.jp>
QUIT
+OK
Connection closed by foreign host.

     
   

qmail + vpopmail によるバーチャルドメイン管理

   

 

 新規ドメインの追加

# cd ~vpopmail
# ./bin/vadddomain mallet.jp
Please enter password for postmaster:*********
enter password again:*********

 新規ユーザの追加

# ./bin/vadduser hoge@mallet.jp
Please enter password for postmaster:*********
enter password again:*********

     
   

動作確認

   

 

 送信のテスト。

# sendmail -t
To: hoge@mallet.jp [Enter]
From: hoge@mallet.jp
[Enter]
Subject: TEST
[Enter]
[Enter]
[Ctrl + D]

# tail -20 /var/log/mail.log
May 11 23:57:30 marimba qmail: 1021129050.562486 new msg 435486
May 11 23:57:30 marimba qmail: 1021129050.563163 info msg 435486: bytes 207 from <root@mx.mallet.jp> qp 1306 uid 0
May 11 23:57:30 marimba qmail: 1021129050.571895 starting delivery 1: msg 435486 to local mallet.jp-hoge@mallet.jp
May 11 23:57:30 marimba qmail: 1021129050.572083 status: local 1/10 remote 0/20
May 11 23:57:30 marimba qmail: 1021129050.766458 delivery 1: success: did_0+0+1/
May 11 23:57:30 marimba qmail: 1021129050.767217 status: local 0/10 remote 0/20
May 11 23:57:30 marimba qmail: 1021129050.780927 end msg 435486

 受信のテスト。ユーザ名は「メールアドレスの '@' を '%' にかえたもの」です。

# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK <1317.1021129465@mallet.jp>
USER hoge%mallet.jp
+OK
PASS ********
+OK
STAT
+OK 1 268
RETR 1
+OK
Return-Path: <root@mx.mallet.jp>
Delivered-To: hoge@mallet.jp
Received: (qmail 1306 invoked by uid 0); 11 May 2002 23:57:21 +0900
Date: 11 May 2002 23:56:10 +0900
Message-ID: <20020511145610.1305.qmail@mx.mallet.jp>
To: hoge@mallet.jp
From: hoge@mallet.jp
Subject: TEST


.
DELE 1
+OK
QUIT
+OK
Connection closed by foreign host.

     
   

qmailadmin のインストール

   

 

 qmailadmin の tarball をダウンロードする。

URL

FILE

http://inter7.com/qmailadmin/

qmailadmin-1.0.2.tar.gz

 tarball を伸張する。

$ gzip -cd qmailadmin-1.0.2.tar.gz | tar xvf -

 インストールする。

$ su

# ./configure \
> --enable-htmldir=/home/httpd/public_html \
> --enable-cgibindir=/home/httpd/public_html/cgi-bin \
> --enable-maxautoresponders=0 \
> --enable-maxmailinglists=0 \
> --disable-autoresponder-bin \
> --disable-ezmlmdir

# make clean
# make
# make install-strip

 アクセスしてみる。


 
   
Copyright © 2002-2004 by mallet, All rights reserved