SMTP-AUTH(認証機能)を使ったメール送信 Postfix + dovecot の設定

前回のつづき

前回までは「mynetworks」で設定したネットワーク内でしか外部送信できませんでしたが、今回は、「mynetworks」以外から送信をできるようにします。それを実現するためにSMTPに認証機能(SMTP-AUTH)を実装します。まずはSMTP-AUTHとはなにか理解する必要があります。

SMTP-AUTHとは

スパムメールがなかった時代、メール送信サーバは、認証などなくだれでも送信できる状態でした。しかしスパムメールが流行りだすと誰でも送信できないようにメール送信にも認証が必要になりました。当初は、そのような認証機能がなかったため、POP認証の機能を使い代用していました。それが「POP before SMTP」です。そして現在では、送信サーバは、自前の認証機能を持つようになりました。それが「SMTP AUTH」です。「SMTP AUTH」は、「SASL」をいうライブラリ(フレームワーク)を使って認証システムを実現しています。

SASL

SASLはSimple Authentication and Security Layerの略で認証システムを実現するライブラリ(フレームワーク)です。Postfixだけでなくさまざまなアプリケーションで使用されています。SASLは主に「Cyrus-SASL」と「Dovecot-SASL」というライブラリを使用しています。

Dovecot-SASL

今回は「Dovecot-SASL」ライブラリを使用して認証システムを実現します。Postfixはdovecotと親和性が高く、アカウントを共有することができます。POP認証用とSMTPの認証を一元管理することができます。ちなみに「Cyrus-SASL」はSMTP用とPOP用の2種類別々に管理する必要があります。

PostfixのSMTP AUTHの設定

まずはPostfixの設定から。「smtpd_sasl_type」をdovecotに指定することで「Dovecot-SASL」ライブラリが使用できます。

vi /etc/postfix/main.cf
##smtpauth setting
#SASL認証を有効にする
smtpd_sasl_auth_enable = yes
#RCPT TO コマンドへの対応方法を制御
#mynetworksで定義したものを許可、認証成功している場合許可、認証失敗は拒否
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
#Anonymous認証を拒否
smtpd_sasl_security_options = noanonymous
#outlookでSASL認証を使えるようにする。
broken_sasl_auth_clients = yes
#SASL認証で利用するレルム(ドメイン)を指定
smtpd_sasl_local_domain = $myhostname
#Dovecot-SASLを使用する
smtpd_sasl_type = dovecot
#Dovecot-SASLで使用するソケットファイル
smtpd_sasl_path = private/auth
#VRFYコマンドを無効化
disable_vrfy_command = yes

dovecotのインストール

まずは、POPサーバのアプリケーション、dovecotをインストールします。SMTPの認証に「Dovecot-SASL」を使用するとアカウント情報をdovecotに合わすため、dovecotをインストールする必要があります。

yum install dovecot

dovecot側のSMTP AUTHの設定

Postfix側が指定のソケットを通じてdovecotのアカウント情報にアクセスできるように設定します。
これでPostfixがdovecotのアカウントを使って認証することができます。

vi /etc/dovecot/conf.d/10-master.conf
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

dovecotの認証情報の確認

dovecotの認証に使っているアカウント情報がどこか確認します。デフォルトではLinuxのユーザーを使用しているので念のため確認します。「!include auth-system.conf.ext」がコメントアウトされていなければ問題ありません。ここがコメントアウトされている場合は、Linuxのユーザーを使用しない設定になっています。

vi /etc/dovecot/conf.d/10-auth.conf
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
auth_mechanisms = plain login
#Linuxのアカウントを使って認証
!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

次回はバーチャルメールボックス(バーチャルホスト)の設定を説明します。

自由な働き方をしてみませんか
フリーランスといえばクラウドソーシングが連想されると思います。 しかし「クラウドワークス」や「ランサーズ」調べてみると仕事の単価が非常に安い。 せっかく身につけた技術力がクラウドソーシングでは全く価値がなくなってしまいます。
そこでオススメなのがリモートワークの案件が多く翌月15日報酬として振り込まれる
クラウドテック」です。 掲載案件では平均月60万週3~4日勤務の案件が豊富生活スタイルに合わせた働き方を設計できます。 また福利厚生が充実し旅行、レジャー、家事代行、ヘビーシッター、健康診断など100種類以上を無料で使えます。
  • 97%がリモートのお仕事
  • 週4日、週3日OKのお仕事多数
  • 登録社数74万件業界トップクラス
  • 2〜4週間程度でお仕事決定
まだ間に合います。まずは無料登録をして自分に合った案件がないか確認してみてください。きっと魅力的な案件が見つかることでしょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする