qmail+vpopmail+qmailadmin設定

| コメント(0) | トラックバック(0)
【インストールに必要なユーザ、グループを作成する 】

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

【ダウンロード】

[user@linux qmail]$ wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ←■ qmailダウンロード
※ wgetが固まってダウンロードできない場合は下記手順でダウンロード
[user@linux qmail]$ wget --no-passive-ftp ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz ←■ qmailダウンロード
[user@linux qmail]$ wget http://www.itheart.com/phpgw/qmail-date-localtime.patch ←■ 日本標準時間対応パッチダウンロード
[user@linux qmail]$ wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz ←■ SMTP-Auth対応パッチダウンロード
[user@linux qmail]$ wget http://qmail.mirrors.summersault.com/qmail-smtpd-relay-reject ←■ 不正中継拒否対応パッチダウンロード
[user@linux qmail]$ wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch ←■ エラー対策patchダウンロード
[user@linux qmail]$ wget http://tomclegg.net/qmail/qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチダウンロード

【qmail インストール】

[user@linux qmail]$ tar zxvf qmail-1.03.tar.gz ←■ qmail展開

[user@linux qmail]$ tar zxvf qmail-smtpd-auth-0.31.tar.gz ←■ SMTP-Auth対応パッチ展開
[user@linux qmail]$ mv qmail-smtpd-auth-0.31/* ./qmail-1.03/ ←■ SMTP-Auth対応パッチをqmail展開先ディレクトリへ移動

[user@linux]$ cd qmail-1.03 ←■ qmail展開先ディレクトリへ移動
[user@linux qmail-1.03]$ patch -p1 < ../qmail-date-localtime.patch ←■ 日本標準時間対応パッチ施行

[user@linux qmail-1.03]$ patch < auth.patch ←■ SMTP-Auth対応パッチ施行
patching file Makefile
patching file TARGETS
patching file qmail-smtpd.8
patching file qmail-smtpd.c

[user@linux qmail-1.03]$ patch < ../qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチ施行
patching file qmail-remote.c
patching file Makefile
Hunk #1 succeeded at 1441 (offset -4 lines).

[user@linux 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).

[user@linux qmail-1.03]$ patch < ../qmail-1.03.errno.patch ←■ エラー発生対策 error.h をパッチ施行

[root@linux qmail-1.03]# su - ←■ root権限になる
[root@linux qmail-1.03]# cd /home/user/qmail/qmail-1.03 ←■ ディレクトリ移動
[root@linux qmail-1.03]# make setup check ←■ qmailインストール

~ 中略 ~

./install
./instcheck
[root@linux qmail-1.03]#

※↑何か新しくパッチを当てたりして、再コンパイルする場合は、
一旦 qmailを停止し、# make clean
その後、# make setup check

【error.h ファイルを直接編集する場合 】

[user@linux qmail-1.03]$ vi error.h ←■ error.h直接編集する場合
extern int errno;
↓■ 変更(書き換える)
#include
[user@linux qmail-1.03]$


【qmail-remote-auth だけインストールする場合 】

qmail-remote-auth(外部SMTP-Auth対応パッチ)だけを後からインストールする場合 †

[root@linux qmail-1.03]# ls /var/qmail/bin/qmail-remote ←■ qmail-remotetの存在確認
[root@linux qmail-1.03]# patch < ../qmail-remote-auth.patch ←■ 外部SMTP-Auth対応パッチ施行
patching file qmail-remote.c
patching file Makefile
Hunk #1 succeeded at 1441 (offset -4 lines).

[root@linux qmail-1.03]# make qmail-remote ←■ qmail-remoteのみコンパイル

[root@linux qmail-1.03]# install -m 711 qmail-remote /var/qmail/bin/qmail-remote ←■ qmail-remoteのみインストール


【qmail 設定ファイルの作成 】

※ /var/qmail/control 内にqmailの制御ファイルが作成されます。

[root@linux ~]# cd ***/qmail-1.03/ ←■ qmail 展開先ディレクトリへ移動
[root@linux qmail-1.03]# ./config-fast `hostname -d`
Your fully qualified host name is example.com.
Putting hitsujigumi into control/me...
Putting hitsujigumi into control/defaultdomain...
Putting hitsujigumi into control/plusdomain...
Putting hitsujigumi into control/locals...
Putting hitsujigumi 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@linux qmail-1.03]#

※ 注意 /var/qmail/control/me 内に、localhost を入れるとLogwatchからのメールが届かない。

【マニュアルを参照できるようにする 】

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

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


【tcsh インストール 】

tcsh は、UNIX系のシェルの一つ

[root@linux ~]# yum list | grep tcsh ←■ インストール確認
** Message: sqlite cache needs updating, reading in metadata
tcsh.i386 6.14-12.el5 installed ←■ インストール済
[root@linux ~]#
[root@linux ~]# yum -y install tcsh ←■ cシェルインストール


【OP25B(Outbound Port 25 Blocking)対策 】※動的IPの自宅サーバの場合

* SMTPサーバ名 = プロバイダのSMTPサーバ名
* ユーザー名 = プロバイダのメールアカウント名
* パスワード = プロバイダのメールパスワード


設定例1 SMTPサーバ名のみ

[root@linux ~]# echo ":SMTPサーバ名" > /var/qmail/control/smtproutes ←■ SMTP認証情報設定

