qmail/vpopmailのインストール |
qmailとvpopmailを利用してメールサーバーを構築します。
今回、別のマシンにメールサーバーを立ち上げる機会があったので、インストール手順を整理したいと思います。前回ではqmailをインストールしましたが段階的に、POPbeforeSMTP、APOPに対応させ、最終的にvpopmailをインストールしました。最終的にはqmailとvpopmailだけでいいのですが、途中何段階もあり分かりづらくなったので不要なものを省いて1からの説明です。
qmailのみでメールサーバーを構築したい場合はqmailのインストールを参照して下さい。qmailがインストールしてあり、後vpopmailをインストールのみの場合はvpopmailのインストールを参照して下さい。
vpopmailは仮想ドメインや仮想ユーザーを作成する為にインストールします。また、今回は使用しませんが、MySQLと組み合わせてユーザー管理が出来るので大規模なシステム名にも向いていると思います。 私がvpopmailを選択した最大の理由は仮想ユーザーが使える点です。これによりOSのユーザーとメールユーザーを別に扱管理できます。セキュリティー的にも重要な事だと思います。(qmailのみだと、OSのユーザーとメールのユーザーが同一です。ようするにメールユーザーを作成しようと思ったらOSにユーザーを作成しなければなりません)。また、vpopmailではAPOPもデフォルトで使用できる点も評価できます。
No | アーカイブ | ダウンロードURL | 備考 |
1 | qmail-1.03.tar.gz | ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz | qmailのソースコードです。 |
2 | qmail-date-localtime.patch | ftp://ftp.nlc.net.au/pub/unix/mail/qmail/ qmail-date-localtime.patch |
qmailを日本時間にする為のパッチです。 |
3 | ucspi-tcp-0.88.tar.gz | ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz | tcpserverです。xinetdの代替です。 |
4 | vpopmail-5.3.20.tar.gz | http://www.inter7.com/vpopmail.html | vpopmailのソースコードです。 |
5 | qmail-smtpd-relay-reject | http://www.qmail.org/qmail-smtpd-relay-reject | smtpdのパッチです。 |
[root root]# mkdir /var/qmail [root root]# groupadd -g 710 nofiles [root root]# useradd -M -u 710 -g nofiles -s /bin/false -d /var/qmail/alias alias [root root]# useradd -M -u 711 -g nofiles -s /bin/false -d /var/qmail qmaild [root root]# useradd -M -u 712 -g nofiles -s /bin/false -d /var/qmail qmaill [root root]# useradd -M -u 713 -g nofiles -s /bin/false -d /var/qmail qmailp [root root]# groupadd -g 711 qmail [root root]# useradd -M -u 714 -g qmail -s /bin/false -d /var/qmail qmailq [root root]# useradd -M -u 715 -g qmail -s /bin/false -d /var/qmail qmailr [root root]# useradd -M -u 716 -g qmail -s /bin/false -d /var/qmail qmails |
[root root]# groupadd -g 721 vchkpw [root root]# useradd -g vchkpw -u 721 vpopmail -M -s /bin/false [root root]# mkdir /home/vpopmail [root root]# chown vpopmail:vchkpw /home/vpopmail |
[root src]# tar zxvf qmail-1.03.tar.gz [root src]# cd qmail-1.03 日本時間対応のパッチをあてます。 [root qmail-1.03]# patch -p1 < ../qmail-date-localtime.patch smtpdのパッチを当てます。メールアドレスに!,%,2つ目の@がある場合に正常にエラーとします。 [root qmail-1.03]# patch -p1 < ../qmail-smtpd-relay-reject [root qmail-1.03]# make setup check [root qmail-1.03]# ./config-fast smtp.ryouto.jp <-- サーバー名を指定します。 |
localhost <--追加します。 smtp.ryouto.jp ryouto.jp <--追加します。 |
localhost <--追加します。 smtp.ryouto.jp ryouto.jp <--追加します。 |
[root qmail]# cd /usr/local/src [root src]# tar zxvf ucspi-tcp-0.88.tar.gz [root src]# cd ucspi-tcp-0.88 [root ucspi-tcp-0.88]# make setup check |
[root src]# tar zxvf vpopmail-5.3.20.tar.gz [root src]# cd vpopmail-5.3.20 [root vpopmail-5.3.20]#./configure --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-default-domain=ryouto.jp --enable-logging=y [root vpopmail-5.3.20]# make [root vpopmail-5.3.20]# make install-strip |
127.:allow,RELAYCLIENT="" |
[root etc]# tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp |
[root etc]# crontab -e <--クーロンの編集 以下の内容を追記します。 0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null |
[root etc]# cd /home/vpopmail/bin [root bin]# ./vadddomain ryouto.jp<- ryouto.jpを仮想ドメインとして作成します。 Please enter password for postmaster:<- 管理者用パスワードを入力します enter password again:<-再びパスワード入力 |
[root bin]# ./vadduser hoge@ryouto.jp<-作成するユーザーを指定します。 Please enter password for hoge@ryouto.jp:<-パスワード入力 enter password again:<-再びパスワード入力 |
&hoge@ryouto.jp |
[root bin]# cd /var/qmail [root qmail]# cp /var/qmail/boot/home /var/qmail/rc [root qmail]# vi rc qmail-start ./Mailbox splogger qmail <--この行のMailboxをMaildir/に変更する。 ↓ 最後の/を忘れずに qmail-start ./Maildir/ splogger 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 smtp.ryouto.jp -v \ -x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 smtp \ /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 & /usr/local/bin/tcpserver -H -R -l smtp.ryouto.jp -v 0 pop3 \ /var/qmail/bin/qmail-popup smtp.ryouto.jp /home/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 |
[root init.d]# chmod +x qmail [root init.d]# cd ../rc3.d/ [root rc3.d]# ln -s ../init.d/qmail S84qmail [root rc3.d]# cd ../rc5.d/ [root rc5.d]# ln -s ../init.d/qmail S84qmail [root rc5.d]# cd ../rc0.d/ [root rc0.d]# ln -s ../init.d/qmail K06qmail [root rc0.d]# cd ../rc6.d/ [root rc6.d]# ln -s ../init.d/qmail K06qmail |
[root root]# rm /usr/lib/sendmail [root root]# rm /usr/sbin/sendmail [root root]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail [root root]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail |
>telnet www.ryouto.jp smtp 220 smtp.ryouto.jp ESMTP HELO <-- HELOとまずは入力 250 smtp.ryouto.jp MAIL FROM:hoge@ryouto.jp <-- 差し出し人メールアドレス 250 ok RCPT TO:xxx@xxx.ne.jp <--送信先メールアドレス 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) QUIT <-- QUITで終了します。 221 smtp.ryouto.jp Connection closed by foreign host. |
>telnet www.ryouto.jp pop3 +OK <701.1058746882@smtp.ryouto.jp> USER hoge <-- USER ユーザー名を入力 +OK PASS hogehoge <-- PASS ユーザーのパスワードを入力 +OK QUIT <--QUITで終了します。 +OK Connection closed by foreign host. |
>telnet www.ryouto.jp smtp Trying 61.213.124.89... Connected to ryouto.jp. Escape character is '^]'. 220 smtp.ryouto.jp ESMTP HELO <-- HELOとまずは入力 250 smtp.ryouto.jp MAIL FROM:hoge@ryouto.jp <-- 差し出し人メールアドレス 250 ok RCPT TO:xxx@xxx.ne.jp <--送信先メールアドレス 250 ok DATA <-- 本文の開始を指示 354 go ahead test <-- 適当に本文を書きます . <-- 本文の終了は"."です。"."を入力しエンターで終了します。 250 ok 1058746983 qp 705 QUIT <--QUITで終了します。 221 smtp.ryouto.jp Connection closed by foreign host. |
@ドメイン名 ドメインごと拒否する場合 xxx@ドメイン名 特定のメールアドレスを拒否する場合 |
:relay.portside.net:587 |
Copyright (C)2003-2007 ryouto.jp. All Rights Reserved.