FC2ブログ


全件表示TopRSSAdmin
qmail + vpopmail インストールと設定
2005 / 05 / 29 ( Sun )

●概要

 qmail + vpopmail を使用して、メールサーバを構築する。
 qmailだけでも、メールサーバとして使用することはできる。
 ただ、一つのメールサーバで、二つ以上のドメイン名を使用したい場合は、vpopmailが必要。

●インストールの環境

サーバ名(FQDN):example.com
          :hogehoge.jp
作業ユーザ   :user(/home/user)
OS        :RedHat系(9以上対応)
ドメイン      :example.com
          :hogehoge.jp


●手順1:ダウンロード

☆使用するソフトウェア

・qmailのみでメールサーバを構築する場合

  qmail-1.03.tar.gz
  qmail-date-localtime.patch(日付表示を日本時間で表示するためのパッチ)
  qmail-glibc.patch(RedHat9以上)
  ucspi-tcp-0.88.tar.gz(tcpserver)
  ucspi-tcp-glibc.patch(RedHat9以上)
  checkpassword-0.90.tar.gz(pop認証)
  checkpassword-glibc.patch(RedHat9以上)

・qmail + vpopmail でメールサーバを構築する場合

  qmail-1.03.tar.gz
  qmail-date-localtime.patch
  qmail-glibc.patch(RedHat9以上)
  ucspi-tcp-0.88.tar.gz
  ucspi-tcp-glibc.patch(RedHat9以上)
  vpopmail-5.4.0.tar.gz


●手順2:qmail-1.03のインストールと設定

 root# mkdir /var/qmail

 root# /usr/sbin/groupadd nofiles -g 1001

 root# /usr/sbin/useradd alias -g nofiles -d /var/qmail/alias -s /bin/false -u 101

 root# /usr/sbin/useradd qmaild -g nofiles -d /var/qmail -s /bin/false -u 102

 root# /usr/sbin/useradd qmaill -g nofiles -d /var/qmail -s /bin/false -u 103

 root# /usr/sbin/useradd qmailp -g nofiles -d /var/qmail -s /bin/false -u 104

 root# /usr/sbin/groupadd qmail -g 1002

 root# /usr/sbin/useradd qmailq -g qmail -d /var/qmail -s /bin/false -u 105

 root# /usr/sbin/useradd qmailr -g qmail -d /var/qmail -s /bin/false -u 106

 root# /usr/sbin/useradd qmails -g qmail -d /var/qmail -s /bin/false -u 107

 user$ pwd
 /home/user

 user$ gzip -d qmail-1.03.tar.gz

 user$ tar xvf qmail-1.03.tar

 user$ cd qmail-1.03

 user$ vi conf-cc
 --------<ここから>-------
 gcc -O2                          #⇒  cc  を  gcc  に

 This will be used to compile .c files.
 --------<ここまで>-------


 user$ vi conf-ld
 --------<ここから>-------
 gcc -s                           #⇒  cc  を  gcc  に

 This will be used to link .o files into an executable.
 --------<ここまで>-------


 user$ patch -s -p1 < ../qmail-date-localtime.patch
 ⇒日付表示を日本時間で表示するためのパッチ適用

 * RedHat9については以下のパッチも適用。(適用しないとmake時エラー発生する)
 user$ patch -s < ../qmail-glibc.patch

 user$ make

 user$ su
 password:(rootのパスワード入力)

 root# make man

 root# make setup check
 ./install
 ./instcheck
 ⇒ /var/qmail 配下にインストールされていることを確認。

・ドメイン名の設定

 qmailのソースディレクトリ上で次のコマンドを入力。
 メールサーバのFQDNが example.com の場合以下のコマンドを入力

 root# pwd
 /home/user/qmail-1.03

 root# ./config-fast example.com
 Your fully qualified host name is example.com.
 Putting example.com into control/me...
 Putting example.com into control/defaultdomain...
 Putting example.com into control/plusdomain...
 Putting example.com into control/locals...
 Putting example.com into control/rcpthosts...
 Now qmail will refuse to accept SMTP messages except to example.com.
 Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

