はじめての自宅サーバ構築 - Fedora/CentOS - Last Update 2008/07/25
It opened to 2004/09/19.
当サイトはFedora9で運用しています
Visitors
Pageviews
Today(IP/PV)
3,374,118
12,762,090
1,276/8,712
動作確認 [ Fedora8 / Fedora9 / CentOS5 ]
  1. はじめに・・・
  2. 各サービスのインストール
  3. postfixの設定
    バーチャル転送(同名)設定ファイルの設定
    バーチャルドメイン設定ファイルの作成と設定
    メールボックス定義ファイルの作成と設定
  4. dovecotの設定
    dovecot用パスワードファイルの作成と設定
  5. procmailの設定
  6. クライアントメールソフトの設定
    設定例(Becky!)

■ はじめに・・・

ひとつのサーバで複数ドメインのメールアドレスを扱う構築方法は多々のサイトで見かけます。
当サイトで紹介している『バーチャルメールサーバの設定(Virtual Postfix)』でも紹介していますが、大きな問題はメールボックスが1つである事です。
要は、バーチャルドメイン宛てのメール(linux@kaju.homeip.net)もリアルドメインのメールボックス(linux@kajuhome.com)に配送されてしまいます。
(※:「kajuhome.com」をリアルドメイン、「kaju.homeip.net」をバーチャルドメインと表記しています。)

別にこれでも構わないなら問題ないのですが、できることならメールボックスもドメイン毎に管理したいと思いました。 色々と調べるとリアルドメインをバーチャルとして扱えばメールボックスを個別のものにする事ができます。(多々のサイトで構築方法が紹介されている。)
(余談:バーチャルメールは、UNIX上にアカウントがなくても可能。メールアドレスのみ提供しているサービスなどはこの方法を利用していると思われます。)
いわゆる「バーチャルメールアドレス」と呼んでいて、これでも十分利用できます。

しかし、大きな問題点として「バーチャルメールアドレス」はメール振り分けをなどを行う「procmail」が利用できません。
当方はリアルドメインのメールは「procmail」でSPAMメールの処理やメール加工したものを携帯アドレスに転送などを行っているので必須となっています。

こちらの紹介ページは個別のメールボックスを利用し、かつ、「procmail」も動作する方法を紹介しています。
(注意:「procmail」が動作するのはリアルドメインであって、バーチャルドメインは動作しないので注意する事。)

■ 各サービスのインストール

SMTPサーバ「postfix」とPOP/IMAPサーバ「dovecot」、メール振り分けの「procmail」をインストールします。
既にインストール済みの場合は読み飛ばして下さい。
# yum -y install postfix dovecot procmail

■ postfixの設定

設定ファイルの編集
# vi /etc/postfix/main.cf

ホスト名を設定する(ホスト名.ドメイン名)
myhostname = fedora.kajuhome.com

ドメイン名を設定する
mydomain = kajuhome.com

送信者メールアドレスの@以降をドメイン名にする
myorigin = $mydomain

Postfix が待ち受けるべき全てのネットワークインターフェースを指定
inet_interfaces = all

メールをローカルで受信するドメイン名を指定(ドメイン全体のメールサーバ)
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

信頼されたネットワークをCIDR (network/mask) 表記で指定(ローカルネットワーク)
mynetworks = 192.168.1.0/24, 127.0.0.0/8

中継を許可するドメインを指定
relay_domains = $mydestination


バーチャル設定(最終行に追加)

バーチャル転送(同名)設定ファイルの指定
virtual_alias_maps = hash:/etc/postfix/virtual
メールボックスの基点を指定
(以下のディレクトリに全ユーザの「リアルドメイン」「バーチャルドメイン」のメールが管理される)
virtual_mailbox_base = /home/user_mails
バーチャルドメイン設定ファイルの指定
virtual_mailbox_domains = /etc/postfix/virtual_domains
各メールアカウントのメールボックス定義を行う設定ファイルの指定
virtual_mailbox_maps = hash:/etc/postfix/virtual_maps
バーチャルメールの最小のUIDを指定(これより小さいUIDは拒否。
(以下は、一般ユーザの追加を行った場合(Fedora/CentOS)のデフォルト最小値「500」を基準としている。)
virtual_minimum_uid = 499
バーチャルドメインで動作するメールボックスの配送を行うUIDを指定(適当値で)
virtual_uid_maps = static:5000
バーチャルドメインで動作するメールボックスの配送を行うGIDを指定(適当値で)
virtual_gid_maps = static:5000

■ バーチャル転送(同名)設定ファイルの設定

# vi /etc/postfix/virtual
        :
        :
        :
# AUTHOR(S)
#        Wietse Venema
#        IBM T.J. Watson Research
#        P.O. Box 704
#        Yorktown Heights, NY 10598, USA
#
#                                                                     VIRTUAL(5)
最終行に何も設定されていない事を確認

■ バーチャルドメイン設定ファイルの作成と設定

# vi /etc/postfix/virtual_domains
管理したいバーチャルドメインを設定(複数ある場合は、1行毎に1ドメインを設定する)
kaju.homeip.net

注意:ここには「リアルドメイン」を設定しない事。
      本来の目的である「procmail」が動作しなくなります。

■ メールボックス定義ファイルの作成と設定

# vi /etc/postfix/virtual_maps
各ドメイン毎(メールアドレス毎)のメールボックスを定義する。
# kajuhome.com
linux@kajuhome.com   kajuhome.com/linux/Maildir/
fedora@kajuhome.com   kajuhome.com/fedora/Maildir/
# kaju.homeip.net
linux@kaju.homeip.net   kaju.homeip.net/linux/Maildir/
fedora@kaju.homeip.net   kaju.homeip.net/fedora/Maildir/
centos@kaju.homeip.net   kaju.homeip.net/centos/Maildir/

注意:「リアルドメイン」「バーチャルドメイン」の管理したいメールアドレス全てを定義する事。
   また、メールボックスの末尾に「/」を忘れない事。(Maildir形式となります。)

上記例)
linux@kajuhome.com   kajuhome.com/linux/Maildir/

