qmailの運用

 qmail の起動の仕方や、ユーザー作成について説明します。

≪ 項目 ≫
1.メールサーバーの起動について
2.メールユーザー作成

 1.メールサーバーの起動について

 メールサーバーの起動は、qmail 単体だけの起動ではセキュリティに問題があるので”tcpserver”や”checkpassword”を同時に起動できるように起動シェルを作成します。 起動シェルの置き場所はどこでも良いですが、ここでは”/etc/rc.d/init.d/mail.sh”というシェルで作成します。
以下がシェルの例です。

#!/bin/sh<<--(1)
. /etc/rc.d/init.d/functions<<--(2)
case "$1" in
start)<<--(3)
 echo -n "Starting qmai..."
 echo ""
  
 csh -cf /var/qmail/rc &<<--(4)
 /usr/lib/courier-imap/libexec/pop3d.rc start<<--(5)
  
 exec env - PATH="/var/qmail/bin:/sbin:/bin:\<<--(6)
 /usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
 envdir /etc/relay-ctrl relay-ctrl-chdir \<<--(A)
 /usr/local/bin/tcpserver -v -x /etc/tcp.pop3.cdb -r -h 0 pop3 \
 /var/qmail/bin/qmail-popup mail-server.plala.jp \<<--(7)
 /bin/checkpassword \<<--(8)
 relay-ctrl-allow \<<--(9)
 /var/qmail/bin/qmail-pop3d Maildir 2>&1 \<<--(10)
 | /var/qmail/bin/splogger pop3d 3 &<<--(11)
  
 exec env - PATH="/var/qmail/bin:/sbin:/bin:\<<--(12)
 /usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
 envdir /etc/relay-ctrl relay-ctrl-chdir \<<--(A)
 /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb -r -h -lo -u 801 -g 800 0 smtp \
 relay-ctrl-check \<<--(A)
 /var/qmail/bin/qmail-smtpd 2>&1 \
 | /var/qmail/bin/splogger smtp 3 &
  
 echo -n "qmail Start"
 echo ""
 ;;

 まずは qmail の起動の仕方の例の説明です。

(1)(2) はBシェルの決まりごとなので記述します。(3) には引数を記述します。
(4) で編集した qmail の起動スクリプトを記述します。最後の”&”は必要です。
(5) は”courier-imap”の起動です。POP3を使用するなら”pop3d.rc”を、IMAPを使用するなら”imapd.rc”に書き換えます。
(6) はPOPのプログラムを起動させる処理です。 (7) の”tcpserver”が、(8) の”checkpassword”と (9) の”relay-ctrl”、  (10)、(11) で qmail のPOP機能とログ機能を、cdbファイル化したデータベースファイルをもとに、アクセス制限しながら同時に起動させています。 ここで注意する事は、(6)から全て1行でコマンドを実行しないといけません。 (Linuxでのバックスラッシュは、次の行に続くという意味で改行ではありません。全て1行で記述しているとみなされます。ここでは”\”で記述してます。)
(12) からは、SMTP のプログラムを起動させる処理です。POP の時と同様に記述してください。

もし”SMTP before POP3”をしないのであれば、(A) の部分と (9) を削除しましょう。

stop)
 echo -n "Shutdown qmail"
 killproc qmail-send
 killproc tcpserver
 /usr/lib/courier-imap/libexec/pop3d.rc stop
 echo
 rm -f /var/lock/subsys/qmail
 echo ""
 ;;

 qmail の停止の仕方の例です。引数は”stop”にしています。
 qmail と tcpserver は直接プロセスを落とさないといけないので注意してください。

restart)
 echo -n "Restarting qmail:"
 $0 stop
 $0 start
 echo "done."
 ;;
  
*)
 exit 1
 esac
  
exit 0
  

 再起動させたい場合の例とその他引数の場合です。上記の様にすればよいです。

 以上で qmail の設定はおわりです。あとは実際に起動して確認をします。


 2.メールユーザー作成

 ◆ メールユーザーの作成とパスワード設定

 ”qmailの設定”でも書きましたが、Linuxのユーザーがそのままメールユーザーとなります。そのユーザーでログインする事が無いなら仮想ユーザーにしておきましょう。
”useradd”でユーザー作成します。

 useradd -s /bin/false << ユーザー名 >>

次にパスワードの設定をします。POP認証で”checkpassword”の設定したはずです。その
”checkpassword”は”/etc/paaswd”を参照してPOP認証を行うので、普通に”passwd”コマンドでパスワード設定をします。

 passwd << ユーザー名 >>

ユーザー作成と同時に自動的にMaildir形式にする設定がしてあれば、メールユーザーの設定は完了です。自動作成の仕方は”3.qmailの設定”で説明してますので参照してください。


 以上で qmail 設定は終わりです。実際に、無料メールなどに送信したり、逆に無料メールから送信したりして、メールサーバーが正常に動作しているか確認してみてください。
 またSPAM対策が出来ているか確認します。SMTP が拒否するIPアドレスからメールを送信するなどして確認をします。(自ドメイン宛以外にメール送信して試してください。)




TOPページに戻る