- 投稿日2009-11-25 (水)
- 更新日2010-09-22 (水) 21:42
- サーバー構築関連
qmail(smtpauth対応) + vpopmail + ezml + autorespond な環境でメールサーバーを構築します。
事前作業
デフォルトで組み込まれているメールプログラムを削除します。/etc/init.d/exim4 stop update-rc.d -f exim4 remove apt-get remove exim4
qmail用のディレクトリを作成
mkdir /var/qmail
qmail は複数のプログラムが動作してメールサーバーを構成しています。
これらのプログラムを実行するユーザーとグループを作成する必要がありますので、
インストールに必要なグループ・ユーザー作成します
groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias -s /sbin/nologin useradd -g nofiles -d /var/qmail qmaild -s /sbin/nologin useradd -g nofiles -d /var/qmail qmaill -s /sbin/nologin useradd -g nofiles -d /var/qmail qmailp -s /sbin/nologin groupadd qmail useradd -g qmail -d /var/qmail qmailq -s /sbin/nologin useradd -g qmail -d /var/qmail qmailr -s /sbin/nologin useradd -g qmail -d /var/qmail qmails -s /sbin/nologin
qmail(smtpauth対応)インストール
qmailのソースと各種パッチをダウンロードしてきます。基本的にソースは/usr/local/srcへ保存しています
cd /usr/lcoal/src/ wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz wget ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch wget http://www.qmail.org/qmail-smtpd-relay-reject wget http://www.ckdhr.com/ckd/qmail-103.patch
ソースを展開します。
cd usr/lcoal/src/ tar xvfz qmail-1.03.tar.gz tar xvfz qmail-smtpd-auth-0.31.tar.gz
展開したqmailのフォルダへ移動し各種パッチをあてます。
cd qmail-1.03 patch < ../qmail-date-localtime.patch patch < ../qmail-smtpd-relay-reject patch < ../qmail-103.patch
上から
日本標準時間対応パッチ
不正中継拒否対応パッチ施行
DNSに関するUDPパケットが512バイトを超えると処理できなくなる問題の修正パッチ
をあてています。
cp ../qmail-smtpd-auth-0.31/*.* ./ patch < auth.patch
SMTP-Auth対応パッチをあてます。
これでmake、、、としたいところですが、この状態でmakeすると
make: *** [auto-str] error 1
というエラーが1件出て正常にmakeできません。
これをなくす為に
vi error.hで、以下のように変更
extern int errno;
↓変更
#include<errno.h>この後、makeする。
./config-fastの後には利用するメールのドメイン名を入力します。
ホストネームどおりなら ./config-fast `hostname` でもいいと思います。
ここで設定した内容は/var/qmail/control/内の設定ファイル内へ記述されています
make make setup make check ./config-fast hogehoge.com
ルートのメールアドレスを設定します。
水色の部分を任意のメールアドレスへ変更して下さい。
cd /var/qmail/alias touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 .qmail* echo "root@hogehoge.com" > .qmail-root echo "root@hogehoge.com" > .qmail-mailer-daemon echo "root@hogehoge.com" > .qmail-root
起動スクリプト(rcファイル)を作成します。
qmailではデフォルトではmbox形式のメールボックスを使用するようになっている為、
maildir形式で使用するよう記述します。
vi /var/qmail/rc
以下のように記述
#!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail
tcpserverのインストール
メールリレー(POPなど)を行えるようにする為にtcpserverをインストールします。tcpserverはTCP接続要求を受け付け、メールサーバへ渡す機能を持っています。
途中パッチをあてていますがパッチをあてないと: undefined reference to `errno’といったエラーがでます。
cd /usr/local/src wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz wget http://www.stackasterisk.jp/tech/systemConstruction/qmail01/ucspi-tcp-glibc.patch tar zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 patch < ../ucspi-tcp-glibc.patch make make setup check
daemontoolsのインストール
multilog取得のためdaemontoolsをインストールしますcd /usr/local/src wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar zxvf daemontools-0.76.tar.gz cd admin/daemontools-0.76/
このままではまたしてもerrnoのエラーが出るので以下を編集します
vi src/error.h
以下のように変更
extern int errno;
↓以下のように変更
#include<errno.h>インストール
package/install mkdir /var/log/qmail chown qmaill:nofiles /var/log/qmail chmod 755 /var/log/qmail
vpopmailのインストール
vpopmailは qmailに対応した /etc/passwd を使わないバーチャルドメインメール、POPアカウントの自動生成、保守プログラムです。
※vpopmail-5.4.28では通常どうり動作するのですがsyslogへ
vdelivermail[xxxxx]: segfault at 10 ip xxxxxxxxx sp xxxxxxx error 4 in vdelivermail
といったエラーが頻発した為、vpopmail-5.4.25を使用します
こちらの方と同じ状況の模様です→[vpopmail]セグメンテーション違反
vpopmail-5.4.25はもうダウンロードできないので
こちらへアップロードしておきました → vpopmail-5.4.25
あらかじめ vchkpw というグループと vpopmail というユーザーを登録して、
/home/vpopmail を作成しておきます。
groupadd vchkpw useradd -g vchkpw vpopmail mkdir /home/vpopmail mkdir /home/vpopmail/etc chown -R vpopmail.vchkpw /home/vpopmail
SMTPリレーの制限設定
cd /home/vpopmail/etc touch tcp.smtp chmod 600 tcp.smtp echo "127.0.0.1:allow,RELAYCLIENT=\"\"" >> tcp.smtp echo ":allow" >> tcp.smtp tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
vpopmail-5.4.25のインストール
cd /usr/local/src tar zxvf http://www.ahref.org/tech/image/vpopmail-5.4.25.tar.gz cd vpopmail-5.4.25
CRAM-MD5認証時エラーへの対処
vi vchkpw.c以下のように編集します(2か所)
hmac_md5( (unsigned char *) challenge, strlen(challenge), (unsigned char *) password, strlen(password), digest); ↓※変更 hmac_md5( (unsigned char *) response, strlen(response), (unsigned char *) password, strlen(password), digest); return(strcmp(digascii,response)); ↓※変更 return(strcmp(digascii,challenge));
configureとmake 、makeインストール
./configure --enable-qmail-ext=n --enable-logging=y \ --enable-tcpserver-path=/home/vpopmail/etc/tcp.smtp \ --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \ --enable-log-name=vpopmail make make install-strip
qmailadminのインストール
①autorespondインストール & 日本語化qmail の自動応答機能ツールである autorespond をインストールします。
cd /usr/local/src wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz cd autorespond-2.0.5
デフォルトの状態では自動返信機能の日本語がうまく利用できないため。
autorespond.c編集
vi autorespond.c以下のように編集
static char *binqqargs[2] = { "bin/qmail-queue", 0 }; ↓修正 static char *binqqargs[2] = { "bin/qmail-queue.iso-2022-jp", 0 }; fprintf(fdm,"Date: %u %s %u %02u:%02u:%02u -0000\nMessage-ID: <%lu.%u.blah>\n" ,dt->tm_mday,montab[dt->tm_mon],dt->tm_year+1900,dt->tm_hour,dt->tm_min,dt->tm_sec,msgwhen,getpid() ); fprintf(fdm,"Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" ); ← 追加 mfp = fopen( msg, "rb" );
以上の修正が完了したらインストールします。
make && make install
qmail-queue.iso-2022-jpファイルを作成
vi /var/qmail/bin/qmail-queue.iso-2022-jp
以下のように編集
#!/bin/bash NKF="/usr/bin/nkf" PERL="/usr/bin/perl" QMAILQUEUE="/var/qmail/bin/qmail-queue" ${PERL} -pe 's/\n/\\n/g' |\ ${PERL} -pe 's/From:.*?\\n\\n//' |\ ${PERL} -pe 's/-------- Original Message --------.*$//' |\ ${PERL} -pe 's/\\n/\n/g' |\ ${NKF} -j |\ ${QMAILQUEUE}
パーミッションの変更など
chmod 711 /var/qmail/bin/qmail-queue.iso-2022-jp chown vpopmail.qmail /var/qmail/bin/qmail-queue.iso-2022-jp
②ezmlmによるメーリングリストの構築
cd /usr/local/src wget http://cr.yp.to/software/ezmlm-0.53.tar.gz tar zxvf ezmlm-0.53.tar.gz wget http://www.ezmlm.org/archive/5.1.2/ezmlm-idx-5.1.2.tar.gz tar zxvf ezmlm-idx-5.1.2.tar.gz
mv -f ezmlm-idx-5.1.2/* ezmlm-0.53/
パッチをあてます
cd ezmlm-0.53 patch < idx.patch
インストール
echo ja > conf-lang echo c:::644:/ja/:charset:lang/ja/charset >> ETC make && make setup
qmailadminインストール
ウェブインターフェース上からユーザの追加や削除などが行えるようになります。qmailadminへのアクセスはhttp://ホスト名/cgi-bin/qmailadminにてアクセスできます。
cd /usr/local/src wget http://jaist.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.11.tar.gz tar zxvf qmailadmin-1.2.11.tar.gz cd qmailadmin-1.2.11
インストール
./configure --enable-htmldir=/usr/local/apache2/htdocs/qmailadmin \ --enable-imagedir=/usr/local/apache2/htdocs/qmailadmin/images \ --enable-imageurl=/qmailadmin/images \ --enable-cgibindir=/usr/local/apache2/cgi-bin \ --enable-ezmlm-mysql=n
パス等は任意で変更して下さい↑
make && make install-strip
以上でインストールは完了です。
確認
・メールのテストmail xxxx@hogehoge.com
cc:
title:test
testmail
(CTRL+D)
でメールが送信できるかチェック・vpopmail+qmailadminのテスト
実際に使用するドメインでメールアドレスを作ってみる
/home/vpopmail/bin/vadddomain hogehoge.com
で /home/vpopmail/domains/へhogehoge.comが追加されているか。
http://ホスト名/cgi-bin/qmailadmin へ接続し上記で作成したアカウントでログインできるか。
ユーザー:postmaster
ドメイン:hogehoge.com
パスワード:******
- 次の記事→ postgresのインストール
- 前の記事→ 基本パッケージ取得(Debian etch)
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://www.ahref.org/tech/server/server-default/525.html/trackback
- この記事へのリンク
- エーエイチレフ linuxサーバー技術情報 からの記事 qmailを使ったメールサーバーの構築















関連記事