SMTP-AUTHを導入する (CentOS 6.5)

| メール

CentOS6.5でやっているLinuxサーバー設定関連の続き記事。

前回はPostfixの導入を行ったので、認証機能を追加して送信ユーザーを特定できるようにします。

スポンサードリンク

SMTP-AUTHの導入目標

前回導入したPostfixを使ってのメールのリレーを特定のユーザーにのみ許可するようにします。

外部に公開するわけではないので導入しなくても構わないのですが、最低限の設定方法ぐらいまとめて勉強してしまおうという事で導入する事にしました。

また、メールを送信するにはCRAM-MD5(MD5形式でハッシュ化した認証情報を送って認証を行う)かDIGEST-MD5(CRAM-MD5の弱点である総当たりや辞書攻撃の対策が取られている形式)によって認証情報の交換を行います。

SASLのインストール

SASLは「Simple Authentication and Security Layer」の略で認証とデータセキュリティのためのプロトコルです。

SASLをCRAM-MD5で使用するには「cyrus-sasl」(インストール済みなのでUpdateを行う)、「cyrus-sasl-md5」のインストールを行います。

# yum install cyrus-sasl cyrus-sasl-md5

 

Postfixの設定変更

SMTP-AUTHを使用して認証できないユーザーのメールリレーを制限するには「/etc/postfix/main.cf」に以下の追加を行います。(全ての行を新規に追加します)

smtpd_sasl_auth_enable = yes ・・・・・・ (1)
broken_sasl_auth_clients = no ・・・・・・ (2)
smtpd_recipient_restrictions = permit_mynetworks, ・・・・・・ (3)
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject
smtpd_sasl_security_options=noanonymous,noplaintext ・・・・・・ (4)
smtpd_sasl_local_domain = cross-ring.org ・・・・・・ (5)

(1) SMTP-AUTH認証をサポートするかどうかの設定です。使用するにはyesを設定します。

(2) Outlook等、一部のメールクライアントソフトは規格外の動作を行うため、その規格外の動作に対応するかどうかを指定します。
(私はOutlookを使う気はないので「no」に設定しています)

(3) メールを受信したときの動作を設定します。
上から(先頭から)順に評価を行い、合致した条件の動作を行うようになります。
設定項目について補足を行うと

  • permit_mynetworks: mynetworksで指定したネットワークからの接続の場合は受信可能にする
  • permit_sasl_authenticated: SMTP-AUTH接続を行ったクライアントからのメールは受信可能にする
  • reject_unauth_destination: 自ホスト宛のアドレス以外は拒否する
  • reject: 全てのメールの受信を拒否する(※先に合致した条件が無ければ受信しないという設定)

その他の設定内容について確認したい場合はコチラを確認してください。

(4) 使用可能な認証方式などの設定を行います。
「noanonymous」は匿名での接続を禁止し、「noplaintext」を指定するとPLAIN(平文)での認証接続も禁止する事ができます。

(5) ドメインの指定を行います。デフォルトではmyhostnameの値(当サイトの設定ではsmtp.cross-ring.org)が採用されますのでsmtpを省いた名称をドメインとして使用する設定を行います。

補足:CentOS6.5の標準リポジトリーではpostfixは2.6のため上記の設定で問題ありませんが、postfix 2.10以降は受信設定とリレー設定が分離されています。postfix 2.10以降を利用する場合は以下の内容もmain.cfに追加してください。

smtpd_relay_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject

 

認証の設定

「/etc/sasl2/smtpd.conf」にDIGEST-MD5、CRAM-MD5認証を行うように設定を行います。

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: digest-md5 cram-md5

ファイルの内容が上記の内容と一致するように変更します。

上記2つの設定で、認証ユーザを管理しているsasldb2を使用する設定に変更しています。
※sasldb2は次で作成方法を書きます。

mech_list で使用する認証形式を記載しています。

 

認証可能ユーザの登録(sasldbの作成)

メールの送信を許可するユーザーを登録します。

登録には「saslpasswd2」のコマンドを使います。

今回はユーザー名「user_name」でドメイン「cross-ring.org」とした場合です。

# saslpasswd2 -u cross-ring.org user_name
Password: <パスワードを入力>
Again (for verification): <パスワードを再入力>
# sasldblistusers2 ・・・・・・ (5)
user_name@cross-ring.org: userPassword
# chgrp postfix /etc/sasldb2 ・・・・・・ (6)

(5) 登録したユーザーの一覧を確認するコマンドです。

(6) 作成されたsasldb2はpostfixからのアクセス権が無いため、グループを変更して読出しアクセスを許可します。

 

サービスの起動設定と起動

ここまでで、設定は完了したのでサービスの起動設定と起動を行います。

また、postfixの設定も変更を行ったためサービスの再起動を行います。

# chkconfig --level 35 saslauthd on
# chkconfig --list saslauthd
saslauthd       0:off   1:off   2:off   3:on    4:off   5:on    6:off
# service saslauthd start
Starting saslauthd:                          [OK]
# service postfix restart
Shutting down postfix:                       [OK]
Starting postfix:                            [OK]

 

動作確認

telnetを使った設定の確認

「telnet」コマンドが実行できない場合は「yum install telnet」のコマンドを実行してコマンドをインストールしてください。

接続が成功した後は「ehlo localhost」で接続内容の確認を行います。確認が完了した後は「quit」で終了します。

# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.cross-ring.org ESMTP Postfix
ehlo localhost
250-smtp.cross-ring.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 ・・・・・・ (7)
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.

※ハイライトしている行が入力を行う個所です。

(7) 認証が有効であることを表している行です。
この行が表示されていた場合は認証設定が完了しています。

 

(番外編) うまくいかないケース

250-AUTH が表示されない

「/etc/postfix/main.cf」の内容を確認してください。

私は凡ミスで「smtpd_sasl_auth_enable = yes」と書かないといけない所を「smtp_sasl_auth_enable = yes」(smtpdの‘d’が抜けていた)と記載していたため認証表示が行われませんでした。

設定を変更した後はサービス「saslauthd」のリスタートもお忘れなく。

トラックバック

トラックバックURL:

トラックバック & ピンバック

コメントはまだありません。

作ったもの

種牡馬メモサイト

フリーダムウォーズ素材メモサイト

月別アーカイブ

つぶやき

更新記録カレンダー

2024年12月
« 1月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

参考書籍

XHTML/HTML+CSSスーパーレシピブックXHTML/HTML+CSSスーパーレシピブック
エ・ビスコム・テック・ラボ

毎日コミュニケーションズ
売り上げランキング : 74419

Amazonで詳しく見る
現場のプロから学ぶXHTML+CSS現場のプロから学ぶXHTML+CSS
益子 貴寛,堀内 敬子,小林 信次,千貫 りこ,伊藤 学,山田 あかね,西畑 一馬,CSS Nite

毎日コミュニケーションズ
売り上げランキング : 39400

Amazonで詳しく見る