Tips

LinuxServer 電子メールについてもう一度… 安全にメールサーバを利用する為に

LinuxServer 電子メールについてもう一度… 安全にメールサーバを利用する為に

前回取り上げたPOP3とIMAP4ではメールを受信する際、認証が必要でした。
サーバにユーザが存在するかを確認し、いなければ当然メールの受信は行えません。

これに対し、SMTPではユーザを認証する決まりがなく、正しい手順を踏めば
誰でもメールの送信が行えます。この為、悪意のあるユーザに不正に利用される
可能性があり、それらを防ぐ必要が有ります。

メールサーバでメールの送信前にユーザを認証をする技術に
「POP before SMTP」と「SMTP-AUTH」があります。

送信前に一度受信を(POP before SMTP)

ユーザーがPOP3サーバやIMAP4サーバにアクセスした際の認証ログをサーバ上に残します。
認証ログを基に「IPアドレス」のデータベースを構築します。
データベースに登録されているIPアドレスからはSMTPの使用を一定時間許可します。

POP before SMTPではデータベースにIPアドレス保存されていればSMTPの接続が
可能ですので、IPアドレスを保存している時間内に別ユーザーが偽ってメールを
送る可能性も有ります。

また、データベースからIPアドレスの情報が消えた場合、再度、POP3サーバや
IMAP4サーバで認証を行う必要があります。

さらに、認証プロセスを他のプロトコルが行っている為、SMTPに認証機能を
持たせる事が考えられ、SMTP AUTHが標準化されました。

メール送信認証(SMTP-AUTH)

SMTP-AUTHはSMTPでのユーザ認証機能としてSMTP拡張として規定されました。
SMTP-AUTHで使用するユーザ名とパスワードはPOP3やIMAP4とは別の物として
登録します。

SMTP-AUTHをサーバ使えるようにする

メールサーバ(Postfix)でSMTP-AUTHに対応した設定をしてみましょう。
Postfixではcyrus-saslというSASLライブラリを使用します。

cyrus-saslがインストールされていなかったらyumコマンドで
インストールします。

postfix側でcyrus-saslと連携するよう設定します。

[コマンド] # vi /etc/postfix/main.cf

[main.cf上で設定するパラメータ]
  • smtpd_sasl_auth_enable = yes
  • Postfix上でSASL認証を有効にします。

  • broken_sasl_auth_clients = yes
  • 古いバージョンのAUTHコマンドを使用するクライアントは
    拒否するよう指定します。

  • smtpd_sasl_security_options = noanonymous
  • クライアントに提供する認証方法を指定します。
    noanonymousは匿名によるログインを許可しません。
    他に使用できる認証方法は次のようなものが有ります。

    noplaintext:平文パスワードを使う認証方法を許可しません。

  • smtpd_sasl_local_domain = $mydomain
  • SASL認証に使用するサーバを指定します。

  • smtpd_recipient_restrictions = permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
  • SMTP_AUTHに認証されたクライアントにメール中継を許可する為、
    smtpd_recipient_restrictionsを記述します。

    PostfixでSMTP-AUTHを使う為の設定は以上です。

    Linux認定資格 LPICを取るなら・・

    Linux資格 「LPIC Lv1」徹底解説 連載目次

    Recent News

    Recent Tips

    Tag Search