UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS7 PostfixのSMTP認証



■PostfixのSMTP認証

各組織のローカルネットワークからのみメールが送信 できるように設定するのが一般的ですが外部からも送信できたほうが便利です。但し、無条件に外部から送信できてしまうとこれを悪用されることがありSPAMメールの踏み台とされてしまいます。これを回避するため外部からのメール発信には必ず一度認証を通す必要があるよう設定します。これをSMTP認証と呼びます。ここではSMTP認証に使用するアカウントはUNIXアカウントを使用します。

必要なソフトがインストールされていなければyumからインストールします。

# yum install cyrus-sasl cyrus-sasl-plain
# rpm -qa | grep cyrus
cyrus-sasl-2.1.26-17.el7.x86_64
cyrus-sasl-md5-2.1.26-17.el7.x86_64
cyrus-sasl-scram-2.1.26-17.el7.x86_64
cyrus-sasl-gssapi-2.1.26-17.el7.x86_64
cyrus-sasl-lib-2.1.26-17.el7.x86_64
cyrus-sasl-plain-2.1.26-17.el7.x86_64


UNIXアカウントを認証に使用する場合は以下の ファイルを編集する必要があります。

# vi /etc/sysconfig/saslauthd

#MECH=pam
MECH=shadow

そしてpostfix側の設定を変更します。以下、編集部分のみ記載します。

# vi /etc/postfix/main.cf

# smtpd_recipient_restrictions = permit_mynetworks,
# reject_unauth_destination

smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, ※SMTP認証を行ったクライアントは許可
reject_unauth_destination

# SASL認証を有効化する smtpd_sasl_auth_enable = yes # mynetworks以外で匿名での接続を拒否する
smtpd_sasl_security_options = noanonymous
# 規格外の動作に対応させる
broken_sasl_auth_clients = yes


サブミッションポート( TCP/587 )をオープンにしておき、これを経由する際はSMTP Authを必須とします。下記の編集の実際はコメントアウトです。

# vi /etc/postfix/master.cf

submission inet n       -       n       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject


ここまでで設定は完了なのでPostfixをリロー ドします。


# systemctl restart postfix.service

次にSASLを有効にして起動します。

# systemctl enable saslauthd.service
# systemctl start saslauthd.service

コマンドラインから動作確認を行います。Cyrusにtestsaslauthdコマンドというのが用意されていますのでこれを利用します。


# testsaslauthd -u test -p password
0: OK "Success."

上記のように「OK "Success."」と表示されれば認証は成功しています。さらにPostfixでSMTP認証が正常に機能しているのか下記のコマンドから確認可能です。


# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.unix-power.net ESMTP Postfix
EHLO unix-power.net
250-mail.unix-power.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 VXNlcm5hbWU6

上記のAUTH LOGINを発行した際にエラーが出なければOKです。




 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.