メールサーバーの構築

ホームへ戻る   Postfix+Dovecot編   qmail+Courier-IMAP編

更新日:07/9/5

Postfix+Dovecotとqmail+Courier-IMAPについて、どのようにして、構築したかを記していきます。
まずは、本サーバーで採用しているqmail+Courier-IMAPを、どのように構築していったかを記述していきたいと思います。
次の条件を満たすメールサーバーを構築するものとします。
@、日本標準時間対応パッチを当てはめる。
A、SMTP-Auth対応パッチを当てはめる。
B、不正中継のパッチを当てはめる。
 
参考にしたサイト:CentOSで自宅サーバー構築それゆけLinux
 
   
qmailのインストール <<TOP

1,qmailに必要なユーザとグループを作成する。

[root@server ~]# mkdir /var/qmail ← qmailインストールディレクトリ作成
[root@server ~]# groupadd nofiles ← nofilesグループ作成
[root@server ~]# useradd -g nofiles -s /sbin/nologin alias -m -d /var/qmail/alias -k /dev/null ← aliasユーザ作成
[root@server ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmaild ← qmaildユーザ作成
[root@server ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmaill ← qmaillユーザ作成
[root@server ~]# useradd -g nofiles -d /var/qmail -s /sbin/nologin -M qmailp ← qmailpユーザ作成
[root@server ~]# groupadd qmail ← qmailグループ作成
[root@server ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmailq ← qmailqユーザ作成
[root@server ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmailr ← qmailrユーザ作成
[root@server ~]# useradd -g qmail -d /var/qmail -s /sbin/nologin -M qmails ← qmailsユーザ作成

2,qmailインストール

最新版はダウンロードサイトで確認してください。
[root@server ~]# wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ← qmailダウンロード
	
--16:08:30--  ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
           => `qmail-1.03.tar.gz'
ftp.jp.qmail.org をDNSに問いあわせています... 202.41.218.243
ftp.jp.qmail.org|202.41.218.243|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /qmail ... 完了しました。
==> PASV ... 完了しました。    ==> RETR qmail-1.03.tar.gz ... 完了しました。

    [  <=>                                               ] 220,668      631.37K/s             

16:08:31 (630.84 KB/s) - `qmail-1.03.tar.gz' を保存しました [220668]

[root@server ~]# wget http://mirror.averse.net/pub/FreeBSD/ports/local-distfiles/sada/qmail-date-localtime.patch.gz
                    ↑ ← 日本標準時間対応パッチダウンロード
--19:06:18--  http://mirror.averse.net/pub/FreeBSD/ports/local-distfiles/sada/qmail-date-localtime.patch.gz
           => `qmail-date-localtime.patch.gz'
mirror.averse.net をDNSに問いあわせています... 203.127.221.98
mirror.averse.net|203.127.221.98|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 741 [application/octet-stream]

100%[===========================================================================>] 741           --.--K/s             

19:06:19 (30.72 MB/s) - `qmail-date-localtime.patch.gz' を保存しました [741/741]

[root@server ~]# wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
          ↑ SMTP-Auth対応パッチダウンロード

--19:09:55--  http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
           => `qmail-smtpd-auth-0.31.tar.gz'
members.elysium.pl をDNSに問いあわせています... 212.106.4.50
members.elysium.pl|212.106.4.50|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 8,798 (8.6K) [application/x-gzip]

100%[===========================================================================>] 8,798         13.70K/s             

19:09:57 (13.68 KB/s) - `qmail-smtpd-auth-0.31.tar.gz' を保存しました [8798/8798]

[root@server ~]# wget http://www.qmail.org/qmail-smtpd-relay-reject

         ↑ 不正中継拒否対応パッチダウンロード

--19:11:50--  http://www.qmail.org/qmail-smtpd-relay-reject
           => `qmail-smtpd-relay-reject'
www.qmail.org をDNSに問いあわせています... 192.203.178.37
www.qmail.org|192.203.178.37|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,230 (1.2K) [text/plain]

100%[===========================================================================>] 1,230         --.--K/s             

19:11:51 (32.58 MB/s) - `qmail-smtpd-relay-reject' を保存しました [1230/1230]

[root@server ~]# tar zxvf qmail-1.03.tar.gz ← qmail展開

[root@server ~]# gunzip qmail-date-localtime.patch.gz ← 日本標準時間対応パッチ展開

[root@server ~]# mv qmail-date-localtime.patch qmail-1.03 ← 日本標準時間対応パッチをqmail展開先ディレクトリへ移動

[root@server ~]# tar zxvf qmail-smtpd-auth-0.31.tar.gz ← SMTP-Auth対応パッチ展開

[root@server ~]# /bin/mv qmail-smtpd-auth-0.31/* qmail-1.03 ← SMTP-Auth対応パッチをqmail展開先ディレクトリへ移動

[root@server ~]# mv qmail-smtpd-relay-reject qmail-1.03 ← 不正中継拒否対応パッチをqmail展開先ディレクトリへ移動

[root@server ~]# cd qmail-1.03 ← qmail展開先ディレクトリへ移動

[root@server qmail-1.03]# patch < qmail-date-localtime.patch ← 日本標準時間対応パッチ施行

patching file date822fmt.c

[root@server qmail-1.03]# patch < auth.patch ← SMTP-Auth対応パッチ施行

patching file Makefile
patching file TARGETS
patching file qmail-smtpd.8
patching file qmail-smtpd.c

[root@server qmail-1.03]# patch < qmail-smtpd-relay-reject ← 不正中継拒否対応パッチ施行

patching file qmail-smtpd.c
Hunk #1 succeeded at 56 (offset 3 lines).
Hunk #2 succeeded at 226 (offset 9 lines).
Hunk #3 succeeded at 277 (offset 11 lines).
[root@server qmail-1.03]# vi error.h ← error.h編集
extern int errno;
↓
#include ← 変更

[root@server qmail-1.03]# make setup check ← qmailインストール
・
・
・
./install
./instcheck

[root@server qmail-1.03]# ./config-fast `hostname` ← qmail初期設定

Your fully qualified host name is server.arisonsvr.org.
Putting server.arisonsvr.org into control/me...
Putting arisonsvr.org into control/defaultdomain...
Putting arisonsvr.org into control/plusdomain...
Putting server.arisonsvr.org into control/locals...
Putting server.arisonsvr.org into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to server.arisonsvr.org.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

[root@server qmail-1.03]# echo `hostname -d` >> /var/qmail/control/rcpthosts ← 自ドメイン名を受信ドメイン名として追加

[root@server qmail-1.03]# echo `hostname -d` >> /var/qmail/control/locals ← 自ドメイン名をローカルドメイン名として追加

[root@server qmail-1.03]# cd ← qmail展開先ディレクトリを抜ける

[root@server ~]# echo "MANPATH /var/qmail/man" >> /etc/man.config ← manコマンドでqmailコマンドのマニュアル
                                                                          を参照できるようにする

[root@server ~]# rm -rf qmail-smtpd-auth-0.31 ← SMTP-Auth対応パッチ展開先ディレクトリ削除

[root@server ~]# rm -f qmail-smtpd-auth-0.31.tar.gz ← ダウンロードしたSMTP-Auth対応パッチ削除

[root@server ~]# rm -rf qmail-1.03 ← qmail展開先ディレクトリ削除

[root@server ~]# rm -f qmail-1.03.tar.gz ← ダウンロードしたqmail削除
    

上記では、qmailの制御ファイル に自ドメインを登録しています。

 
   
◆checkpasswordインストール <<TOP
   

SMTP認証、POP認証に使用するcheckpasswordをインストールする

最新版は、ダウンロードサイトで確認する。

[root@server ~]# wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz ← checkpasswordダウンロード
	
--15:49:27--  http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
           => `checkpassword-0.90.tar.gz'
cr.yp.to をDNSに問いあわせています... 131.193.178.160
cr.yp.to[131.193.178.160]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 15,631 [application/x-gzip]

100%[=================================================>] 15,631        44.92K/s

15:49:27 (44.78 KB/s) - `checkpassword-0.90.tar.gz' saved [15,631/15,631]

[root@server ~]# tar zxvf checkpassword-0.90.tar.gz ← checkpassword展開

[root@server ~]# cd checkpassword-0.90 ← checkpassword展開先ディレクトリへ移動

[root@server checkpassword-0.90]# vi error.h ← error.h編集

extern int errno;
↓
#include ← 変更

[root@server checkpassword-0.90]# make && make setup check ← checkpasswordインストール
・
・
・
./install
./instcheck

[root@server checkpassword-0.90]# cd ← checkpassword展開先ディレクトリを抜ける

[root@server ~]# rm -rf checkpassword-0.90 ← checkpassword展開先ディレクトリ削除

[root@server ~]# rm -f checkpassword-0.90.tar.gz ← ダウンロードしたcheckpassword削除

[root@server ~]# chown root:nofiles /bin/checkpassword ← checkpasswordの所有者、所有グループ変更

[root@server ~]# chmod 4750 /bin/checkpassword ← checkpasswordが所有者権限で動作するように設定
      
 
   
◆tcpserverのインストール <<TOP
   

qmailへのSMTP接続制御を行うため、tcpserverが含まれたucspi-tcpをインストールする。

[root@server ~]# wget ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz← ucspi-tcpダウンロード
	
	--17:49:09--  ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz
=> `ucspi-tcp-0.88.tar.gz'
ftp.jp.qmail.org をDNSに問いあわせています... 202.41.218.243
ftp.jp.qmail.org|202.41.218.243|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /qmail ... 完了しました。
==> PASV ... 完了しました。    ==> RETR ucspi-tcp-0.88.tar.gz ... 完了しました。      
[ <=>                                                                        ] 53,019        --.--K/s
17:49:10 (371.23 KB/s) - `ucspi-tcp-0.88.tar.gz' を保存しました [53019]

[root@server ~]#tar zxvf ucspi-tcp-0.88.tar.gz ← ucspi-tcp展開

[root@server ~]# cd ucspi-tcp-0.88 ← ucspi-tcp展開先ディレクトリへ移動

[root@server ucspi-tcp-0.88]# vi error.h ← error.h編集
extern int errno;
				  ↓
#include<errno.h> ← 変更(エラー対策)
     
[root@SERVER ucspi-tcp-0.88]# make setup check ← ucspi-tcpインストール
・ 
・
・
./install
./instcheck

[root@SERVER ucspi-tcp-0.88]# cd ← ucspi-tcp展開先ディレクトリを抜ける

[root@SERVER ~]# rm -rf ucspi-tcp-0.88 ← ucspi-tcp展開先ディレクトリ削除

[root@SERVER ~]# rm -f ucspi-tcp-0.88.tar.gz ← ダウンロードしたucspi-tcp削除

[root@SERVER ~]# echo '127.:allow,RELAYCLIENT=""' > /etc/tcp.smtp ← 中継許可ホストとして自ホストを/etc/tcp.smtpへ登録

[root@SERVER ~]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp ← /etc/tcp.smtpのcdb形式データベース作成
 
   
◆dot-forwardインストール <<TOP