「linux@kajuhome.com」のメールボックスはメールボックスの基点「virtual_mailbox_base」で指定した
ディレクトリ配下に「kajuhome.com/linux/Maildir/」として作成される。
すなわち、「/home/user_mails/kajuhome.com/linux/Maildir/」が「linux@kajuhome.com」のメールボックスとなる。

メールボックス定義ファイルのDB化
# postmap /etc/postfix/virtual_maps

メールボックスの基点作成とパーミッション変更
# mkdir /home/user_mails
# chmod 1777 /home/user_mails

※:スティッキービット「1」を忘れない事。(以下パーミッション部分に「t」が付加される)

作成したメールボックスの基点の確認
# ls -ld /home/user_mails
drwxrwxrwt 13 root root 4096 2007-12-20 12:01 /home/user_mails

■ dovecotの設定

設定ファイルの編集
# vi /etc/dovecot.conf
プロトコルを指定
protocols = imap imaps pop3 pop3s

メールボックス(Maildir)を指定
mail_location = maildir:/home/user_mails/%d/%n/Maildir
%の意味:
  %d  :ドメイン名
  %n  :アカウント名

パスワードファイルを指定(「auth default」カテゴリ内である事に注意)
auth default {
  passdb passwd-file {
    # Path for passwd-file
    args = /etc/dovecot-passwd
  }
  userdb passwd-file {
    # Path for passwd-file
    args = /etc/dovecot-passwd
  }
}

■ dovecot用パスワードファイルの作成と設定

# vi /etc/dovecot-passwd
各メールアドレス毎に設定する。
# kajuhome.com
linux@kajuhome.com:{plain}reallinuxpasswd:500:500::/home/user_mails/kajuhome.com/linux:/sbin/nologin:
fedora@kajuhome.com:{plain}realfedorapasswd:501:501::/home/user_mails/kajuhome.com/fedora:/sbin/nologin:

# kaju.homeip.net
linux@kaju.homeip.net:{plain}virtuallinuxpasswd:5000:5000::/home/user_mails/kaju.homeip.net/linux:/sbin/nologin:
fedora@kaju.homeip.net:{plain}virtualfedorapasswd:5000:5000::/home/user_mails/kaju.homeip.net/fedora:/sbin/nologin:
centos@kaju.homeip.net:{plain}virtualcentospasswd:5000:5000::/home/user_mails/kaju.homeip.net/centos:/sbin/nologin:

※:フォーマット
 user:password:uid:gid:gecos:home:shell:extra

  user   :メールアドレス
  password :パスワード(上記では「plain」としているがMD5等も指定可)
  uid    :ユーザID
          リアルドメインの場合  :「/etc/passwd」のユーザ名のIDと同一にする事
          バーチャルドメインの場合:「5000」固定。(postfix設定ファイルで指定した「virtual_uid_maps」の値)
  gid    :グループID
          リアルドメインの場合  :「/etc/group」のユーザ名のグループIDと同一にする事
          バーチャルドメインの場合:「5000」固定。(postfix設定ファイルで指定した「virtual_gid_maps」の値)
  gecos   :ユーザの詳細情報(設定しない)
  home   :メールボックスを指定
  shell   :シェル(上記では「/sbin/nologin」として無効)
  extra   :予備(何も使われていない)

■ procmailの設定

「procmail」自身の設定ファイルはありません。
ユーザ(アカウント)宛てのメールをどの様に振る舞うか?の指定を行います。
レシピファイルの作成

全ユーザ共通の場合  : /etc/procmailrc
各ユーザ個別の場合  : < ユーザホームディレクトリ >/.procmailrc

linuxユーザのレシピを作成する場合
# vi /home/linux/.procmailrc
MAILDIRECTORY=/home/user_mails/kajuhome.com
LOGFILE=$HOME/procmail.log
LOCKFILE=$HOME/.lockfile
DEFAULT=$MAILDIRECTORY/$LOGNAME/Maildir/

:0fw
*!^X-Spam.*
|/usr/bin/spamassassin

:0
* ^X-Spam-Status: Yes
$DEFAULT/.Spam/

:0
$DEFAULT

※:上記のレシピは例ですので、ご自身の目的に合ったレシピを作成して下さい。
  なお、当サイトではレシピ自身の説明や回答は行っていません。

■ クライアントメールソフトの設定

■ 設定例(Becky!)

メールボックスの設定で「基本設定」タブを開き、以下の項目を指定します。

【例】リアルドメインの「linux」メールアカウント「linux@kajuhome.com」の場合

【例】バーチャルドメインの「linux」メールアカウント「linux@kaju.homeip.net」の場合

■ 広告

ページ先頭へ

Copyright(©)2004-2008 First home server construction. All Right Reserved.