・root宛のメールを別ユーザに変更

 qmailのデフォルトでは、root宛のメールは到着しない。
 root宛のメールを別のユーザに転送する方法で、メールを受け取るようにする。
 (転送ユーザが"user@example.com"の場合)

 root# cd /var/qmail/alias
 root# echo "&user@example.com" > .qmail-root
 root# echo "&user@example.com" > .qmail-postmaster
 root# echo "&user@example.com" > .qmail-mailer-daemon
 root# chmod 0644 .qmail-*

・起動スクリプトの作成

 root# cd /home/user/qmail-1.03

 root# cp home /var/qmail/rc
   
 ⇒ ソースディレクトリのhomeファイルを/var/qmail/rcファイルとしてコピー

 rcスクリプトを以下のように編集

root# vi /var/qmail/rc
--------<ここから>-------
#!/bin/sh

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

exec env - PATH="/var/qmail/bin:$PATH"
qmail-start ./Maildir/ splogger qmail          #←  ./Mailbox  を  ./Maildir/  に
--------<ここまで>-------

・Maildirのデフォルト設定(vpopmailを設定する場合は設定不要)

 メールアドレスはuseraddコマンドでユーザを追加すると自動的に作成される。
 しかしデフォルトのままではmbox形式に対応したメールアドレスが作成されるため、
 maildir形式に対応できるよう変更しておく。

 root# /var/qmail/bin/maildirmake /etc/skel/Maildir

   root# echo ./Maildir/ > /etc/skel/.qmail

 すでに存在しているメールアドレスを、maildir方式に以降したい場合は以下を実行する。
 "USER"は各ユーザ名に読み替えてください。

 root# /var/qmail/bin/maildirmake /home/user/Maildir

 root# echo ./Maildir/ >> /home/user/.qmail

 root# chown -R user /home/user/Maildir


●手順3:ucspi-tcp(tcpserver)のインストール

 tcpserver経由でqmailを起動することでメールのリレー制御を行うことが可能。(不正中継を防ぐことができる)
 特定のIPアドレスからのメールリレーを受け付けるために、制御ファイルを作成します。
 

 user$ tar zxvf ucspi-tcp-0.88.tar.gz
 user$ cd ucspi-tcp-0.88

 ※  RedHat9のみ次のパッチを適用

 user$ patch -s < ../ucspi-tcp-glibc.patch
 The text leading up to this was:
 --------------------------
 |diff -u ucspi-tcp-0.88.old/error.h ucspi-tcp-0.88/error.h
 |--- ucspi-tcp-0.88.old/error.h2000-03-18 09:18:20.000000000 -0600
 |+++ ucspi-tcp-0.88/error.h2003-01-08 13:39:12.000000000 -0600
 --------------------------
 File to patch: error.h
 patch unexpectedly ends in middle of line


 user$ make
 user$ su
 root# make setup check
 ./install
./instcheck

・/etc/tcp.smtpを以下のように新規作成します。


 root# vi /etc/tcp.smtp
 --------<ここから>-------
 127.0.0.1:allow,RELAYCLIENT=""
 192.168.:allow,RELAYCLIENT=""
 :allow
 --------<ここまで>-------

 この設定は、192.168.***とローカルホストからのメールリレー(SMTP転送)を許可する
 設定になる。ファイルを作成したら以下のコマンドを実行して、制御ファイルを作成します。後ほどqmail起動時にこのファイルを指定することになる。

 # /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp </etc/tcp.smtp<br>


●手順4:checkpasswordのインストール(vpopmailを設定する場合は設定不要)

 POPでのアクセス時にパスワードをチェックするように、checkpasswordをインストールする。

 user$ tar zxvf checkpassword-0.90.tar.gz

 user$ cd checkpassword-0.90

※  RedHat9のみ次のパッチを適用

 user$ patch -s < ../checkpassword-glibc-patch
 The text leading up to this was:
 --------------------------
 |diff -u checkpassword-0.90.old/error.h checkpassword-0.90/error.h
 |--- checkpassword-0.90.old/error.h2000-12-23 00:40:46.000000000 -0600
 |+++ checkpassword-0.90/error.h2003-01-14 00:49:57.000000000 -0600
 --------------------------
 File to patch: error.h
 patch unexpectedly ends in middle of line

 user$ make
 user$ su
 passwd
   user$ make setup check
 ./install
 ./instcheck


●手順5:vpopmailのインストールと設定(vpopmailを設定する場合は必須、qmailのみなら不要)

 vpopmailとは、OSのユーザを使わずにmail専用のユーザを作成することができる。
 また、2つ以上の異なるドメイン名(例えば、foobar.comとhogehoge.jp)を同時に
 使用することができる。

 user$ tar xvfz vpopmail-5.4.0.tar.gz

 user$ cd vpopmail-5.4.0

 user$ su
 password:[rootユーザのパスワード入力]

 root# /usr/sbin/groupadd -g 89 vchkpw

 root# /usr/sbin/useradd -g vchkpw -u 89 -d /var/vpopmail vpopmail
 ⇒ vpopのインストール先を /var/vpopmail にする。

 root# ./configure --enable-roaming-users=y
 ⇒ rootユーザで実行しないとエラーが発生する。

 root# make

 root# make install-strip
 ⇒ インストール完了

・ バーチャルドメインの追加

 root# cd /var/vpopmail/bin

 root# ./vadddomain example.com
 Please enter password for postmaster:[バーチャルドメインexample.com管理者パスワード入力]
 enter password again:[再入力]

  ⇒二つ目のバーチャルドメインの設定があるなら以下のように続いて登録

 root# ./vadddomain hogehoge.jp
 Please enter password for postmaster:[バーチャルドメインhogehoge.jp管理者パスワード入力]
 enter password again:[再入力]

* vadddomainコマンドにより、次のファイルに設定が追加されます。
 設定ファイルが存在しない場合は自動的に作成されます。

---------------------------------------------------------------
/var/qmail/control/locals
/var/qmail/control/rcpthosts
(rcphostsが50行以上の場合は/var/qmail/control/morercpthostsになる)
/var/qmail/control/virtualdomains
/var/qmail/users/assign
/var/qmail/users/cdb
---------------------------------------------------------------

* 次のファイルやディレクトリは新規に作成されます。

---------------------------------------------------------------
/var/vpopmail/domains/example.jp
/var/vpopmail/domains/example.jp/postmaster/Maildir
/var/vpopmail/domains/example.jp/vpasswd
/var/vpopmail/domains/example.jp/vpasswd.cdb
---------------------------------------------------------------

・バーチャルドメインの削除

 vadddomainコマンドで作成したファイルやディレクトリ、追加された設定内容は
 バックアップされることなしに削除される。バーチャルユーザー宛に届いている
 メールもMaildirごと削除されるので、vdeldomainコマンドの使用には注意が必要。

 root# cd /var/vpopmail/bin
 root# ./vdeldomain hogehoge.jp


・バーチャルユーザーの追加

 "@" 以降のドメインが、登録されたものでない場合はエラーになる。

 root# cd /var/vpopmail/bin
 root# ./vadduser info@example.com
 Please enter password for info@example.com:
 enter password again:

 * ここで設定したパスワードを変更する場合は、vpasswdコマンドを使用します。

 root# ./vpasswd info@example.com


・バーチャルユーザーの削除

 root# cd /var/vpopmail/bin
 root# ./vdeluser info@example.com


●手順6:起動スクリプトの作成

・qmailのみ使用する場合(example.comの箇所をサーバのFQDNを入力)

# vi /etc/rc.d/init.d/qmail
--------<ここから>-------
#!/bin/sh

[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin

case "$1" in
    start)
        echo -n "Starting... qmail"
        csh -cf '/var/qmail/rc &'

        /usr/local/bin/tcpserver -H -R -l example.com -v -x
        /etc/tcp.smtp.cdb -u 102 -g 1001 0 smtp
        /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &

        /usr/local/bin/tcpserver -H -R -l example.com -v 0 pop3
        /var/qmail/bin/qmail-popup example.com
        /bin/checkpassword
        /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &

        touch /var/lock/qmail
        ;;
    stop)
        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
        rm -f /var/lock/qmail
        ;;
    *)
        echo "Usage: "$0" {start|stop}"
        exit 1
esac
exit 0
--------<ここまで>-------


