SMTP_AUTHとは
Smtpサーバにユーザ認証機能をもたせるものです。これを利用することでSPAMメールなどの踏み台にされることを回避しつつ
自分のネットワーク外からもSMTPサーバを手軽に利用することが可能となります。
今回は一般的に設定されているMD5を利用せず、ユーザアカウントとそのパスワードで認証する方式をとります。 安全性は多少落ちますが、MD5を利用すると一人一人ユーザごとに新規のパスワードを設定する必要があり、 非常にめんどくさいです。
それはさておき、企業ならともかく個人用ならばSSL+plain認証で十分だと思います。
※これはPostfixの導入及びPostfix-TLSの導入が完了していることが前提となります。
設定
まずAPTより必要なものをインストールします。
# aptitude update
# aptitude install sasl2-bin libsasl2-modules
設定すべきファイルは4つあります。 # aptitude install sasl2-bin libsasl2-modules
■ 認証方式の設定ファイル
今回はアカウントを新規に作成せず、既存のユーザアカウントのパスワードを利用する方式を指定します。
# vim /usr/lib/sasl2/smtpd.conf
ファイルの中身は
pwcheck_method: saslauthd
mech_list: plain login
のように記述します。mech_list: plain login
■ 認証サービスの設定
まずファイルを開きます。
# vim /etc/default/saslauthd
設定すべき点はⅠ)認証用サービスの自動起動
# 6行目付近
START=no
↓
START=yes
Ⅱ)サービスのスレッド数指定START=no
↓
START=yes
スレッド数を0にすればコネクションごとにスレッドを立ち上げます。
# 31行目付近
THREADS=5
↓
THREADS=0
Ⅲ)Postfixのオプション指定THREADS=5
↓
THREADS=0
# 38行目付近
OPTIONS="-c"
↓
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
指定したフォルダの作成OPTIONS="-c"
↓
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
# mkdir /var/spool/postfix/var
# mkdir /var/spool/postfix/var/run
# mkdir /var/spool/postfix/var/run/saslauthd
# mkdir /var/spool/postfix/var/run
# mkdir /var/spool/postfix/var/run/saslauthd
■ Postfixの設定
# vim /etc/postfix/main.cf
設定ファイルの一番下にでも追加します。
###SMTP_AUTHを有効にする
smtpd_sasl_auth_enable = yes
###anonymousのログインを禁止
smtpd_sasl_security_options = noanonymous
###リレー制御の設定
###自分のネットワーク内、もしくは認証を通過したもののみリレーする。それ以外は拒否。
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
###SMTP_AUTHに対応していないクライアント用
broken_sasl_auth_clients=yes
smtpd_sasl_auth_enable = yes
###anonymousのログインを禁止
smtpd_sasl_security_options = noanonymous
###リレー制御の設定
###自分のネットワーク内、もしくは認証を通過したもののみリレーする。それ以外は拒否。
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
###SMTP_AUTHに対応していないクライアント用
broken_sasl_auth_clients=yes
■ 通信におけるSMTP-AUTHの許可
# vim /etc/postfix/master.cf
ファイルの中身を
# 16行目
#-o smtpd_sasl_auth_enable=yes
# 17行目
#-o smtpd_client_restrictions=permit_sasl_authenticated,reject
↓
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
以上で設定は完了です。サーバを再起動します。#-o smtpd_sasl_auth_enable=yes
# 17行目
#-o smtpd_client_restrictions=permit_sasl_authenticated,reject
↓
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# shutdown -r now
動作確認
それでは今回も「Thunderbird」の設定をしてみたいと思います。とはいえ前回のSMTPの設定を一部変更するだけです。
まず前回の設定を開き、ユーザ名とパスワードを使用するにチェックをいれます。
そしてテキストエリアに送信を行いたいユーザのアカウント名を記入するだけです。
そしてこの設定を利用してメールを送信しようとすると
パスワードの入力を求められますので、ユーザのパスワードを入力してください。
正しく認証されればメールが送信されます。