概要
「今時qmailかよ」っていう人もいるかもしれませんが、長年qmailサーバを組んで来て不都合を感じたことがないので、このまま定年までこれで行けるんじゃないかと思っています(笑)
それで、CentOS 6 64bitに対応したqmailのインストール方法を書いておこうと思います。
メールサーバに必要なファイル
qmail
qmail-smtpd-auth-0.31
tcpserver
vpopmail
autorespond-2.0.5
ezmlm-0.53-idx-0.41(idx込みのezmlm)
qmailadmin
あと、パッチ多数。それぞれのステップでダウンロード先を載せます。
qmailのインストール
■ディレクトリを作る
mkdir /var/qmail
■グループの作成
groupadd nofiles groupadd qmail
■ユーザーの作成
useradd -g nofiles -d /var/qmail -s /bin/false qmaild useradd -g nofiles -d /var/qmail -s /bin/false qmaill useradd -g nofiles -d /var/qmail -s /bin/false qmailp useradd -g nofiles -d /var/qmail/alias -s /bin/false alias useradd -g qmail -d /var/qmail -s /bin/false qmailq useradd -g qmail -d /var/qmail -s /bin/false qmailr useradd -g qmail -d /var/qmail -s /bin/false qmails
■展開する
tar xvzf qmail-1.03.tar.gz
■パッチを当てる
qmail-0.0.0.0.patch
qmail-1.03.errno.patch
qmail-1.03.qmail_local.patch
qmail-103.patch
qmail-date-localtime.patch
qmail-smtpd-relay-reject
qmail-smtpd-auth-0.31.tar.gz(README.authを参照)
■コンパイル
make make setup check
■設定
./config-fast example.jp
■sendmailの除去
mv /usr/lib/sendmail /usr/lib/sendmail.bak mv /usr/sbin/sendmail /usr/sbin/sendmail.bak chmod 000 /usr/lib/sendmail.bak chmod 000 /usr/sbin/sendmail.bak ln -s /var/qmail/bin/sendmail /usr/lib/ ln -s /var/qmail/bin/sendmail /usr/sbin/
■起動スクリプトの修正
mv /var/qmail/boot/home /var/qmail/rc 以下に修正 qmail-start ./Mailbox splogger qmail ↓↓↓ qmail-start ./Maildir/ splogger qmail
■起動スクリプトの作成
#!/bin/sh # # chkconfig: 2345 90 10 # description: qmail smtp service # PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin:/home/vpopmail/bin [ -f /var/qmail/rc ] || exit 0 case "$1" in start) echo 'Starting qmail: ' csh -cf '/var/qmail/rc &' >/dev/null 2>&1 # SMTP tcpserver -HR -l0 -v -x /etc/tcp.smtp.cdb \ -u `id -u vpopmail` -g `id -g vpopmail` 0 smtp \ qmail-smtpd `hostname` vchkpw /bin/true 2>&1 | splogger smtpd 3 & # SMTPSも必要なら以下をコメントを外す # tcpserver -HR -l0 -sv -x /etc/tcp.smtp.cdb -n /var/qmail/cert.pem \ # -u `id -u vpopmail` -g `id -g vpopmail` 0 smtps \ # qmail-smtpd `hostname` vchkpw /bin/true 2>&1 | splogger smtps 3 & echo touch /var/lock/qmail ;; stop) echo "Stoping qmail: " PID=`/bin/ps -aefw | grep [q]mail | awk '{print $2}'` if [ ! -z "$PID" ] ; then /bin/kill ${PID} 1> /dev/null 2>&1 fi echo rm -f /var/lock/qmail ;; *) echo "Usage: S99qmail {start|stop}" exit 1 esac exit 0
■起動スクリプトの設定
chmod 755 /etc/init.d/qmail chkconfig --add qmail chkconfig qmail on
tcpserverのインストール
■パッチを当てる
ucspi-tcp-0.88.a_record.patch
ucspi-tcp-0.88.errno.patch
ucspi-tcp-0.88.nobase.patch
SMTP over SSLをする場合、以下も当てる。
ucspi-tcp-ssl-20050405.patch.gz
pemキーの作り方はどこかを参照してください。
■インストール
make setup check
■cdbの作成
cd /etc echo '127.:allow,RELAYCLIENT=""' > tcp.smtp tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
vpopmailのインストール
■ユーザーの作成
groupadd -g 89 vchkpw useradd -g vchkpw -u 89 vpopmail
■CRAM-MD5認証時にエラーになるので修正する
vi vchkpw.c
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
./configure \ --enable-qmaildir=/var/qmail \ --enable-vpopuser=vpopmail \ --enable-vpopgroup=vchkpw \ --enable-roaming-users \ --disable-rebuild-tcpserver-file \ --disable-clear-passwd
■インストール
make make install-strip
■とりあえずドメインを作る
後ほどqmailadminを入れるので、そのときメールアドレスは設定できる。
/home/vpopmail/bin/vadddomain example.jp
dovecotのインストール
CentOS 6 (64bit版) RPMのリビルド&設定(さくらのVPSでの実施例)
CentOS 6.Xのdovecotはvpopmailのサポートが外されているので、それを付けたrpmを作ります。
■ソースRPMを取得
2015/06/21時点ではdovecot-2.0.9-8.el6_6.4.src.rpmが最新。
■インストールする
rpm -ivh dovecot-2.0.9-8.el6_6.4.src.rpm
/root/rpmbuildに展開される
■specファイルを編集する
vi /root/rpmbuild/SPECS/dovecot.spec
--with-docを探しその前の行に挿入
--with-vpopmail \
■ビルドする
rpmbuild -bb --clean /root/rpmbuild/SPECS/dovecot.spec
依存関係がないぞ、と言われたら、該当パッケージをインストールする
もう一度
rpmbuild -bb --clean /root/rpmbuild/SPECS/dovecot.spec
をするとビルドできる。
ビルドしたrpm
■ビルドしたrpmをインストールする
rpm -ivh /root/rpmbuild/RPMS/x86_64/dovecot-2.0.9-8.el6.4.x86_64.rpm
■設定
/etc/dovecot/conf.d/auth-vpopmail.conf.ext を編集し、以下をコメントアウト
args = quota_template=quota_rule=*:backend=%q
/etc/dovecot/conf.d/10-auth.conf を編集する
コメントアウト !include auth-system.conf.ext コメントを外す #!include auth-vpopmail.conf.ext
/etc/dovecot/conf.d/10-mail.conf を編集
30行目くらい mail_location = maildir:~/Maildir 167行目くらい first_valid_uid = 89
autorespond-2.0.5のインストール
■autorespondの日本語化
パッチ当て:autorespond-2.0.5.iso-2022-jp.patch
■インストール
make make install
nkfをインストールしておくこと
qmail-queue.iso-2022-jpを/var/qmail/binにコピー。
その後所有者を、vpopmail.vchkpwに変更&chmod 711
ezmlm-0.53-idx-0.41のインストール
■展開する
tar xvzf ezmlm-0.53-idx-0.41.tar.gz
■conf-langの先頭行を「ja」に変える
■インストール
make make man make setup
qmailadminのインストール
■configureする
./configure \ --enable-vpopmaildir=/home/vpopmail \ --enable-htmldir=/var/www/html \ --enable-cgibindir=/var/www/cgi-bin/admin \ --enable-cgipath=/cgi-bin/admin/qmailadmin \ --enable-qmaildir=/var/qmail \ --enable-ezmlmdir=/usr/local/bin/ezmlm \ --enable-autoresponder-path=/usr/bin \ --enable-vpopuser=vpopmail \ --enable-vpopgroup=vchkpw \ --disable-ezmlm-mysql \ --enable-help
■インストールする
make clean; make; make install-strip
注意 ※/cgi-bin/adminにqmailadminを作る場合。
この場合、httpd.confでこのディレクトリにアクセス制御をかけたほうが良いと思う。
おまけ
■qtools 0.56のインストール
spamassassinを利用しているんですが、その際.qmailでspamcを経由してスパムに印をつけてMaildirに格納しています。
Maildirに格納するのに、tomaildirというqtoolsの中のプログラムを利用します。
CentOS 6 64bitになったらコンパイルできなくなったので調査した結果、パッチを当てる必要があるようです。
後々を考えて、パッチなども載せておきます。
qtools 0.56
パッチたち
qtools-0.56-errno.patch
qtools-0.56-head.patch
■展開し、パッチを当てる。
tar xzvf qtools-0.56.tar.gz cd qtools-0.56 patch < ../qtools-0.56-errno.patch patch < ../qtools-0.56-head.patch
■ビルドしインストール
make make install
■使い方
.qmail にて以下の様にすると、spamcからの出力を保存できる
|spamc|tomaildir ./Maildir