「Postfix」の設定

FreeBSD5.3-RELEASEでは、2.1系で作業し、FreeBSD6.0-RELEASEでは2.2系で作業をしました。
POP+IMAPサーバには「Courier-IMAP」を用いることを前提に設定します。
また、外部からもメールを利用できるようにし、不正中継を行わないようにSMTP-AUTHの設定を行います。
そして、デフォルトで動作している「Sendmail」から「Postfix」へ移行します。
なお、「Outbound Port25 Blocking」への対応方法はこちらを参照して下さい。

「Postfix」のインストール
FreeBSD# cd /usr/ports/mail/postfix <= 作業ディレクトリへ移動
FreeBSD# make install clean <= 「Postfix」のインストール
以下の3つをチェックする
[X] SASL2     Cyrus SASLv2 (Simple Authentication and Security Layer)
[X] TLS       SSL and TLS
[X] DB43      Berkeley DB4.3 (required if SASL also built with DB4.3)

インストール時、以下のように質問されるが、2回とも y と入力する
You need user "postfix" added to group "mail".
Would you like me to add it [y]? <= ユーザ postfix と、グループ mail を自動的に更新する
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?  <= 「Postfix」を「sendmail」の代用にする


FreeBSD# rehash <= コマンドを通す
「Postfix」の設定
FreeBSD# vi /usr/local/etc/postfix/main.cf <= 設定ファイルの編集
#myhostname = host.domain.tld
↓
myhostname = FreeBSD.crimson-snow.net <= ホストネームを指定

#mydomain = domain.tld
↓
mydomain = crimson-snow.net <= ドメイン名を指定

#myorigin = $mydomain
↓
myorigin = $mydomain <= コメント解除( @ 以下のアドレス)

メールを受け取る範囲を指定する
#inet_interfaces = all
↓
inet_interfaces = all <= コメント解除

自ホストが最終的な宛先とみなすアドレスの変更
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain <= コメント解除

#mynetworks = 168.100.189.0/28, 127.0.0.0/8
↓
mynetworks = 192.168.0.0/16, 127.0.0.0/8 <= 変更(LANのアドレスとローカルホストアドレスを指定)

エイリアスの設定
#alias_maps = hash:/etc/aliases
↓
alias_maps = hash:/etc/mail/aliases

#alias_database = hash:/etc/aliases
↓
alias_database = hash:/etc/mail/aliases


#home_mailbox = Maildir/
↓
home_mailbox = Maildir/ <= コメント解除(メールボックスをmaildir形式に変更)

#smtpd_banner = $myhostname ESMTP $mail_name
↓
smtpd_banner = mail.$mydomain ESMTP $mail_name <= サーバ情報の表示を変更


SMTP認証の為に以下を追加
smtpd_sasl_auth_enable = yes <= SMTP認証を有効にする
smtpd_sasl_local_domain = $mydomain <= SMTP認証するローカルドメインの指定
smtpd_sasl_security_options = noanonymous, noplaintext
	・noanonymous <= 匿名を許可しない
	・noplaintext <= 暗号化されないパスワードを許可しない
broken_sasl_auth_clients = yes <= AUTHコマンドのサポートを認識できないクライアントへの対応
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
 <= SMTP認証の要求(リレーするものを設定)
	・permit_mynetworks <= mynetworksで指定されたネットワークからのリレーを許可
	・permit_sasl_authenticated <= SMTP認証を通過したものは許可
	・reject_unauth_destination <= 上記以外拒否

root宛てのメールを一般ユーザに転送します。

FreeBSD# vi /etc/mail/aliases
root:		kaz <= 追加(一般ユーザ kaz に転送)


FreeBSD# newaliases <= aliasesの読み込み
ヘッダの書き換え

ヘッダにあるLANの情報を削除します。

main.cfの設定

FreeBSD# vi /usr/local/etc/postfix/main.cf <= 設定ファイルの編集
#header_checks = regexp:/usr/local/etc/postfix/header_checks
↓
header_checks = regexp:/usr/local/etc/postfix/header_checks <= コメント解除

header_checksの設定

FreeBSD# vi /usr/local/etc/postfix/header_checks <= 設定ファイルの編集
/^Received:.*192\.168\..*/ IGNORE <= 追加
/^Received:.*127\.0\.0\.1.*/ IGNORE <= 追加
SMTP認証の為のSASLの設定

SMTP認証にはシステムアカウントを利用する方法と、sasldb2を利用する方法があります。
sasldb2を利用すれば、システムアカウントとは異なるパスワードを設定できますので、 こちらの方がセキュリティは高くなります。

1.システムアカウントを利用した認証(pamを利用)

pamを利用する場合、CRAM-MD5等の暗号化したパスワードが利用できない為、上記の「Postfix」の設定を変更します。

FreeBSD# vi /usr/local/etc/postfix/main.cf <= 設定ファイルの編集
smtpd_sasl_security_options = noanonymous, noplaintext
↓
smtpd_sasl_security_options = noanonymous <= 「noplaintext」の削除

「saslauthd」の設定

認証メカニズムはPLAIN方式とLOGIN方式に限定します。

FreeBSD# vi /usr/local/lib/sasl2/smtpd.conf <= 設定ファイルの作成
pwcheck_method: saslauthd <= 追加
mech_list: plain login <= 追加

2.sasldb2による認証

認証方式をCRAM-MD5、DIGEST-MD5方式に限定します。

FreeBSD# vi /usr/local/lib/sasl2/smtpd.conf <= 設定ファイルの作成
pwcheck_method: auxprop <= 追加
mech_list: cram-md5 digest-md5 <= 追加

SASLのデータベースにユーザを追加します。

FreeBSD# /usr/local/sbin/saslpasswd2 -u crimson-snow.net -c kaz <= ユーザ kaz を追加
Password: <= パスワード
Again (for verification): <= パスワード(確認)

・パスワード変更
FreeBSD# /usr/local/sbin/saslpasswd2 -u crimson-snow.net kaz <= ユーザ kaz のパスワードを変更
Password: <= パスワード
Again (for verification): <= パスワード(確認)

・ユーザ削除
FreeBSD# /usr/local/sbin/saslpasswd2 -u crimson-snow.net -d kaz <= ユーザ kaz を削除

・ユーザ確認
FreeBSD# /usr/local/sbin/sasldblistusers2
「Cyrus SASL」の自動起動

FreeBSD起動時に「saslauthd」が起動するようにします。

FreeBSD# vi /etc/rc.conf <= 設定ファイルの編集
saslauthd_enable="YES" <= 追加
saslauthd_flags="-a pam" <= システムアカウントを利用した認証方法の場合
saslauthd_flags="-a sasldb" <= sasldb2による認証の場合
「Sendmail」から「Postfix」への移行

「Postfix」のインストール時に
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?
という質問に y と答えた場合、FreeBSD起動時に「Sendmail」ではなく「Postfix」が起動するよう設定ファイルに記述します。

FreeBSD# vi /etc/rc.conf <= 設定ファイルの編集
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
「Postfix」の起動
FreeBSD# /usr/local/sbin/postfix start
▲ページのトップへ