[root@linux ~]# echo ":smtp.nifty.com" > /var/qmail/control/smtproutes ←■ 設定例


設定例2 SMTPサーバ名 + 認証情報

[root@linux ~]# echo ":SMTPサーバ名 ユーザー名 パスワード" > /var/qmail/control/smtproutes ←■ SMTP認証情報設定

[root@linux ~]# echo ":smtp.nifty.com user password" > /var/qmail/control/smtproutes ←■ 設定例


設定例3 SMTPサーバ名 + ポート番号 + 認証情報 †

[root@linux ~]# echo ":SMTPサーバ名:587 ユーザー名 パスワード" > /var/qmail/control/smtproutes ←■ SMTP認証情報設定

[root@linux ~]# echo ":smtp.nifty.com:587 user password" > /var/qmail/control/smtproutes ←■ 設定例


※ 直接編集する場合

[root@linux ~]# vi /var/qmail/control/smtproutes
:SMTPサーバ名:587 ユーザー名 パスワード
:smtp.nifty.com:587 user@nifty.com Password ←■ 例
[root@linux ~]# 保存する


ポート:587の設定確認

[root@linux ~]# less /etc/services
submission 587/tcp msa # mail message submission
submission 587/udp msa # mail message submission


------------------------------------------------------------------------------------------------------


【vpopmail 用 ユーザ・グループ作成 】

[root@linux ~]# groupadd -g 89 vchkpw ←■ vpopmail用グループの vchkpwグループ作成
[root@linux ~]# useradd -g vchkpw -u 89 vpopmail -s /sbin/nologin -m -k /dev/null ←■ vpopmailユーザ作成
[root@linux ~]# chmod 755 /home/vpopmail ←■ パーミッション変更

【再インストールする場合】

[root@linux ~]# cd ....vpopmail-5.4.25 ←■ vpopmailインストール用ディレクトリへ移動
[root@linux vpopmail-5.4.25]# make distclean ←■ 以前のmakeファイルを削除


【リレー許可DBの作成 】

[root@linux ~]# mkdir -p /home/vpopmail/etc/ ←■ インストール前に必要なディレクトリ作成
[root@linux ~]# vi /home/vpopmail/etc/tcp.smtp ←■リレー許可の元となるファイル作成

 127.:allow,RELAYCLIENT="" ←■ リレー許可として127.を追加
 XXX.XXX.XXX.:allow,RELAYCLIENT="" ←■任意で許可するIPを指定
 XXX.XXX.XXX.XXX-XXX:allow,RELAYCLIENT="" ←■まとめて指定もできる
 :allow

[root@linux ~]# tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp ←■ cdbの作成
[root@linux ~]# chown -R vpopmail. /home/vpopmail/etc ←■ 作成したディレクトリ以下の所有者変更

【configure時のオプション】

--enable-logging=y ←■ メール受信時のログを記録する場合は「y」
--enable-roaming-users=y ←■ POP before SMTP認証を使う場合は「y」
--enable-relay-clear-minutes=10 ←■ POP before SMTP用 relayがclearされる時間を10分に指定(デフォルトは180分)
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp ←■ リレー許可ファイルのパス(問題が起これば指定してみる)
--enable-clear-passwd=n ←■ パスワードを平文で保存しないようにする場合は追加(SMTP認証では指定しない事)


【vpopmail(SMTP認証用)インストール】

[user@linux qmail]$ wget http://nchc.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.25.tar.gz ←■ vpopmailダウンロード
[user@linux qmail]$ tar zxvf vpopmail-5.4.25.tar.gz ←■ vpopmail 展開

[user@linux qmail]$ cd vpopmail-5.4.25 ←■ vpopmail 展開先ディレクトリへ移動

※ メールサーバーでウィルス&スパムチェック導入している場合のみ
[user@linux vpopmail-5.4.25]$ vi vpopmail.c ←■ vpopmail.c 編集(ユーザ追加時に自動でスパムメール用メールボックスを作成)
+----------------------------------------------------------------------------------------
| const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur",
| "Maildir/tmp"};
+----------------------------------------------------------------------------------------
↓■ 変更
+----------------------------------------------------------------------------------------
| const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur", "Maildir/tmp",
| "Maildir/.Spam", "Maildir/.Spam/new", "Maildir/.Spam/cur", "Maildir/.Spam/tmp"};
+----------------------------------------------------------------------------------------

:wq ←■ 保存して閉じる

[user@linux vpopmail-5.4.25]$ vi vchkpw.c ←■ vchkpw.c の修正
hmac_md5( (unsigned char *) challenge, strlen(challenge), (unsigned char *) password, strlen(password), digest);
↓■ 2か所変更 747行目辺り
hmac_md5( (unsigned char *) response, strlen(response), (unsigned char *) password, strlen(password), digest);

return(strcmp(digascii,response));
↓■ 1か所変更 759行目辺り
return(strcmp(digascii,challenge));

:wq ←■ 保存して閉じる

[user@linux vpopmail-5.4.25]$ su - ←■ root権限になる

[root@linux vpopmail-5.4.25]# ./configure \
--enable-qmail-ext=n \
--enable-logging=y                  [Enter] ←■ configure

~ 中略 ~

vpopmail 5.4.25
Current settings
---------------------------------------

