マソム自宅サーバ構築の記録
- ■
-
postfix2.4でのSMTP-AUTHとTLS
-
作成日:07/10/01
更新日:09/08/07
SMTP-AUTH
LINUXのシステムアカウントを使ったplain認証を行う設定をします。
saslauthdのインストール
cyrus-sasl、cyrus-sasl-plain、cyrus-sasl-md5パッケージの内で、cyrus-sasl-md5が無かったのでyumでインストールしました。
パージョンは2.1.22-6です。
saslauthdの設定ファイル/usr/lib/sasl2/smtpd.confは以下のようにplain認証の設定になっているので、今は変更しません。
# vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
saslauthdの起動
saslauthdを起動します。
# /etc/init.d/saslauthd start
オプション -a shadow が付いて起動します。/etc/shadowファイルを認証に使うオプションです。
自動起動の設定もします。
# /sbin/chkconfig --level 35 saslauthd on
SMTP-AUTH用main.cfの設定
READMEファイル/usr/share/doc/postfix-2.4.3/README-Postfix-SASL-RedHat.txt の内容を参考に、以下を/etc/postfix/main.cfに追加しました。
## SMTP-AUTH
## SASLを使ったSMTP認証を有効にする
smtpd_sasl_auth_enable = yes
## 匿名の認証を許さない
smtpd_sasl_security_options = noanonymous
## 規格外の認証を許す
broken_sasl_auth_clients = yes
## リレー制限
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
以下は追加説明です。
規格外の認証を許す設定 broken_sasl_auth_clients = yes は、
Outlook Express等のバージョンによって認証の動作が規格外になっているのをサポートするそうです。ただしOutlook Express6.0以降は正常に動作するようです。
リレー制限の設定 smtpd_recipient_restrictions は、以下の通りです。
permit_mynetworks -------- mynetworksで設定したネットワークからは受け付けます
permit_sasl_authenticated --- SMTP認証したクライアントからは受け付けます
reject_unauth_destination --- 自ホスト宛てと設定されている以外のアドレスは拒否します
postfixの再起動
postfixを再起動します。
# /etc/init.d/postfix restart
LAN内のWindowsマシンのメーラー設定をSMTP-AUTH有り&PLAIN認証にして、メールの送信をテストしました。
TLS用main.cfの設定
READMEファイル/usr/share/doc/postfix-2.4.3/README_FILES/TLS_README の内容を参考に、以下を/etc/postfix/main.cfに追加しました。
SSLサーバ証明書と秘密キーの作り方は
こちらを参照して下さい。
## TLS
# RSA 鍵と証明書ファイル
smtpd_tls_cert_file = /etc/pki/tls/certs/www.mathomfactory.com.crt
smtpd_tls_key_file = /etc/pki/tls/private/www.mathomfactory.com_nopswd.key
# DSA 鍵と証明書ファイルの時は以下を使います
# smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
# smtpd_tls_dkey_file = $smtpd_tls_dcert_file
# ログのレベルを1にして、TLS接続と証明書情報を記録するようにします
smtpd_tls_loglevel = 1
# TLSを使う設定 Postfix 2.3以降用
smtpd_tls_security_level = may
# TLSを使う設定 Postfix 2.3以前
# smtpd_use_tls = yes
# 認証の規定値はTLSを使わなくても認証できる、です。
# TLSを必須とする時は、以下を使い yes に変更します。
# smtpd_tls_auth_only = no
# セッション・キャッシングを行う設定です。
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
# セッション情報の有効期間。
# 指定しないとopenSSLの規定値(1時間)を使います。RFC2246 は最高24時間を推薦しているそうです。
# 以下は10時間の設定です。
smtpd_tls_session_cache_timeout = 36000s
# 乱数生成元の指定です。セッションキー作成に使うようです。
tls_random_source = dev:/dev/urandom
以下は追加説明です。
サーバ鍵はパスフレーズを外しておく必要があるそうです。
SMTPクライアントの設定はしていません。
次に /etc/postfix/master.cf を変更します。
smtps のコメントを外します。
但し、smtpd_client_restrictions はREADMEの説明には無かったのでそのままにしました。
Outlook と Outlook Express 用に非標準のwrapperモードに対応する為だそうです。
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
postfixの再起動
postfixを再起動します。
# /etc/init.d/postfix restart
LAN内のWindowsマシンのメーラー設定でSMTPSをオンにして(ポート:465)、メールの送信をテストしました。
テストしたメーラーは、Becky!とOutlook Expressです。
紆余曲折Tips
CRAM-MD5認証用の設定
saslパスワード認証を行う場合は以下の設定を/etc/postfix/main.cfに追加します。saslpasswd2コマンドで指定するdomainはこちらに合わせます。
smtpd_sasl_local_domain = $mydomain
saslauthdの設定ファイル/usr/lib/sasl2/smtpd.confを以下のようにCRAM-MD5認証も出きるよう変更します。
# vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: sasldb
mech_list: plain login