はちゅにっき

こっちのブログはまったり更新

SMTP AUTH の導入

SMTPS はあくまでも通信路を暗号化するだけなので
SMTP は誰でも自由に使える状況のまま。。。
そこで、以前は POP before SMTP で認証を行なっていましたが
今回は SMTP AUTH を利用することに。

SMTP-AUTHの導入 - Debian's note
http://www.rainlib.com/index.php?SMTP-AUTH%E3%81%AE%E5%B0%8E%E5%85%A5

[Secure MTA(Postfix-TLS)] Debian Linux Server
http://www.jp-z.jp/linux/postfix_tls.html

Debian/Sarge でメールサーバ構築
http://espion.just-size.jp/archives/06/146170147.html

それと

/usr/share/doc/sasl2-bin/README.Debian.gz

にあるドキュメントを参考にして、設定しています。多謝。

必要なモジュールのインストール

aptitude install sasl2-bin libsasl2-modules

saslauthd の設定

/etc/default/saslauthd を以下の部分を編集

# ↓ no から yes に
START=yes

# ↓ スレッドを常駐させるほどアクセスはないので 0 にする
THREADS=0

# ↓ って書けって /usr/share/doc/sasl2-bin/README.Debian.gz に書いてあった
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

で以下のコマンドを実行

# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
# adduser postfix sasl

ここまで終わったら、saslauthd を再起動しました。

# /etc/init.d/saslauthd restart

postfix の設定

まずmain.cf の編集。
/etc/postfix/main.cf に以下の内容を追加

smtpd_sasl_auth_enable = yes               # smtp auth を利用する
smtpd_sasl_security_options = noanonymous  # anonyous 認証を拒否
broken_sasl_auth_clients = yes             # 古いクライアント用らしい

# 送信できる条件は
#  - 自ネットワークからのメール
#  - 認証済みメール
#  - 自サーバ宛のメール
# あとは全部拒否
smtpd_recipient_restrictions = permit_mynetworks,
                               permit_sasl_authenticated,
                               permit_auth_destination,
                               reject

お次に smtpd.conf の作成。
/etc/postfix/sasl/smtpd.conf を新規作成し、以下の内容を記述

pwcheck_method: saslauthd
mech_list: plain login

で、postfix の再起動。

# /etc/init.d/postfix restart


これで設定は終わり?
内部から外部にメールが送れることは確認しましたが
外部からメールが送れるかはまだ未確認。。。