vpopmail directory = /home/vpopmail
domains directory = /home/vpopmail/domains
uid = 89
gid = 89
roaming users = OFF --disable-roaming-users (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = ON --enable-clear-passwd (default)
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = OFF --disable-ip-alias-domains (default)
onchange script = OFF --disable-onchange-script (default)
auth module = cdb --enable-auth-module=cdb (default)
auth inc = -Icdb
auth lib =
system passwords = OFF --disable-passwd (default)
pop syslog = show successful and failed login attempts --enable-logging=y
auth logging = ON --enable-auth-logging (default)
spamassassin = OFF --disable-spamassassin (default)
maildrop = OFF --disable-maildrop (default)
[root@linux vpopmail-5.4.25]#

[root@linux vpopmail-5.4.25]# make
[root@linux vpopmail-5.4.25]# make install-strip ←■ vpopmail インストール

[root@linux vpopmail-5.4.25]# chown root. /home/vpopmail/bin/vchkpw ←■ vchkpw にroot権限の設定
[root@linux vpopmail-5.4.25]# chmod 4755 /home/vpopmail/bin/vchkpw ←■ vchkpw のパーミッション変更

[root@linux vpopmail-5.4.25]# cd ../ ←■ vpopmail 展開先ディレクトリを抜ける
[root@linux vpopmail-5.4.25]# rm -rf vpopmail-5.4.25 ←■ vpopmail 展開先ディレクトリ削除
[root@linux vpopmail-5.4.25]# rm -f vpopmail-5.4.25.tar.gz ←■ ダウンロードした vpopmail 削除


※ 参考 SMTP認証時の /home/vpopmail/etc/ 内のファイル一覧

-rw-r--r-- 1 root root 25 5月 22 12:52 inc_deps
-rw-r--r-- 1 root root 42 5月 22 12:52 lib_deps
-rw-r--r-- 1 root root 0 5月 22 13:19 tcp.smtp
-rw-r--r-- 1 vpopmail vchkpw 2048 5月 22 15:00 tcp.smtp.cdb
-rw-r--r-- 1 vpopmail vchkpw 1161 5月 22 12:52 vlimits.default

※ 続いて → qmail + vpopmail/vpopmail 設定


【vpopmail(POP Before SMTP用)インストール 】

[user@linux qmail]$ wget http://nchc.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.25.tar.gz ←■ vpopmailダウンロード
[user@linux qmail]$ tar zxvf vpopmail-5.4.25.tar.gz ←■ vpopmail 展開

[user@linux qmail]$ cd vpopmail-5.4.25 ←■ vpopmail 展開先ディレクトリへ移動

※ メールサーバーでウィルス&スパムチェック導入している場合のみ
[user@linux vpopmail-5.4.25]$ vi vpopmail.c ←■ vpopmail.c 編集(ユーザ追加時に自動でスパムメール用メールボックスを作成)
+----------------------------------------------------------------------------------------
| const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur",
| "Maildir/tmp"};
+----------------------------------------------------------------------------------------
↓■ 変更
+----------------------------------------------------------------------------------------
| const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur", "Maildir/tmp",
| "Maildir/.Spam", "Maildir/.Spam/new", "Maildir/.Spam/cur", "Maildir/.Spam/tmp"};
+----------------------------------------------------------------------------------------

:wq ←■ 保存して閉じる

[user@linux vpopmail-5.4.25]$ su - ←■ root権限になる

[root@linux vpopmail-5.4.25]# ./configure \
--enable-roaming-users=y \
--enable-relay-clear-minutes=10 \
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-qmail-ext=n \
--enable-logging=y                  [Enter] ←■ configure

~ 中略 ~

vpopmail 5.4.25
Current settings
---------------------------------------

