前回のつづき
前回までは「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
次回はバーチャルメールボックス(バーチャルホスト)の設定を説明します。
「クラウドテック」です。 掲載案件では平均月60万、週3~4日勤務の案件が豊富で生活スタイルに合わせた働き方を設計できます。 また福利厚生が充実し旅行、レジャー、家事代行、ヘビーシッター、健康診断など100種類以上を無料で使えます。
- 97%がリモートのお仕事
- 週4日、週3日OKのお仕事多数
- 登録社数74万件業界トップクラス
- 2〜4週間程度でお仕事決定