Edited at

Postfix設定メモ

参照サイト: http://kajuhome.com/postfix.shtml

参照サイト: http://www.turbolinux.com/products/server/11s/user_guide/smtpauth.html


メモ・必要知識


postfixとは・・・

Postfixはsendmailに代わるMTA (Mail Transport Agent)として開発されたソフトウェアで、sendmailとの互換性が高く、安全、メンテナンスが容易、速い、などの特徴を兼ね備えたメールサーバソフトです。最近ではLinuxの一部のディストリビューションで標準のMTAとして採用されています。

PostfixはSMTPサーバとしての機能しか持っていないため、メールサーバとして稼働するにはPOPサーバやIMAPサーバが別途必要になるかもしれません。


Dovecotとは・・・

Dovecot(ダヴコット)とは、Timo Sirainenが開発・公開をしている、UNIXライクなOS上で動作する、POP3/IMAPに対応したメール配送エージェントである。


SMTP-AUTH (SASL認証)とは・・・

メール送信に使うSMTPにユーザ認証機能を追加したものです。

主に外部からのメールを送信する場合(Outlookなどのメーラーからの送信する場合)に必須。

これを使用することにより、SMTPサーバ(メール送信サーバ)がユーザー認証を行うことによりメールの不正中継や、メールアカウントの不正利用を防ぐことが出来ます。

この認証にSASL認証を使用します。


PAM認証とは・・・

FTPやsuコマンドなどで使用している認証方法。


POP before SMTPとは・・・

電子メールの送信を行う際のユーザ認証方法の一つ。送信前に指定したPOP3サーバにあらかじめアクセスさせることによって、SMTPサーバの使用許可を与える方式。「PbS」と略記されることも稀にある。

SMTP認証(SMTP-AUTH)を使うことをお勧めするサイトが多い。


SASL認証とは・・・

Postfixを通じたMailの送受信において、ユーザの認証を可能にするための仕組み。

Postfix自体は認証メカニズムを持っておらず、広く認められている認証機構のひとつであるSASLの枠組みを使う。

SASLでは、PLAIN(暗号化されていない平文パスワード)、CRAM-MD5 あるいはその改良版DIGEST-MD5 (チャレンジアンドレスポンド方式の認証)、EXTERNAL(TLSのような外部の仕組み)など様々な認証メカニズムを利用することが可能である。

パスワードの検証は、saslauthd、sasldb、SQLデータベース、LDAPなどの方法で行われる。このうち、saslauthdはSASL 独自の認証データベースを作らず、

オペレーティングシステムの認証機構を利用するためのデーモンであり、root 権限が必要な認証機構を個々のアプリケーションから直接利用できるよう、saslauthd デーモンがアプリケーションと認証機構の間を橋渡しする。saslauthd を使えば PAM を経由して様々な認証機構が利用出来るが、 PLAIN や LOGIN などの平文パスワードを使った認証メカニズムでしか利用出来ない。

sasldb、SQLでは、データベースにパスワードを格納することができ、またLDAPでは認証データをLDAPサーバに格納することができる。


Postfixインストール

インストールされているか

# rpm -q postfix

インストールされていない場合インストール
# yum install postfix

MTAをSendmailからPostfixに切り替える
# alternatives --config mta

設定ファイルを確認(内容はサイト参照)
# vi /etc/postfix/main.cf

バージョン確認
# postconf | grep mail_version

設定一覧表示
# postconf


SMTP Authetication関係の設定

SMTP設定ファイルに認証方法を指定

# vim /usr/lib64/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login

パスワードDB作成
# saslpasswd2 -c -u example.com username

設定したパスワードを削除する場合は、以下のようにします。
# saslpasswd2 -d -u example.com ユーザ名

作成されたパスワードの確認は、以下のように sasldblistusers2 と入力すると、登録されてるユーザ名が表示されます。
# sasldblistusers2
hoge@example.com: userPassword

Postfix が sasldb を閲覧できるようにpostfixグループを追加し、パーミッションを変更します。
# chgrp postfix /etc/sasldb2
# chmod 640 /etc/sasldb2


Dovecotインストール

dovecotとは、POPサーバ(受信メールサーバ)機能を提供するパッケージです。

参照サイト: http://kajuhome.com/dovecot.shtml

dovecot バージョンの確認

# rpm -qa dovecot

なければインストール
# yum -y install dovecot

設定ファイルの編集 ※設定はサイト参照
# vi /etc/dovecot/dovecot.conf

起動
# /etc/rc.d/init.d/dovecot start

起動時にdovecotを起動する
# chkconfig dovecot on

設定内容を確認
# chkconfig --list dovecot
dovecot 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ

設定ファイルの編集
# vi /etc/postfix/main.cf
----------------------------最終行に以下を追加
# バーチャルホスト設定ファイルを指定
virtual_alias_maps= hash:/etc/postfix/virtual
----------------------------

virtualファイルの設定
# vi /etc/postfix/virtual
----------------------------最終行に以下を追加
kaju.homeip.net anything
linux@kaju.homeip.net linux
user1@kaju.homeip.net user1
user2@kaju.homeip.net linux
----------------------------

上記「postfixの設定」が完了したらvirtual DBファイルを更新する
# postmap /etc/postfix/virtual

postfixを再起動して設定を反映させる
# /etc/rc.d/init.d/postfix restart