vpopmail directory = /home/vpopmail
domains directory = /home/vpopmail/domains
uid = 89
gid = 89
roaming users = ON --enable-roaming-users
tcpserver file = /home/vpopmail/etc/tcp.smtp
open_smtp file = /home/vpopmail/etc/open-smtp
rebuild tcpserver file = ON --enable-rebuild-tcpserver-file (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = ON --enable-clear-passwd (default)
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = OFF --disable-ip-alias-domains (default)
onchange script = OFF --disable-onchange-script (default)
auth module = cdb --enable-auth-module=cdb (default)
auth inc = -Icdb
auth lib =
system passwords = OFF --disable-passwd (default)
pop syslog = show only failed attempts --enable-logging=e (default)
auth logging = ON --enable-auth-logging (default)
spamassassin = OFF --disable-spamassassin (default)
maildrop = OFF --disable-maildrop (default)
[root@linux vpopmail-5.4.25]#

[root@linux vpopmail-5.4.25]# make
[root@linux vpopmail-5.4.25]# make install-strip ←■ vpopmail インストール

[root@linux vpopmail-5.4.25]# chown root. /home/vpopmail/bin/vchkpw ←■ vchkpw にroot権限の設定
[root@linux vpopmail-5.4.25]# chmod 4755 /home/vpopmail/bin/vchkpw ←■ vchkpw のパーミッション変更

[root@linux vpopmail-5.4.25]# cd ←■ vpopmail 展開先ディレクトリを抜ける
[root@linux vpopmail-5.4.25]# rm -rf vpopmail-5.4.25 ←■ vpopmail 展開先ディレクトリ削除
[root@linux vpopmail-5.4.25]# rm -f vpopmail-5.4.25.tar.gz ←■ ダウンロードした vpopmail 削除


※ 参考 POP Before SMTP時の /home/vpopmail/etc/ 内のファイル一覧 †

-rw-r--r-- 1 root root 25 5月 22 12:52 inc_deps
-rw-r--r-- 1 root root 42 5月 22 12:52 lib_deps
-rw-r--r-- 1 vpopmail vchkpw 0 5月 22 15:00 open-smtp
-rw------- 1 root root 0 5月 22 12:53 open-smtp.lock
-rw-r--r-- 1 root root 0 5月 22 13:19 tcp.smtp
-rw-r--r-- 1 vpopmail vchkpw 2048 5月 22 15:00 tcp.smtp.cdb
-rw-r--r-- 1 vpopmail vchkpw 1161 5月 22 12:52 vlimits.default

↑メール受信時の認証に成功すれば、open-smtp に接続時のIPが登録され tcp.smtp.cdb が更新される。

※もし、open-smtp、open-smtp.lockが生成されていないときは、自分で作る。
vi open-smtp
vi open-smtp.lock
※念のため、open-smpのほうだけ、所有者をvpopmailにしパーミッション変更
chown vpopmail:vchkpw open-smtp
chmod 666 open-smtp


.
【POP Before SMTPもSMTP認証も不要のとき】(ローカルからしか配信しないとき)

[root@linux vpopmail-5.4.25]# ./configure \
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-qmail-ext=n \
--enable-logging=y

[root@linux vpopmail-5.4.25]# make
[root@linux vpopmail-5.4.25]# make install-strip ←■ vpopmail インストール

[root@linux vpopmail-5.4.25]# chown root. /home/vpopmail/bin/vchkpw ←■ vchkpw にroot権限の設定
[root@linux vpopmail-5.4.25]# chmod 4755 /home/vpopmail/bin/vchkpw ←■ vchkpw のパーミッション変更


【CRON 設定】※POP Before SMTPの場合のみ

POP Before SMTP の場合は、受信認証を通った期限切れIPのを定期的に削除する必要があります。

[root@linux ~]# crontab -e
*/10 * * * * /home/vpopmail/bin/clearopensmtp > /dev/null 2>&1 ←■ 最終行に追記する(10分毎に処理します。)

ちなみにcrontabのある場所は、/var/spool/cron/[ユーザー名]

-------------------------------------------------------------------------------------------------------

【仮想ドメイン登録(追加)】

[root@linux ~]# /home/vpopmail/bin/vadddomain example.jp
Please enter password for postmaster: ←■ 設定したいパスワード入力
enter password again: ←■ 設定したいパスワード再入力
[root@linux ~]#

【仮想ドメイン登録(追加)パスワードをランダムに設定】

[root@linux ~]# /home/vpopmail/bin/vadddomain -r example.jp
Random password: XoC1mfhl ←■ ランダムに設定されたパスワードが自動設定される
[root@linux ~]#

以下のファイルにもドメインが追加されます。

* /var/qmail/control/rcpthosts
* /var/qmail/control/virtualdomains

※もし、「Already exist!」とエラーが出る場合は、下記の削除をしてからもう一度追加する

【仮想ドメイン削除】

[root@linux ~]# /home/vpopmail/bin/vdeldomain example.jp
[root@linux ~]#

以下のファイルからもドメインが削除されます。

* /var/qmail/control/rcpthosts
* /var/qmail/control/virtualdomains


【仮想ユーザ登録(追加)】

メールアドレス(アカウント)を追加する。

[root@linux ~]# /home/vpopmail/bin/vadduser user@example.jp
Please enter password for user@example.jp: ←■ 設定したいパスワード入力
enter password again: ←■ 設定したいパスワード再入力
[root@linux ~]#


【仮想ユーザ削除】

メールアドレス(アカウント)を削除する。
※ 即、メールボックスごと削除されるので注意。

[root@linux ~]# /home/vpopmail/bin/vdeluser user@example.jp
[root@linux ~]#


【仮想ユーザのパスワード変更 】

メールアドレス(アカウント)のPOP認証パスワードを変更する。

[root@linux ~]# /home/vpopmail/bin/vpasswd user@example.jp
Please enter password for user@example.jp:  ←■ 新しいパスワード入力
enter password again: ←■ 新しいパスワード再入力


【全ドメイン・全ユーザー共通の上限を設定 】

※ デフォルト設定です。設定以後の新規作成に適用されます。既存ドメインには適用されないので、各ドメイン毎に設定変更が必要。

[root@linux ~]# vi /home/vpopmail/etc/vlimits.default
quota 100 ←■ (例) 全ドメインのメールボックス総容量を100MBにする
maxmsgcount 10000 ←■ (例) メッセージ総数10,000にする
default_quota 20971520 ←■ (例) 今後新たに作成するユーザーのquotaを20MBにする
default_maxmsgcount 1000 ←■ (例) メッセージ総数1,000にする


【既存ドメインのquota変更例 】

[root@linux ~]# /home/vpopmail/bin/vmoddomlimits -M 20000 -m 1000 -P 20 -L 20 -A 20 -F 20 -R 20 -Q 200 -q 10485760 example.jp


【各ドメイン毎のメールアドレスの受信制限】

デフォルト設定

vpopmail quota 設定

* 書式
o /home/vpopmail/bin/vmoddomlimits [-Q xxx -q xxx -M xxx -m xxx] [Domain Name]

* オプション
オプション 内容 入力値 入力例
-v vpopmail バージョン表示
-M ドメインのメッセージ総数max 数値 20000
-m ユーザー当たりのメッセージ数max 数値 1000
-P アカウント数max 数値 20 無制限は-1
-A 別名数max 数値 20 無制限は-1
-F 転送数max 数値 20 無制限は-1
-R autoresponder数max 数値 20 無制限は-1
-L メーリングリスト数max 数値 20 無制限は-1
-Q ドメイン総容量 バイト数 209715200 or 204800k or 200m or 無制限は0
-q ユーザーquota バイト数 10485760 or 10240k or 10m or 無制限は0


ユーザ毎のメール容量を デフォルトで 50MB に設定する場合

[root@linux ~]# /home/vpopmail/bin/vmoddomlimits -q 52428800 example.jp ←■ バイト単位で設定した場合の例(50 x 1024 x 1024 = 52428800)
[root@linux ~]# /home/vpopmail/bin/vmoddomlimits -q 51200k example.jp ←■ キロバイト単位で設定した場合の例(50 x 1024 = 51200)
[root@linux ~]# /home/vpopmail/bin/vmoddomlimits -q 50m example.jp ←■ メガバイト単位で設定した場合の例
[root@linux ~]# /home/vpopmail/bin/vmoddomlimits -q 0 example.jp ←■ 0 にした場合は無制限

* 直接ファイルを編集する場合

[root@linux ~]# /home/vpopmail/domains/ドメイン指定/.qmailadmin-limits
maxpopaccounts: -1
maxaliases: -1
maxforwards: -1
maxautoresponders: -1
maxmailinglists: -1
quota: 0 ←■ 指示されたドメインの総容量をMByte 単位で指定
maxmsgcount: 0 ←■ 指示されたドメインの最大保持メッセージ数を指定
default_quota: 10485760 ←■ メール容量デフォルト設定値
default_maxmsgcount: 0 ←■ 指示されたドメインに属するメールアカウントの最大保持メッセージ数を指定
perm_account: 0
perm_alias: 0
perm_forward: 0
perm_autoresponder: 0
perm_maillist: 0
perm_quota: 0
perm_defaultquota: 0

:wq ←■ 保存して閉じる


【指定ドメイン内の全ユーザのメール容量を 10MB に制限する場合 】

[root@linux ~]# /home/vpopmail/bin/vsetuserquota example.jp 10m


【制限解除 】

[root@linux ~]# /home/vpopmail/bin/vsetuserquota example.jp noquota


【特定のアドレスのメール容量を 10MB にする】

[root@linux ~]# /home/vpopmail/bin/vsetuserquota user@example.jp 10m


【制限解除】

[root@linux ~]# /home/vpopmail/bin/vsetuserquota user@example.jp noquota


【vpopmail 主要コマンド】

バーチャルドメイン追加 ~vpopmail/bin/vadddomain ドメイン
メールボックス作成 ~vpopmail/bin/vadduser メールアドレス
メールボックス削除 ~vpopmail/bin/vdeluser メールアドレス
バーチャルドメイン削除 ~vpopmail/bin/vdeldomain ドメイン
パスワードの変更 ~vpopmail/bin/vpasswd メールアドレス
ユーザー情報の確認 ~vpopmail/bin/vuserinfo メールアドレス
ドメインquota設定 ~vpopmail/bin/vsetuserquota ドメイン 容量
ユーザーquota設定 ~vpopmail/bin/vsetuserquota メールアドレス 容量
その他ドメイン設定変更 ~vpopmail/bin/vmoddomlimits ドメイン 容量等
その他ユーザー設定変更 ~vpopmail/bin/vmoduser メールアドレス 容量等


-------------------------------------------------------------------------------------------------------


tcpserver インストール †

【通常(非SSL対応版) インストール】

* tcpserver のパス → /usr/local/bin/tcpserver
* tcprules のパス → /usr/local/bin/tcprules

[user@linux qmail]$ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz ←■ tcpserverダウンロード
[user@linux qmail]$ wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch ←■ エラー対策patchダウンロード

[user@linux qmail]$ tar zxvf ucspi-tcp-0.88.tar.gz ←■ 展開する

[user@linux qmail]$ cd ucspi-tcp-0.88/ ←■ ディレクトリ移動

※ エラー対策
[user@linux ucspi-tcp-0.88]$ patch < ../ucspi-tcp-0.88.errno.patch ←■ error.h パッチファイル施行

 ※パッチ施行確認
[user@linux ucspi-tcp-0.88]# vi error.h

extern int errno;の行の下に、
#include
が記載されていればOK。なければ手で記載。


[user@linux qmail]$ su - ←■ root権限になる
[root@linux qmail]# make setup check

~ 中略 ~

./install
./instcheck
[root@linux qmail]#



【SSL対応版 インストール】

SSL対応版は、tcpserver-ssl としてインストールする。

* tcpserver(SSL対応) のパス → /usr/local/bin/tcpserver-ssl

[user@linux qmail]$ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz ←■ tcpserverダウンロード
[user@linux qmail]$ wget http://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gz ←■ tcpserverSSL対応パッチダウンロード
[user@linux qmail]$ wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch ←■ エラー対策patchダウンロード

[user@linux qmail]$ tar zxvf ucspi-tcp-0.88.tar.gz ←■ 展開する
[user@linux qmail]$ gunzip ucspi-tcp-ssl-20050405.patch.gz ←■ tcpserverSSL対応パッチ展開
[user@linux qmail]$ mv ucspi-tcp-ssl-20050405.patch ucspi-tcp-0.88 ←■ tcpserverSSL対応パッチをtcpserver展開先ディレクトリへ移動させる

[user@linux qmail]$ cd ucspi-tcp-0.88/ ←■ ディレクトリ移動

[user@linux ucspi-tcp-0.88]$ patch < ucspi-tcp-ssl-20050405.patch ←■ tcpserverSSL対応パッチ施行
patching file FILES
patching file Makefile

~ 中略 ~

patching file tcpserver.c
patching file who@.1

[user@linux ucspi-tcp-0.88]$ su - ←■ root権限になる

[root@linux ucspi-tcp-0.88]# make ←■ tcpserverコンパイル
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo exec "`head -1 conf-ld`" \
'-o "$main" "$main".o ${1+"$@"}' \
) > load

