
qmailというメールのパッケージをインストールします。今までは参考サイトをみてそのままインストールしていましたが、qmailの参考サイトがなくなってしまったのと、殆どのサイトがわかりづらかったりしたので、必要なところだけを書いています。なお、最終的にはバーチャルドメインで使えるようにqmail+vpopmail+qmailadminのようにしています。
参考サイト:http://www.geocities.jp/wakuwakustation/qmail.html
1.qmailインストール準備
qmailインストールに必要なユーザ、グループを作成する
01 | [root@ns ~]# mkdir /var/qmail ← qmailインストールディレクトリ作成 |
03 | [root@ns ~]# groupadd nofiles ← nofilesグループ作成 |
05 | [root@ns ~]# useradd -g nofiles -s /sbin/nologin alias -m -d /var/qmail/alias -k /dev/null ← aliasユーザ作成 |
07 | [root@ns ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmaild ← qmaildユーザ作成 |
09 | [root@ns ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmaill ← qmaillユーザ作成 |
11 | [root@ns ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmailp ← qmailpユーザ作成 |
13 | [root@ns ~]# groupadd qmail ← qmailグループ作成 |
14 | [root@ns ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmailq ← qmailqユーザ作成 |
16 | [root@ns ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmailr ← qmailrユーザ作成 |
18 | [root@ns ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmails ← qmailsユーザ作成 |
2.qmailインストール
準備ができたので実際にインストールをします。
01 | [root@ns ~]# wget ftp://ftp.eu.uu.net/pub/unix/mail/qmail/qmail-1.03.tar.gz ← qmailダウンロード |
03 | [root@ns ~]# tar zxvf qmail-1.03.tar.gz ← qmail展開 |
05 | [root@ns ~]# cd qmail-1.03 ← qmail展開先ディレクトリへ移動 |
07 | [root@ns qmail-1.03]# wget http://www.filewatcher.com/m/qmail-date-localtime.patch.gz.741.0.0.html ← 日本標準時間対応パッチダウンロード |
09 | [root@ns qmail-1.03]# wget http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz ← SMTP-Auth対応パッチダウンロード |
11 | [root@ns qmail-1.03]# wget http://www.qmail.org/qmail-smtpd-relay-reject ← 不正中継拒否対応パッチダウンロード |
13 | [root@ns qmail-1.03]# tar zxvf qmail-smtpd-auth-0.31.tar.gz ← SMTP-Auth対応パッチ展開 |
15 | [root@ns qmail-1.03]# /bin/mv qmail-smtpd-auth-0.31/* . ← SMTP-Auth対応パッチをqmail展開先ディレクトリへ移動 |
17 | [root@ns qmail-1.03]# patch < qmail-date-localtime.patch ← 日本標準時間対応パッチ施行 |
18 | patching file date822fmt.c |
20 | [root@ns qmail-1.03]# patch < auth.patch ← SMTP-Auth対応パッチ施行 |
23 | patching file qmail-smtpd.8 |
24 | patching file qmail-smtpd.c |
26 | [root@ns qmail-1.03]# patch < qmail-smtpd-relay-reject ← 不正中継拒否対応パッチ施行 |
27 | patching file qmail-smtpd.c |
28 | Hunk #1 succeeded at 56 (offset 3 lines). |
29 | Hunk #2 succeeded at 226 (offset 9 lines). |
30 | Hunk #3 succeeded at 277 (offset 11 lines). |
32 | [root@ns qmail-1.03]# vi error.h ← error.h編集 |
36 | [root@ns qmail-1.03]# make setup check ← qmailインストール |
error.hを編集するのは、以下のエラーを防ぐためになります。
/lib/libc.so.6: could not read symbols: 不正な値です
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
3.qmail初期設定
無事にインストールが終わったら、今度は初期設定をします。
01 | [root@ns qmail-1.03]# ./config-fast `hostname` ← qmail初期設定 |
02 | Your fully qualified host name is ns.colorbyte.co.jp. |
03 | Putting ns.wakuwakustation.com into control/me... |
04 | Putting wakuwakustation.com into control/defaultdomain... |
05 | Putting wakuwakustation.com into control/plusdomain... |
06 | Putting ns.wakuwakustation.com into control/locals... |
07 | Putting ns.wakuwakustation.com into control/rcpthosts... |
08 | Now qmail will refuse to accept SMTP messages except to ns.colorbyte.co.jp. |
09 | Make sure to change rcpthosts if you add hosts to locals or virtualdomains! |
11 | [root@ns qmail-1.03]# echo `hostname -d` >> /var/qmail/control/me ← 自ドメイン名を送信元ドメイン名にする |
13 | [root@ns qmail-1.03]# echo `hostname -d` >> /var/qmail/control/rcpthosts ← 自ドメイン名を受信ドメイン名として追加 |
15 | [root@ns qmail-1.03]# echo `hostname -d` >> /var/qmail/control/locals ← 自ドメイン名をローカルドメイン名として追加 |
17 | [root@ns qmail-1.03]# cd ← qmail展開先ディレクトリを抜ける |
19 | [root@ns ~]# echo "MANPATH /var/qmail/man" >> /etc/man.config ← manコマンドでqmailコマンドのマニュアルを参照できるようにする |
21 | [root@ns ~]# rm -rf qmail-1.03 ← qmail展開先ディレクトリ削除 |
23 | [root@ns ~]# rm -f qmail-1.03.tar.gz ← ダウンロードしたqmail削除 |
4.checkpasswordのインストール
SMTP認証、POP認証に使用するcheckpasswordをインストール、そして設定します。
01 | [root@ns ~]# wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz ← checkpasswordダウンロード |
03 | [root@ns ~]# tar zxvf checkpassword-0.90.tar.gz ← checkpassword展開 |
05 | [root@ns ~]# cd checkpassword-0.90 ← checkpassword展開先ディレクトリへ移動 |
07 | [root@ns checkpassword-0.90]# vi error.h ← error.h編集 |
12 | [root@ns checkpassword-0.90]make && make setup check |
以下のエラーがでてインストールの失敗をしないようにするためにerror.hを編集します
/lib/libc.so.6: could not read symbols: 不正な値です
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
tcpserverインストール
qmailへのSMTP接続制御を行うため、tcpserverが含まれたucspi-tcpをインストールします。
01 | [root@ns ~]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz ← tcpserverダウンロード |
03 | [root@ns ~]# tar zxvf ucspi-tcp-0.88.tar.gz ← ucspi-tcp展開 |
05 | [root@ns ~]# cd ucspi-tcp-0.88 ← ucspi-tcp展開先ディレクトリへ移動 |
07 | [root@ns ucspi-tcp-0.88]# vi error.h ← error.h編集 |
12 | [root@ns ucspi-tcp-0.88]# make setup check ← ucspi-tcpインストール |
19 | [root@ns ucspi-tcp-0.88]# cd ← ucspi-tcp展開先ディレクトリを抜ける |
21 | [root@ns ~]# rm -rf ucspi-tcp-0.88 ← ucspi-tcp展開先ディレクトリ削除 |
23 | [root@ns ~]# rm -f ucspi-tcp-0.88.tar.gz ← ダウンロードしたucspi-tcp削除 |
25 | [root@ns ~]# echo '127.:allow,RELAYCLIENT=""' > /etc/tcp.smtp ← 中継許可ホストに自ホストを登録 |
27 | [root@ns ~]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp ← /etc/tcp.smtpをcdb形式に変換 |
/lib/libc.so.6: could not read symbols: 不正な値です
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
5.dot-forwardインストール
sendmail用ユーザ別メール転送設定ファイル(~/.forward)をqmailでも利用するのでインストールします。
01 | [root@ns ~]# wget http://cr.yp.to/software/dot-forward-0.71.tar.gz ← dot-forwardダウンロード |
03 | [root@ns ~]# tar zxvf dot-forward-0.71.tar.gz ← dot-forward展開 |
05 | [root@ns ~]# cd dot-forward-0.71 ← dot-forward展開先ディレクトリへ移動 |
07 | [root@ns dot-forward-0.71]# vi error.h ← error.h編集 |
12 | [root@ns dot-forward-0.71]# make setup check ← dot-forwardインストール |
18 | [root@ns dot-forward-0.71]# cd ← dot-forward展開先ディレクトリを抜ける |
20 | [root@ns ~]# rm -rf dot-forward-0.71 ← dot-forward展開先ディレクトリ削除 |
22 | [root@ns ~]# rm -f dot-forward-0.71.tar.gz ← ダウンロードしたdot-forward削除 |
/lib/libc.so.6: could not read symbols: 不正な値です
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
6.fastforwardインストール
sendmail用システム共通メール転送設定ファイル(/etc/aliases)をqmailで利用するのに必要なfastforwardをインストールします
01 | [root@ns ~]# wget http://cr.yp.to/software/fastforward-0.51.tar.gz ← fastforwardダウンロード |
03 | [root@ns ~]# tar zxvf fastforward-0.51.tar.gz ← fastforward展開 |
05 | [root@ns ~]# cd fastforward-0.51 ← fastforward展開先ディレクトリへ移動 |
07 | [root@ns fastforward-0.51]# vi error.h ← error.h編集 |
12 | [root@ns fastforward-0.51]# make setup check ← fastforwardインストール |
18 | [root@ns fastforward-0.51]# cd ← fastforward展開先ディレクトリを抜ける |
20 | [root@ns ~]# rm -rf fastforward-0.51 ← fastforward展開先ディレクトリ削除 |
22 | [root@ns ~]# rm -f fastforward-0.51.tar.gz ← ダウンロードしたfastforward削除 |
24 | [root@ns ~]# chmod 0 /usr/bin/newaliases ← 旧newaliasesコマンド無効化→なかった |
26 | [root@ns ~]# mv /usr/bin/newaliases /usr/bin/newaliases.bak ← 旧newaliasesコマンドをリネーム→やってない |
28 | [root@ns ~]# ln -s /var/qmail/bin/newaliases /usr/bin/newaliases ← newaliasesコマンドをfastforwardに置換え |
30 | [root@ns ~]# newaliases ← /etc/aliasesのcdb形式データベース作成 |
32 | [root@ns ~]# ll /etc/aliases.cdb ← /etc/aliasesのcdb形式データベース作成確認 |
33 | -rw-r--r-- 1 root root 5093 11月 10 22:52 /etc/aliases.cdb |
35 | [root@ns ~]# echo "|/var/qmail/bin/fastforward -p -d /etc/aliases.cdb" > /var/qmail/alias/.qmail-default ← /etc/aliases.cdbをqmailが参照するように設定 |
/lib/libc.so.6: could not read symbols: 不正な値です
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
8.qmail設定
インストールが終わったのでqmailの設定をしていきます。
1 | [root@ns ~]# echo "10485760" > /var/qmail/control/databytes ← 送受信可能メールサイズを10MB=10*1024*1024に制限 |
4 | [root@ns ~]# touch /var/qmail/control/doublebounceto ← ダブルバウンスメール※は破棄する |
5 | ※ダブルバウンスメールとは、送信者・受信者ともに存在しないメールのこと |
9.Maildir形式のメールボックス作成
デフォルトでインストールされているsendmailのメール格納形式は共有ディレクトリ形式(「/var/spool/mail/ユーザ名」というファイルに全てのメールが蓄積されていく形式)だが、アクセス性能改善及びセキュリティ強化の観点からqmailデフォルトのMaildir形式へ移行します。
新規ユーザ追加時に自動でホームディレクトリにMaildir形式のメールボックスが作成されるようにする
1 | [root@ns ~]# rm -rf /etc/skel/Maildir |
3 | [root@ns ~]# /var/qmail/bin/maildirmake /etc/skel/Maildir |
記事は新規でqmailをインストールするのと、Postfix、Sedmailからの移行ではないため、既存ユーザーのメールデータなどの移行は載せておりません。
10.qmail起動
CGI等でメール通知に利用するsendmailコマンドをqmailに置換えます。
01 | [root@ns ~]# chmod 0 /usr/lib/sendmail ← 旧sendmailコマンド無効化 |
03 | [root@ns ~]# chmod 0 /usr/sbin/sendmail ← 旧sendmailコマンド無効化 |
05 | [root@ns ~]# mv /usr/lib/sendmail /usr/lib/sendmail.bak ← 旧sendmailコマンドをリネーム |
07 | [root@ns ~]# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak ← 旧sendmailコマンドをリネーム |
09 | [root@ns ~]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ← sendmailコマンドをqmailに置換え |
11 | [root@ns ~]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ← sendmailコマンドをqmailに置換え |
11.qmail起動スクリプト作成
01 | [root@ns ~]# cp /var/qmail/boot/home+df /var/qmail/rc |
02 | ← qmail起動コマンドサンプルを所定の場所へコピー※dot-forward利用する場合 |
04 | [root@ns ~]# cp /var/qmail/boot/home /var/qmail/rc |
05 | ← qmail起動コマンドサンプルを所定の場所へコピー※dot-forward利用しない場合 |
07 | [root@ns ~]# sed -i 's/Mailbox/Maildir\//g' /var/qmail/rc ← メールボックス形式をMaildirに変更 |
09 | [root@ns ~]# yum -y install tcsh ← cシェルインストール |
11 | [root@ns ~]# vi /etc/rc.d/init.d/qmail ← qmail起動スクリプト作成 |
16 | # chkconfig: 2345 80 30 |
17 | # description: qmail start/stop script |
19 | # Source function library. |
20 | . /etc/rc.d/init.d/functions |
22 | PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin |
24 | [ -f /var/qmail/rc ] || exit 0 |
28 | if [ -z $(/sbin/pidof qmail-send) ]; then |
29 | echo -n "Starting qmail" |
32 | csh -cf '/var/qmail/rc &' 2>&1 > /dev/null |
35 | tcpserver -qv -l0 -HR -u `id -u qmaild` -g `id -g qmaild` \ |
36 | -x /etc/tcp.smtp.cdb 0 smtp \ |
37 | qmail-smtpd `hostname` /bin/checkpassword /bin/true 2>&1|\ |
42 | [ $RETVAL = 0 ] && touch /var/lock/subsys/qmail |
45 | echo "qmail is already started" |
51 | if [ ! -z $(/sbin/pidof qmail-send) ]; then |
52 | echo -n "Shutting down qmail" |
53 | /bin/kill $(/sbin/pidof tcpserver) |
54 | /bin/kill $(/sbin/pidof qmail-send) |
55 | until [ -z $(/sbin/pidof qmail-send) ] && [ -z $(/sbin/pidof tcpserver) ]; do :; done |
57 | rm -f /var/lock/subsys/qmail |
59 | echo "qmail is not running" |
75 | if [ ! -z $(/sbin/pidof qmail-send) ] ; then |
77 | echo -n " `/sbin/pidof qmail-send`" |
78 | echo -n " `/sbin/pidof tcpserver`" |
79 | echo ") is running..." |
81 | echo "qmail is stopped" |
85 | echo "Usage: qmail {start|stop|restart|status}" |
91 | [root@ns ~]# chmod +x /etc/rc.d/init.d/qmail ← qmail起動スクリプトへ実行権限付加 |
12.qmail起動
qmailの起動ををします
1 | [root@ns ~]# /etc/rc.d/init.d/qmail start ← qmail起動 |
4 | [root@ns ~]# chkconfig qmail --add ← qmailをchkconfigへ追加 |
6 | [root@ns ~]# chkconfig qmail on ← qmail自動起動設定 |
8 | [root@ns ~]# chkconfig --list qmail ← qmail自動起動設定確認 |
9 | qmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← ランレベル2~5のonを確認 |
これで設定は終了になります。受信メールサーバーがPOP3なため、IMAPに関する設定は省いています。
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS