メールサーバーqmailの設定


(0)まえがき

  •  VineLinuxではメールサーバーPostfixは標準で起動しているが、ここではセキュリティに強いqmailのインストール・設定について紹介。


(1)ファイルのダウンロード
qmail-1.03.tar.gz
qmail-date-localtime.patch
checkpassword-0.90.tar.gz
ucspi-tcp-0.88.tar.gz
pbs4q-0.0.4.tar.gz
qmaild


  • /usr/local/src/qmailディレクトリを作成し、左記のファイルをダウンロードする。

(2)ユーザとグループの登録
# mkdir /var/qmail
# /usr/sbin/groupadd nofiles

# /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/useradd -g nofiles -d /var/qmail/alias -s /bin/bash alias


# /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
  • qmail動作に必要なグループとユーザを作成する。

(3)qmailのインストールと設定
# cd /usr/local/src/qmail
# tar xvzf qmail-1.03.tar.gz
  • qmailファイルを展開する。
# cp qmail-date-localtime.patch ./qnail-1.03
# cd qmail-1.03
# patch < qmail-date-localtime.patch
  • ヘッダに表示される時間表示を日本時間にあわせるためのパッチを当てる。
# make
# make setup check
  • コンパイルとインストールの実施。
# ./config-fast inohara.net
  • サーバー名(ドメイン名)を設定する。
# cp /var/qmail/boot/home/qmail/rc
  • 起動スクリプトの雛形をコピー。
# vi /var/qmail/rc
qmail-start ./Mailbox splogger qmail
         ↓
qmail-start ./Maildir/ splogger qmail
  • スクリプトの一部を書き換える。
  • エディタでスクリプトrcを開き、「./Mailbox」を「./Maildir/」と書き換える。
# vi /var/qmail/control/locals
inohara.net
localhost
  • 受信可能なホスト名を登録する。
# vi /var/qmail/control/rcpthosts
inohara.net
localhost
  • 送信可能なホスト名を登録する。


(4)tcpserverのインストール
# cd /usr/local/src/qmail
# tar xvzf ucspi-tcp-0.88.tar.gz
  • tcpserverを展開する。
# cd ucspi-tcp-0.88
# make
# make setup check
  • コンパイルとインストールの実施。
# vi /etc/tcp.smtp.txt
127.0.0.1:allow,RELAYCLIENT=""
192.168.:allow,RELAYCLIENT=""
  • 不正中継防止用のsmtpルールデータベースを作成する。
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp.txt
  • テキストファイルからデータベースを生成する。
# ls /etc/tcp.smtp.cdb
tcp.smtp.cdb
  • データベース/etc/tcp.cdbが作成されていることを確認する。

(5)checkpasswordのインストール
# cd /usr/local/src/qmail
# tar xvzf checkpassword-0.90.tar.gz
  • POP認証ツールcheckpasswordを展開する。
# cd checkpassword-0.90
# make
# make setup check
  • コンパイルとインストールの実施。

(6)pbs4qのインストール
# cd /usr/local/src/qmail
# tar xvzf pbs4q-0.0.4.tar.gz
  • qmail用POP before SMTPツールpbs4qを展開する。
# cd pbs4q
# make
# make install
  • コンパイルとインストールの実施。

(7)自動起動用スクリプトqmaildの編集と起動
# cd /usr/local/src/qmail
# cp qmaild /etc/rc.d/init.d/
  • 自動起動用スクリプト「qmaild」を/etc/rc.d/init.dにコピーする。
# cat /etc/passwd
   :
qmaild:x:506:502::/var/qmaild:/bin/fales
  • qmaildユーザーのUID/GIDを確認する。
  • 左記の例では<UID>=506、<GID>=502
# vi /etc/rc.d/init.d/qmaild
#!/bin/sh
#
# description: QMAIL SMTP & POP3 SERVER
# processname: qmaild
# pidfile: /var/run/qmaild.pid
# filename /etc/rc.d/init.d/qmaild
#
# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
start)
echo -n "Starting qmaild: "
/usr/local/bin/tcpserver -q -l -H -R -x /etc/tcp.smtp.cdb \
-c 100 -u <UID> -g <GID> 0 smtp /usr/local/bin/pbs4q \
/var/qmail/bin/qmail-smtpd 2>&1 \
/var/qmail/bin/splogger smtpd &
/usr/local/bin/tcpserver -q -l -H -R 0 pop3 \
/var/qmail/bin/qmail-popup <DOMAINNAME>\
/bin/checkpassword /usr/local/bin/pbs4q /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
/var/qmail/bin/splogger pop3d &
/var/qmail/rc &
echo
touch /var/lock/subsys/qmaild
;;
stop)
echo -n "Shutting down qmail: "
kill $(/sbin/pidof tcpserver)
kill $(/sbin/pidof qmail-send)
echo
rm -f /var/lock/subsys/qmaild
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {startstoprestart}"
exit 1
esac
exit 0

  • qmaildを実際の環境に合わせて変更する。
  • 変更箇所は、<UID>=506、<GID>=502、<DOMAINNAME>=inohara.net
# chmod 755 /etc/rc.d/inet.d/qmaild
  • qmaildのパーミッションを変更する。
# /sbin/service postfix stop
# /sbin/chkconfig postfix off
  • 起動中のpostfixを停止する。また、自動起動設定をオフにしておく。
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/bin/sendmail
  • sendmailをqmail付属のものと置き換える。
# vi /etc/inetd.conf
:
#pop-3 stream tcp nowait root /usr/sbin/tcpd in.qpopper
  • inetdの設定変更。VineLinuxではPOP3サーバーとしてqpopperが起動されるようになっているのでコメントアウトする。
# /sbin/service inet restart
  • 編集後、inetdの再起動。
# su - kazuyoshi
$ /var/qmail/bin/maildirmake Maildir
$ ls
Maildir/
  • ユーザ用メールディレクトリを作成する。左記の例はユーザ「kazuyoshi」の場合。
# su - alias
$ echo kazuyoshi@inohara.net > .qmail-root
$ echo kazuyoshi@inohara.net > .qmail-mailer-daemon
$ echo kazuyoshi@inohara.net > .qmail-postmaster
  • 主な管理用アカウントのエイリアスを作成しておく。左記の例は普段使っているメールアドレス「kazuyoshi@inohara.net」で一括受信する場合。
  • webminメニュー「システム」「起動及びシャットダウン」から表のアクション欄「qmaild」をクリックする。
  • 左記「アクションの編集」画面が現れるので、「今すぐ開始」をクリックしてqmailを起動する。
  • 起動時に自動起動するよう、「起動時に開始しますか?」=「はい」のラジオボタンをチェックし「保存」をクリックする。
  • webminメニュー「システム」「実行プロセス」からプロセスマネージャ画面が現れるので下部に咲き7つのプロセスが実行されていることを確認する。

(8)動作試験
# echo to: kazuyoshi@inohara.net | /var/qmail/bin/qmail-inject
  • echoコマンドでメール送信試験を実施。メーラーであきメールを確認する。POP before SMTPを使用しているため、先に受信を実施すること。


 
更新履歴
2005.01
作成

メール アイコン
ール
トップ アイコン
トップ