~ 中略 ~

nroff -man argv0.1 > argv0.0
nroff -man recordio.1 > recordio.0
[root@linux ucspi-tcp-0.88]#

[root@linux ucspi-tcp-0.88]# mv tcpserver tcpserver-ssl ←■ SSL用にファイル名を変更する

[root@linux ucspi-tcp-0.88]# /bin/cp tcpserver-ssl /usr/local/bin ←■ SSL対応tcpserverをコピーする
[root@linux ucspi-tcp-0.88]#


【サーバ証明書作成 】

※ 応答するメールサーバ名はメールクライアントで設定するメールサーバー名と同じものを指定する

[root@linux ~]# cd ucspi-tcp-0.88 ←■ ディレクトリ移動
[root@linux ucspi-tcp-0.88]# make cert ←■ サーバ証明書作成
openssl req -new -x509 -nodes \
-out cert.pem -days 366 \
-keyout cert.pem
Generating a 1024 bit RSA private key
....++++++
.++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP ←■ サーバの所在地(国名)応答
State or Province Name (full name) [Berkshire]:Osaka ←■ サーバの所在地(都道府県名)応答
Locality Name (eg, city) [Newbury]:Osaka ←■ サーバの所在地(市区町村名)応答
Organization Name (eg, company) [My Company Ltd]:example.jp ←■ サーバ名応答(何でも良い)
Organizational Unit Name (eg, section) []: ←■ 空ENTER
Common Name (eg, your name or your server's hostname) []:mail.example.jp ←■ メールサーバ名応答 ※
Email Address []:postmaster@example.jp ←■ メールサーバ管理者アドレス応答
[root@linux ucspi-tcp-0.88]#
[root@linux ucspi-tcp-0.88]# cp cert.pem /var/qmail ←■ 作成したサーバ証明書をqmailインストールディレクトリへコピー

[root@linux ucspi-tcp-0.88]# chmod 600 /var/qmail/cert.pem ←■ サーバ証明書をroot以外参照禁止にする

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


----------------------------------------------------------------------------------------


qmail 起動

【旧SMTP の停止】

現在、起動しているSMTPサーバーの動作を停止させる。

■sendmail の場合

[root@linux ~]# /etc/rc.d/init.d/sendmail stop ←■ sendmail停止

[root@linux ~]# chkconfig --list sendmail ←■ 自動起動を確認
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@linux ~]# chkconfig sendmail off ←■ 自動起動解除
[root@linux ~]# chkconfig --list sendmail ←■ 自動起動設定を確認
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off


