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
```