実践Linux
CentOS5/6.5 CentOS5/6.5 目次へ TOP(HOME)へ
Mailサーバー(CentOS 6.5の場合) 2014年9月更新
ns1.my-dom.xxxにはDNSで別名mail.my-dom.xxxが設定されているものとする。
ここでは、外部からの送受信要求は想定していない。内部からのみ。
外部からの要求を受け付ける設定は、実際の運用のページを参照。
●メールサーバー(Postfix)
Postfixは、標準でインストール済みのはず。
/etc/postfix/main.cf postfixの基本設定
ほとんどの設定は変更の必要はない。
myhostname = mail.my-dom.xxx
mydomain = my-dom.xxx これで***@mail.my-dom.xxxや***@my-dom.xxxでメールが届くようになる。ただし、***@ns1.my-dom.xxxでは届かないので注意。
myorigin = $myhostname @以下に付加する文字列
inet_interface = all メールを受け取るネットワークインターフェイス。localhostだとメールが受信できない。
inet_protocols = ipv4 allだとaliasesの設定で警告がでる。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 最終着地だと判断するドメイン
mynetworks = 192.168.7.0/24, 127.0.0.0./8 リレー制限
relay_domain = 上以外で転送を許可するドメイン
home_mailbox = Maildir/ 配送形式
myhostname = mail.my-dom.xxx
mydomain = my-dom.xxx これで***@mail.my-dom.xxxや***@my-dom.xxxでメールが届くようになる。ただし、***@ns1.my-dom.xxxでは届かないので注意。
myorigin = $myhostname @以下に付加する文字列
inet_interface = all メールを受け取るネットワークインターフェイス。localhostだとメールが受信できない。
inet_protocols = ipv4 allだとaliasesの設定で警告がでる。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 最終着地だと判断するドメイン
mynetworks = 192.168.7.0/24, 127.0.0.0./8 リレー制限
relay_domain = 上以外で転送を許可するドメイン
home_mailbox = Maildir/ 配送形式
転送設定
/etc/aliasesを編集
tarou: tarou,maru@peke.ne.jp 自分にも残して、maruに転送。
hanako: sima 自分には残さないで、simaに転送。
データベースに反映(/etc/aliases.dbの更新)
# postalias /etc/aliases
●POPサーバー(dovecot)
/etc/dovecot/dovecot.conf の編集
protocols = pop3
listen = * デフォルトの「listen = *, ::」ではエラーがでる。IPV6の設定が余計。
!include conf.d/*.conf
/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
外部に対しては、ポート(110や995)を開かない。内部使用のみ。
●クライアント
ポートの設定は、995、「sslが必要」にチェック。
●SSL/TLSを利用した暗号化通信については、SSL/TLSのページを参照してください。
バーチャルドメインの設定(新しく取得したnew-dom.xxxを想定。ドメインの追加を参照。)
@共有ドメイン
main.cfに以下のような設定をする。 mydestination = $mydomain, $myhostname, new-dom.xxx すると、$mydomain(my-dom.xxx)、$myhostname(mail.my-dom.xxx)、new-dom.xxx宛のメールを受け取るようになる。受け取るのはUNIXアカウントのユーザー。 user1@my-dom.xxx、user1@mail.my-dom.xxx、user1@new-dom.xxxはすべてUNIXユーザーuser1が受け取ることになる。 |
Aバーチャルエイリアス(別のUNIXユーザーに転送)
@ではすべて同じユーザーに配送されたが、バーチャルドメイン宛を別のUNIXユーザーが受け取るようにできる。 main.cfの設定
mydestinationにはnew-dom.xxxを指定しない。(virtual_alias_domainsに指定。)
mydestination = $mydomain, $myhostname virtual_alias_domains = new-dom.xxx 空白または「,」で区切って複数指定可能。 virtual_alias_maps = hash:/etc/postfix/virtual ユーザリストの指定 ユーザリスト/etc/postfix/virtual(転送先を列挙、/etc/aliasesの転送設定と同じ) postmaster@new-dom.xxx postmaster
user1@new-dom.xxx user2 user3@new-dom.xxx user3 ( @new-dom.xxx user4 ←キャッチオールアドレス ) これでuser1@new-dom.xxx宛はuser2に届く。この場合user2やuser3は実在しなくてはならないが、user1は実在しなくてもよい。 virtual_alias_domains に定義されたドメインで、virtual_alias_mapsに登録されていないメールアドレスはSMTPの時点で「User unknown」で拒否されるが、キャッチオールアドレスを設定するとそれらをuser4が受け取るようにできる。ただし、スパムメールなど大量のメールが配送されてくる危険性があるので注意。 データベース化 # postmap /etc/postfix/virtual ←/etc/postfix/virtual.dbにデータベース化 |
Bバーチャルメールボックス(OSに存在しないユーザーに配送。UNIXユーザとは別のアカウント)
バーチャルMailBox機能を使うと,OSのアカウントを増やすことなくメールのみを使用するユーザーを増やすことができる。 例として,user1@my-dom.xxxとuser1@new-dom.xxxの二つのアドレスをバーチャルMailBoxで別々に管理する。user1は実在しなくてかまわない。 /etc/postfix/main.cfを編集
mydestination = $myhostname,localhost ←エラーメッセージなど内部メールの受け取り用。これらは***@mail.my-dom.xxxで送られてくるようなので、***@mail.my-dom.xxxはUNIXユーザーで使い、***@my-dom.xxxはバーチャルで使うようにした。さらに、ほとんどものはrootあてに転送されてくるので、rootあてメールをさらに適当なバーチャルメールボックスに転送する設定を/etc/aliasesの最後に加えておくとよい(root:
user1@my-dom.xxx等)。
virtual_mailbox_domainsに指定したドメインはmydestinationやvirtual_alias_domainsには指定しないように注意。virtual_mailbox_domains = $mydomain,new-dom.xxx バーチャルメールボックスを利用するドメインを指定 virtual_mailbox_base = /var/spool/mail/vhosts バーチャルメールボックスの場所を指定 。バーチャルメールボックスはこのフォルダ配下になる。 virtual_mailbox_maps = hash:/etc/postfix/vmailbox メールアドレスとそれに対する配送先を記したテーブル virtual_minimum_uid = 5000 virtual_uid_mapsから受け取るuidの最小値 virtual_uid_maps = static:5000 配送エージェントがメールボックスの書き込みに使用するユーザーID virtual_gid_maps = static:5000 配送エージェントがメールボックスの書き込みに使用するグループID #virtual_alias_domains = これは指定しない virtual_alias_maps = hash:/etc/postfix/virtual 転送リスト virtualグループ、ユーザーの作成
virtual_uid_maps = static:5000、virtual_gid_maps = static:5000で指定したuid、gid
で書き込みができるように専用グループ、ユーザーを作る。(ここではvirtual名で作成)
# groupadd -g 5000 virtual # useradd -g 5000 -u 5000 -s /sbin/nologin -d /var/spool/mail/vhosts virtual /etc/postfix/vmailboxを編集。
user1@my-dom.xxx user1@my-dom.xxx/Maildir/
user1@new-dom.xxx user1@new-dom.xxx/Maildir/ あて先と配送先を指定。user1@my-dom.xxx宛てのメールは/var/spool/mail/vhosts/user1@my-dom.xxxに、user1@new-dom.xxx宛てのメールは/var/spool/mail/vhosts/user1@new-dom.xxx に配送される。 配送先の指定で、最後が / で終わっているとMaildir形式となる。 vmailboxファイルを反映。 # postmap /etc/postfix/vmailbox 転送設定:ドメインあてのエラーの通知を受け取るpostmasterなどについては、バーチャルエイリアスで設定する。(A参照) main.cfの設定(再確認) virtual_alias_domains = これは指定しない virtual_alias_maps = hash:/etc/postfix/virtual ユーザリストの指定 /etc/postfix/virtual postmaster@my-dom.xxx postmaster (これはさらにrootに転送される。/etc/aliases) postmaster@new-dom.xxx postmaster user2@my-dom.xxx foo@******.co.jp データベース化 # postmap /etc/postfix/virtual ←/etc/postfix/virtual.dbにデータベース化 Dovecotの設定 Postfixの設定が終われば、次はメールクライアントでメールを閲覧できるように、Dovecotを設定する。当然、アカウントとパスワードはUNIXアカウントとは別のものを用意する。 ここでは暗号化されたパスワードを使ってみる。 /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:/var/spool/mail/vhosts/%u/Maildir /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no Plaintextでの認証の有効化 mechanisms = plain login cram-md5 平文パスワードと暗号化パスワード #!include auth-system.conf.ext コメントアウト(これは使わない=pam認証を無効にする) !include auth-passwdfile.conf.ext コメントアウトをはずす(こちらを使う) /etc/dovecot/conf.d/auth-passwdfile.conf.ext passdb { driver = passwd-file #args = scheme=CRYPT username_format=%u /etc/dovecot/users コメントアウト args = /etc/dovecot/passwd 追加 } userdb { driver = passwd-file #args = username_format=%u /etc/dovecot/users コメントアウト args = /etc/dovecot/passwd 追加 } 次にPOP/IMAPアカウントを作成する。 まず、パスワードを決めてdoveadmコマンドで暗号化。(# doveadm pw -s 認証スキーム。スキームを省くとCRAM-MD5になる。スキームの種類は、# doveadm pw -l) # doveadm pw {CRAM-MD5}dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3 これをコピーして/etc/dovecot/passwdに貼り付ける /etc/dovecot/passwdの作成 (dovecot.confをコピーして作成するとよい。権限、Selinuxを引き継げる。)
user1@my-dom.xxx:{CRAM-MD5}dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3:5000:5000::/var/spool/mail/vhosts/user1@my-dom.xxx/Maildir
user1@new-dom.xxx:{CRAM-MD5}5aba2ca129c8462988ba3c39e7d9c8803e411ed05a8b5415897962514beb0e7b:5000:5000::/var/spool/mail/vhosts/user1@new-dom.xxx/Maildir 書式 (ユーザー名):{CRAM-MD5}abcdefg123456....:(uid):(gid):::::(メールボックスへのパス) 第1フィールドがuser1のみだとどのドメインのuser1なのか識別できないのでアカウントをuser1@my-dom.xxx等にするのがミソ。 dovecot-passwdファイルの変更では dovecotプロセスを再起動する必要はない。 |
※ バーチャルメールボックスとSSL/TLSを使用した設定は、実際の運用のページを参照。
TOP(HOME)へ