■Postfix の場合

[root@linux ~]# /etc/rc.d/init.d/postfix stop ←■ Postfix停止
Shutting down postfix: [ OK ]

[root@linux ~]# chkconfig postfix off ←■ Postfix自動起動解除

[root@linux ~]# chkconfig --list postfix ←■ Postfix自動起動設定確認
postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←■ 全ランレベルのoffを確認


【sendmail コマンド置換え】

[root@linux ~]# chmod 0 /usr/lib/sendmail ←■ 旧sendmailコマンド無効化
[root@linux ~]# chmod 0 /usr/sbin/sendmail ←■ 旧sendmailコマンド無効化

[root@linux ~]# mv /usr/lib/sendmail /usr/lib/sendmail.org ←■ 旧sendmailコマンドをリネーム
[root@linux ~]# mv /usr/sbin/sendmail /usr/sbin/sendmail.org ←■ 旧sendmailコマンドをリネーム

[root@linux ~]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ←■ sendmailコマンドをqmailに置換え
[root@linux ~]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ←■ sendmailコマンドをqmailに置換え


【Maildirへの移行】

[root@linux ~]# sed -i 's/Mailbox/Maildir\//g' /var/qmail/rc

[root@linux ~]# vi /var/qmail/rc ←■ /var/qmail/rc を直接編集する場合
qmail-start ./Mailbox splogger qmail ※ コメントアウトにしないこと
↓ 変更する
qmail-start ./Maildir/ splogger qmail


【起動スクリプト作成・設定】

