LinuC LV2資格学習87日目
SMTP認証
メーラーからMTAへメールを送信する際にSMTPプロトコルでは認証はおこわなれません。
これはSMTPサーバーではアカウントのない第三者でもSMTPサーバーの利用が可能であることを意味します。
当然ですがこれではセキュリティ上問題があるためそれをSMTPに認証機能を追加するのがSMTP認証(SMTP Auth)になります。
SMTP認証の機構は、SASL(Simple Authentication ando Security Layer)というライブラリが提供する機能によって実現します。
この後で学ぶDovecotの機能を利用したSMTP認証で説明を行います。
まずは、PostfixがDovecotのSMTP認証機能を利用できるかを確認します。
postconf -a | grep -i dovecot
# dovecotと表示が出ているので利用できる事が分かります。
dovecot
DovecotでSMTP認証が使える事がわかったらPostfixのmain.cfファイルに以下の設定を追記します。
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject
Dovecot側の2つの設定ファイル「/etc/dovecot/conf.d/10-master.conf 」と「/etc/dovecot/conf.d/10-auth.conf」を編集します。
まずは、/etc/dovecot/conf.d/10-master.conf
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
次に「/etc/dovecot/conf.d/10-auth.conf」
auth_mechanisms = plain login
設定が完了したらサービスを再起動してncコマンドでローカル接続してみます。
nc localhost 25
220 linuc.example.com ESMTP Postfix
EHLO linuc.example.com
250-linuc.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN ### ここの値がSMITP認証になります。
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
SMTP over SSL/TLS
SMTP認証の場合、ほとんどのメーラーが対応しているためPLAINやLOGINの認証方式を使う事が多いのですが、この2つが脆弱であるためSMTP認証では合わせてSSL/TLSを導入したSMTPSにして使用します。
Postfixでは、平文のSMTPをTLSで暗号化通信に拡張するSTARTTLSに対応しています。
PostfixをSTARTTLSに対応させるには、main.cfに以下の設定を記述します。
# SMTPSの利用
smtpd_use_tls = yes
# 証明書ファイル
smtpd_tls_cert_file = /etc/pki/tls/mail/fullchain.pem
# サーバー下記ファイル
smtpd_tls_key_file = /etc/pki/tls/mail/praivekey.pem
また、master.cfでも以下のようにコメントアウト[#]を消して設定を有効にします。
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
2つの設定ファイルの編集が終わったらPostfixをリロードしてncコマンドでPostfixに接続してみます。
nc localhost 25
220 linuc.example.com ESMTP Postfix
EHLO linuc.example.com
250-linuc.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS ### STARTTLSが追加された事が分かります。
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
以上が今日の学習内容になります。
Postfixでメールサーバーの設定を行う事は、結構あったのですがncコマンドを使って設定内容を確認できる事は、知りませんでした。
あすは、SMTPサーバーの運用と管理について勉強します。
それではまた明日ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?