・qmail + vpopmail を使用する場合(example.comの箇所をサーバのFQDNを入力)

# vi /etc/rc.d/init.d/qmail
--------<ここから>-------
#!/bin/sh

[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin

case "$1" in
    start)
        echo -n "Starting... qmail"
        csh -cf '/var/qmail/rc &'

        /usr/local/bin/tcpserver -H -R -l example.com -v -x /etc/tcp.smtp.cdb -u 102 -g 1001 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &

        /usr/local/bin/tcpserver -H -R -l example.com -v 0 pop3
        /var/qmail/bin/qmail-popup example.com
        /var/vpopmail/bin/vchkpw
        /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &

        touch /var/lock/qmail
        ;;
    stop)
        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
        rm -f /var/lock/qmail
        ;;
    *)
        echo "Usage: "$0" {start|stop}"
        exit 1
esac
exit 0
--------<ここまで>-------

・実行権を与える。

# chown 755 /etc/rc.d/init.d/qmail

#----追加 2005/10/13 ------#
root# chmod 0 /usr/sbin/sendmail
root# mv /usr/sbin/sendmail /usr/sbin/sendmail-old
root# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
#--------------------------#

・OS起動時に起動するように設定

 # mkdir /etc/rc.d/rc0.d/stopd
 # mkdir /etc/rc.d/rc1.d/stopd
 # mkdir /etc/rc.d/rc2.d/stopd
 # mkdir /etc/rc.d/rc3.d/stopd
 # mkdir /etc/rc.d/rc4.d/stopd
 # mkdir /etc/rc.d/rc5.d/stopd

 # mv /etc/rc.d/rc0.d/K30sendmail /etc/rc.d/rc0.d/stopd/
 # mv /etc/rc.d/rc1.d/K30sendmail /etc/rc.d/rc1.d/stopd/
 # mv /etc/rc.d/rc2.d/S80sendmail /etc/rc.d/rc2.d/stopd/
 # mv /etc/rc.d/rc3.d/S80sendmail /etc/rc.d/rc3.d/stopd/
 # mv /etc/rc.d/rc4.d/S80sendmail /etc/rc.d/rc4.d/stopd/
 # mv /etc/rc.d/rc5.d/S80sendmail /etc/rc.d/rc5.d/stopd/

    
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc0.d/K30qmail
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc1.d/K30qmail
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S80qmail
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S80qmail
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc4.d/S80qmail
 # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S80qmail


●手順7: 動作確認

qmailを起動して、メールの送信および受信ができるか確認。

 # /etc/rc.d/init.d/qmail start
 # exit

・コマンドで確認

 echo to : ktmishi@hogehogehoge.co.jp | /var/qmail/bin/qmail-inject

  ktmishi@hogehogehoge.co.jp 宛てにメールが届けばsmtpはOK

 


・メーラーを使って確認

*qmailのみの場合

 smtp サーバ :example.com ⇒ /etc/rc.d/init.d/qmail でsmtpで設定したしたFQDN
 pop  サーバ :example.com ⇒ /etc/rc.d/init.d/qmail でpopで設定したFQDN
 pop3ユーザ  :user   ⇒ OS上で使用しているユーザ名
 pop3 password :[OS上で使用しているパスワード]
 メールアドレス :user@example.com

*qmail+vpopmailの場合

 smtp サーバ :example.com ⇒ 名前解決ができているドメイン名で、vpopmailの設定で登録したドメイン名
 pop  サーバ :example.com ⇒ 名前解決ができているドメイン名で、vpopmailの設定で登録したドメイン名
 pop3ユーザ  :info@example.com ⇒vpopmailで追加したユーザ名。(必ず"@"以降もつけること)
 pop3 password :[vpopmailで設定したパスワード]
 メールアドレス :info@example.com

 

 これで、メールの送受信ができれば、qmailのインストールと設定は完了。

 



02 : 16 : 31 | トラックバック(0) | コメント(0) | page top↑
<<WebDAVを使ったファイルサーバの構築 | ホーム | エラー発生 - 新規ファイルシステム作成のための有効なデバイスが見つかりません。>>
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://redhatman.jp/tb.php/29-0393cf3a
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |