この用語をシェア
SASLとは
SASL(Simple Authentication and Security Layer)は、RFC 4422で標準化された認証フレームワークです。メールサーバーでは、SMTP AUTH(SMTP認証)の実装に使用され、メール送信時のユーザー認証を実現します。Submission(ポート587)での認証に不可欠な技術です。
SASLの主な認証メカニズム
代表的な認証方式
- PLAIN: ユーザー名・パスワードを平文で送信(TLS併用必須)
- LOGIN: PLAIN類似(Base64エンコード)
- CRAM-MD5: チャレンジ・レスポンス方式(ハッシュ化)
- DIGEST-MD5: より強固なハッシュ認証
- GSSAPI: Kerberos認証(企業環境)
- OAUTHBEARER: OAuth 2.0認証
推奨設定
現代のメールサーバーでは、PLAIN + STARTTLSの組み合わせが標準的です。TLS暗号化により、平文パスワードの送信も安全に行えます。
自社メールサーバー運用への応用
Postfix + Dovecot SASL設定
PostfixでDovecot SASLを使用する設定:
# /etc/postfix/main.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
# Submission認証必須
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
Dovecot SASL設定
# /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
# /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
Docker Mailserverでの設定
Docker Mailserverでは、SASL認証が自動的に設定されます:
services:
mailserver:
environment:
- ENABLE_SASLAUTHD=1
- SASLAUTHD_MECHANISMS=rimap
# ユーザー追加
# docker exec -it mailserver setup email add user@example.com password
セキュリティベストプラクティス
- TLS暗号化必須: PLAINメカニズムはTLS併用が必須
- 認証失敗のレート制限: ブルートフォース攻撃対策
- 強固なパスワードポリシー: 12文字以上の複雑なパスワード
- 送信者検証: 認証ユーザーとFROMアドレスの一致確認
関連ブログ記事
まとめ
SASLは、メールサーバーでのユーザー認証に不可欠なフレームワークです。自社メールサーバーでは、SASL認証の有効化、TLS暗号化との併用、適切な認証メカニズムの選択により、安全なメール送信環境を構築できます。特にSubmission(ポート587)では、SASL認証を必須とすることが重要です。
