Postfix+Dovecot(バーチャルドメイン・メール)+vpopmail形式 †
- Postfixでバーチャルドメイン化し、バーチャルドメイン向けに送信されたメールを受信するには?
と1週間悩んでました。メールの受信なんだからPOP3で認証を含めなんとかしないといけないと気が付くまで..(大汗
そんな遠回りをしてしまいました。※この設定をするにも遠回りしたんだけどね。
- Fedora Core3 で標準でインストールされるDovecotは、ユーザ認証に passwd(/etc/passwd), static,
vpopmail, ldap, pgsql が使えると書いてあるので(/etc/dovecot.con)色々と便利そうで楽かなと思いハマリました。
- はまった内容
- yumでインストールされるDovecotは、auth_userdbパラメタにpasswd認証以外はサポートされてません。
のため vpopmail とか指定すると以下のエラーが・・・、、ってなんやんダメなの?
dovecot-auth: Unknown userdb type 'vpopmail:'
- そんな訳で、結構はまりました。しかもPostgres入れるのかったるいとサボったお陰で。。。またこれも大変。
しかもldapなんて大それたシステム構成でもないので(あせ
- 結論としては以下のとおり
- yumでインストールしたDovecotは、passwd以外の認証をサポートしてない
- vpopmailを入れるであれば、qmailも必要
- Dovecotでvpopmail形式の認証を行う場合は、vpopmailのヘッダファイルが必要
- グループ/ユーザの設定があって面度なので、yumでPostfixとDovecotはインストールしておく。
vpopmail形式とは? †
- vpopmailというPOP3サーバがあり、そのvpopmailは書籍でみたところバーチャルドメインユーザの管理が楽?
と思い導入することに、というか冒頭でも書いたようにPostgres入れるのも面倒だったのでね。
- しかしvpopmail形式を導入するには、当然のことながらvpopmailをインストールしないといけないのです。
しかもvpopmailをインストールするためにはqmailが必要と。堂々めぐり。
まずはqmail+vpopmailをインストールする †
- MTAをqmailにする訳ではなく、とりあえず入れるだけなのでご安心を。
- qmailのインストール手順
- どのmirrorでもいいのでnetqmail-1.05.tar.gzをダウンロードする(下記は日本のサイト)。
% wget http://www9.jp.qmail.org/netqmail-1.05.tar.gz
- ファイルを展開しパッチをあてる。
% gzip -cd netqmail-1.05.tar.gz | tar xf -
% cd netqmail-1.05/
% ./collate.sh
- qmailのインストール先ディレクトリを作成する。
# mkdir /var/qmail
- qmailで使用するグループ/ユーザを作成する。
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# 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
# groupadd qmail
# 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
- コンパイル&インストール
# cd ./netqmail-1.05/netqmail-1.05
# make setup check
- こっちもMUAをvpopmailにする訳ではなく、バーチャルドメイン管理コマンドを使用するだけなのでご安心を。
- vpopmailのインストール手順
- どのmirrorでもいいのでvpopmail-5.4.9.tar.gzをダウンロードする。
% wget http://cogent.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.9.tar.gz
% gzip -cd vpopmail-5.4.9.tar.gz | tar xf -
% cd vpopmail-5.4.9.tar.gz
- /etc/tcp.smtp を作成する。
127.:allow,RELAYCLIENT=""
- vpopmailで使用するグループ/ユーザを作成する。
# groupadd -g 20001 vchkpw
# useradd -g vchkpw -u 20001 -d /home/vpopmail -s /bin/false vpopmail
- configure する。
# ./configure \
--enable-tcpserver-file=/etc/tcp.smtp \
--enable-qmaildir=/var/qmail \
--enable-roaming-user=y \
--enable-many-domains=y \
--enable-qmail-ext=y \
--enable-ip-alias-domains=y \
--enable-clear-passwd=n
- コンパイル&インストール
# make
# make install-strip
# make install
- Dovecotのために共通ヘッダを/usr/includeにコピーする。
# cp /home/vpopmail/include/vpopmail.h /usr/include
# cp /home/vpopmail/include/vauth.h /usr/include
Dovecotをインストールする †
- yum で既に導入済みのDovecotがあるとしたら、それはそれでおいておきましょう。
- Dovecotのインストール手順
- dovecot-0.99.14.tar.gzをダウンロードする。
% wget http://dovecot.org/releases/dovecot-0.99.14.tar.gz
% gzip -cd dovecot-0.99.14.tar.gz | tar xf -
% cd ddovecot-0.99.14/
# ./configure --with-vpopmail
- 注意!!
- configureで最終行にvpopmailと表示されていること。この表示がない場合は、vpopmailを使用することができない。
configureを行うのは必ずrootユーザで行うこと。
それでもvpopmailが表示されていない場合は、qmail,vpopmailの設定をやりなおす。
Install prefix ...................... : /usr/local
File offsets ........................ : 64bit
Building with SSL support ........... : no
Building with IPv6 support .......... : yes
Building with pop3 server ........... : yes
Building with user database modules . : static passwd passwd-file vpopmail (modules)
Building with password lookup modules : passwd passwd-file shadow vpopmail (modules)
- コンパイル&インストール
# make
# make install-strip
# make install
- ここまでくれば、あとは設定だけ! もうひとがんばり!!
各種設定ファイルの変更 †
- 各種設定ファイルの変更の前にsea-bird.orgでは、以下のようにバーチャルドメイン設定ポリシーとしています。
プロセス | 設定ポリシー |
Postfix | メインドメイン(sea-bird.org)もバーチャルドメインとして扱う |
ドメインのメール受信ディレクトリは、'/home/vpopmail/domains'以下とする |
GID/UIDは、vpopmail(vchkpw=20001)とする |
mailの格納形式は、Maildir形式とする |
qmail | とりあえずインストールしただけ |
vpopmail | とりあえずインストールしただけ |
vadddomain, vadduser を使いたいのと Dovecotのため(笑) |
Dovecot | バーチャルドメインで振り分け分けられた、Maildirを参照する |
認証方式は、id/pw共にvpopmail形式とする |
- Postfixの設定
- /etc/postfix.main.cfの設定内容
#
# virtual-domain
#
# バーチャルドメインにはvirtualデーモンを用いる
virtual_transport = virtual
# メールボックスを保存するベースディレクトリ
virtual_mailbox_base = /home/vpopmail/domains
# メールの振り分け先を定義するmailbox_mapsファイルの指定
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
# バーチャルドメインの定義(メインドメンは、記述しないこと)
virtual_mailbox_domains = window-shop.biz
# 配送されるメールの最小UID(vchkpw=20001)
virtual_minimum_uid = 20001
# 配送されるメールのUID(vchkpw=20001)
virtual_uid_maps = static:20001
# 配送されるメールのGID(vchkpw=20001)
virtual_gid_maps = static:20001
# ローカル配送でもvirutalデーモンを用いる
local_transport = virtual
# ローカル配送でも、バーチャルメールの振り分け先を定義
local_recipient_maps = hash:/etc/postfix/vmailbox
- /etc/postfix/vmailboxの設定内容
hoge@window-shop.biz window-shop.biz/hoge/Maildir/
hoge@sea-bird.org sea-bird.org/hoge/Maildir/
- vpopmailの設定(バーチャルメールドメイン・アカウントの設定)
- メールドメインの追加(バーチャルドメインに対するメールアカウントpostmasterを追加します)
# /home/vpopmail/bin/vadddomain sea-bird.org
Please enter password for postmaster:
enter password again:
# /home/vpopmail/bin/vadddomain window-shop.biz
Please enter password for postmaster:
enter password again:
- メールドアカウントの追加(ここで入力するパスワードは、メール認証時のパスワードになります)
# /home/vpopmail/bin/vadduser hoge@sea-bird.org
Please enter password for hoge@sea-bird.org:
enter password again:
# /home/vpopmail/bin/vadduser hoge@window-shop.biz
Please enter password for hoge@window-shop.biz:
enter password again:
- 以下のファイルが作成されていることを確認する
/var/qmail/users/assign
/var/qmail/users/assign.lock
/var/qmail/users/cdb
/home/vpopmail/domains/sea-bird.org
/home/vpopmail/domains/sea-bird.org/hoge
/home/vpopmail/domains/sea-bird.org/postmaster
/home/vpopmail/domains/window-shop.biz
/home/vpopmail/domains/window-shop.biz/hoge
/home/vpopmail/domains/window-shop.biz/postmaster
- Dovecotの設定
- /usr/local/etc/dovecot.confの設定内容(yumでインストールされたconfとの差分)
# 使用するプロトコルの設定
protocols = imap imaps pop3 pop3s
#
login_dir = /var/run/dovecot-login
#
valid_chroot_dirs = /home
# mailの格納形式は、Maildir形式とする
default_mail_env = maildir:~/Maildir
# 認証は、vpopmail形式を使用する
auth_userdb = vpopmail
auth_passdb = vpopmail
- 手でインストールしたDovecotは、sslがつかえない・・・、証明書を自前で発行かなあ
ssl_cert_file = /usr/share/ssl/certs/dovecot.pem
ssl_key_file = /usr/share/ssl/private/dovecot.pem
各プロセスの起動 †
参考にさせて頂いたサイト様 †
|