* 起動スクリプト設定例↓
  http://tech.hitsug.net/?CentOS%2Fqmail%2F%E8%B5%B7%E5%8B%95%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20%E8%A8%AD%E5%AE%9A%E4%BE%8B#va7ccd4f

[root@linux ~]# vi /etc/rc.d/init.d/qmail ←■ qmail起動スクリプト作成
[root@linux ~]# ※ 内容をコピーして保存する

[root@linux ~]# chmod +x /etc/rc.d/init.d/qmail ←■ qmail起動スクリプトへ実行権限付加

[root@linux ~]# /etc/rc.d/init.d/qmail start ←■ qmail起動
Starting qmail

[root@linux ~]# chkconfig qmail --add ←■ qmailをchkconfigへ追加

[root@linux ~]# chkconfig qmail on ←■ qmail自動起動設定

[root@linux ~]# chkconfig --list qmail ←■ qmail自動起動設定確認
qmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off ←■ ランレベル2~5のonを確認


qmail 起動

【起動】

[root@linux ~]# /etc/rc.d/init.d/qmail start


【停止】

[root@linux ~]# /etc/rc.d/init.d/qmail stop


【再起動】

[root@linux ~]# /etc/rc.d/init.d/qmail restart


【状態確認】

[root@linux ~]# /etc/rc.d/init.d/qmail status


------------------------------------------------------------------------------------------

qmailadmin関連ダウンロード

[user@linux qmail]$ wget http://nchc.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.1.tar.gz
[user@linux qmail]$ wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz
[user@linux qmail]$ wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
[user@linux qmail]$ wget http://www.ezmlm.org/archive/6.0.1/ezmlm-idx-6.0.1.tar.gz


autorespond は、qmail の Vacation(自動応答)ツールです。

【autorespond インストール】

autorespond 最新版確認 → http://www.inter7.com/index.php?page=development

[root@linux ~]# wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz ←■ autorespond ダウンロード
[root@linux ~]# tar zxvf autorespond-2.0.5.tar.gz ←■ autorespond 展開

[root@linux ~]# cd autorespond-2.0.5 ←■ autorespond 展開先ディレクトリへ移動

[root@linux autorespond-2.0.5]# vi autorespond.c ←■ autorespond.c 編集

static char *binqqargs[2] = { "bin/qmail-queue", 0 };
↓■ 変更 103行目辺り
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" ); ←■ 一行追加 265行目辺り

mfp = fopen( msg, "rb" );

:wq ←■ 保存して閉じる
[root@linux autorespond-2.0.5]#

[root@linux ~]# make && make install ←■ autorespond インストール
gcc -O2 -Wall -g autorespond.c -o autorespond
install -d /usr/bin /usr/share/man/man1
install autorespond /usr/bin
install autorespond.1 /usr/share/man/man1

[root@linux autorespond-2.0.5]# cd ../ ←■ autorespond 展開先ディレクトリを抜ける

[root@linux ~]# rm -f autorespond-2.0.5* ←■ 今後不要な場合、ダウンロードした autorespond 削除

[root@linux autorespond-2.0.5]# vi /var/qmail/bin/qmail-queue.iso-2022-jp ←■ autorespond 返信メール日本語化スクリプト作成
#!/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}

:wq ←■ 保存して閉じる
[root@linux ~]#

[root@linux ~]# chmod 711 /var/qmail/bin/qmail-queue.iso-2022-jp ←■ autorespond 返信メール日本語化スクリプトパーミッション変更

[root@centos ~]# chown vpopmail. /var/qmail/bin/qmail-queue.iso-2022-jp ←■ autorespond 返信メール日本語化スクリプト所有者変更



ezmlm は、メーリングリスト管理ツールです。

【ezmlm + ezmlm-idx インストール】

* ezmlm 最新版確認 → http://cr.yp.to/ezmlm.html
* ezmlm-idx 最新版確認 → http://www.ezmlm.org/

[root@linux ~]# wget http://cr.yp.to/software/ezmlm-0.53.tar.gz ←■ ezmlm ダウンロード
[root@linux ~]# wget http://www.ezmlm.org/archive/6.0.1/ezmlm-idx-6.0.1.tar.gz ←■ ezmlm-idx ダウンロード

[root@linux ~]# tar zxvf ezmlm-0.53.tar.gz ←■ ezmlm 展開
[root@linux ~]# tar zxvf ezmlm-idx-6.0.1.tar.gz ←■ ezmlm-idx 展開

[root@linux ~]# cd ezmlm-0.53 ←■ ezmlm 展開先ディレクトリへ移動

[root@linux ~]# /bin/cp -r ezmlm-idx-6.0.1/* ezmlm-0.53 ←■ ezmlm-idx 展開先ディレクトリ内全ファイルを ezmlm 展開先ディレクトリへコピー

[root@linux ezmlm-0.53]# patch < idx.patch ←■ ezmlm-idx パッチ施行
patching file auto-str.c
patching file case_startb.c
~ 中略 ~
patching file surf.c
patching file surfpcs.c

[root@linux ezmlm-0.53]# echo ja > conf-lang ←■ メーリングリストシステムからのメールの日本語化
[root@linux ezmlm-0.53]# echo c:::644:/ja/:charset:lang/ja/charset >> ETC ←■ メーリングリストシステムからのメールの日本語化

[root@linux ezmlm-0.53]# make && make setup ←■ インストール

