見出し画像

LinuC LV2資格学習87日目

本:LinuC レベル2

公式資料

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サーバーの運用と管理について勉強します。

それではまた明日ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?