[root@linux ezmlm-0.53]# cd ←■ ezmlm展開先ディレクトリを抜ける
[root@linux ~]# rm -rf ezmlm-0.53 ezmlm-idx-6.0.1 ←■ 今後必要無い場合、ezmlm ezmlm-idx 展開先ディレクトリ削除
[root@linux ~]# rm -f ezmlm-0.53.tar.gz ezmlm-idx-5.1.1.tar.gz ←■ 今後必要無い場合、ezmlm.tar.gz ezmlm-idx.tar.gz 削除

ezmlm のパス → /usr/local/bin/ezmlm


【qmailadmin インストール】

qmailadmin 最新版確認 → http://sourceforge.net/project/showfiles.php?group_id=6691&package_id=6782

[root@linux ~]# wget http://jaist.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.11.tar.gz ←■ qmailadminダウンロード

[root@linux ~]# tar zxvf qmailadmin-1.2.11.tar.gz ←■ qmailadmin 展開

[root@linux ~]# cd qmailadmin-1.2.11 ←■ qmailadmin 展開先ディレクトリへ移動

[root@linux qmailadmin-1.2.11]# vi template.c ←■ ログインページでの qmailadmin vpopmail のバージョン非表示化
+----------------------------------------------------------------------------------------------------
| /* show version number */
| case 'V':
| printf("%s %s
",
| QA_PACKAGE, QA_VERSION);
| printf("%s %s
",
| PACKAGE, VERSION);
| break;
+----------------------------------------------------------------------------------------------------
   ↓■ 変更 447行目辺り
+----------------------------------------------------------------------------------------------------
| /* show version number */
| case 'V':
| printf("%s
", ←■ ' %s' を除去
| QA_PACKAGE); ←■ ', QA_VERSION' を除去
| printf("%s
", ←■ ' %s' を除去
| PACKAGE); ←■ ', QA_VERSION' を除去
| break;
+----------------------------------------------------------------------------------------------------

[root@linux qmailadmin-1.2.11]# ./configure \
--enable-htmldir=/home/vpopmail/public_html \
--enable-cgibindir=/home/vpopmail/public_html/cgi-bin \
--enable-qmaildir=/var/qmail \
--enable-imagedir=/home/vpopmail/public_html/images \
--enable-imageurl=/images \
--enable-ezmlm-mysql=n \
--enable-help

[root@linux qmailadmin-1.2.11]# make
[root@linux qmailadmin-1.2.11]# make install-strip ←■ qmailadmin インストール

[root@linux qmailadmin-1.2.11]# cd ←■ qmailadmin 展開先ディレクトリを抜ける

[root@linux ~]# rm -rf qmailadmin-1.2.11* ←■ 今後不要な場合、qmailadmin 展開先ディレクトリ、ダウンロードしたqmailadmin 削除


【qmailadmin-help インストール】

qmailadmin-help 最新版確認 → http://sourceforge.net/project/showfiles.php?group_id=6691&package_id=85257

[root@linux ~]# wget http://jaist.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-help-1.0.8.tar.gz ←■ qmailadmin-help ダウンロード

[root@linux ~]# tar zxvf qmailadmin-help-1.0.8.tar.gz ←■ qmailadmin-help 展開

[root@linux ~]# mkdir /home/vpopmail/public_html/images/help ←■ qmailadmin-help 格納先ディレクトリ作成

[root@linux ~]# cp -rp qmailadmin-help-1.0.8/* /home/vpopmail/public_html/images/help ←■ qmailadmin-help を上記ディレクトリへコピー

[root@linux ~]# rm -rf qmailadmin-help-1.0.8* ←■ 今後不要な場合、qmailadmin-help 展開先ディレクトリ、ダウンロードしたqmailadmin-help 削除


【qmailadmin パーミッション設定】

[root@linux ~]# chown -R vpopmail:vchkpw /home/vpopmail/public_html
[root@linux ~]# chmod +s /home/vpopmail/public_html/cgi-bin/qmailadmin


Apache 設定

【設定ファイル(httpd.conf)の編集 】

VirtualHost用の別ファイルを設置している場合は、/etc/httpd/conf.d/virtualhost.conf 等に記述しても良い

[root@linux ~]# vi /etc/httpd/conf/httpd.conf ←■ 設定ファイル編集

DocumentRoot /home/vpopmail/public_html
ServerName example.jp ←■ 適宜、使用するドメインに書き換える

SetHandler cgi-script
AllowOverride None


# ▼ https forward # ←■ https でのアクセス設定をしている場合

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/cgi-bin/qmailadmin(.*)$ https://%{HTTP_HOST}/cgi-bin/qmailadmin [L,R]

# ▲ https forward #



# ▼ SSL用 VirtualHost 設定 # ←■ httpsでアクセスする場合のVirtualHost設定

DocumentRoot /home/vpopmail/public_html
ServerName example.jp

SetHandler cgi-script
AllowOverride None


# ▲ SSL用 VirtualHost 設定 #

:wq ←■ 保存して閉じる

[root@linux ~]# /etc/rc.d/init.d/httpd reload ←■ Apache設定反映
httpd を再読み込み中: [ OK ]
[root@linux ~]#


トラックバック(0)

トラックバックURL: http://www.igreks.jp/blog/mt-tb.cgi/3215

コメントする