このドキュメントは古くなっています。APOP に対応しているメールクライアントの多くは、MD5 によるメール送信サーバーの認証に対応しており、これらのメールクライアントの利用を認める場合は必要ですが、現在は MD5 ハッシュ関数に起因する脆弱性の問題でお勧めできません。
POP Over SSL に対応しているクライアントの多くは SMTP Over SSL にも対応しているので、 STARTTLSによるSSL-SMTPサーバー構築 で紹介している方法に限定する事を推奨します。
このステップではSendmailにSMTP認証機構を有効にし、外部から自社のSMTPサーバーを安全に利用することを目的としています。
SMTP認証 に Cyrus-SASL を利用します。Step1では、APOPに対応させたため、これにより、 DIGEST-MD5 CRAM-MD5に対応するメールクライアントで暗号化保護によるPOP認証、SMTP認証が行えるようになります。
FedoraCore2 のパッケージを使用した内容になっています。
AUTH SMTP とは、Sendmail (SMTP、つまりメール配送エージェント)に対し、認証機構を実装させる事を指します。元来、メールサーバに届いたメールを受信するPOP サーバと異なり、メール配送を受け持つメールサーバには認証機構は存在しませんでした。
POPサーバーには、ユーザーIDとパスワードという認証システムがありますが、Sendmailに限らず元来MTAにこの認証機能はなく、送信を依頼さ れれば、どこからの依頼でもメールの送信を請け負うのが一般的な仕様でした。
インターネット人口が増えるに連れ、これらの特性を悪用し身元を偽り他人の メールサーバーに大量のメールを送りつける者が現れます。サーバーダウン、オーバーフロー、迷惑メール送信を目的とした俗に言うSPAMメールと 呼ばれるものです。
対策としてローカルユーザーにのみSMTPの利用を認めそれ以外は全て禁止するのが一般的でしたが、sendmail には、smtp に対し user, from,ip,domain など利用を許可する例外を設ける設定程度で、これでは接続元が特定できなければ外部ネットワークからSMTPの利用を基本的には許可できません。Sendmail-8.10 から、外部の認証プログラムCyrus SASLと連携することでSMTP認証機構を実装します。これを AUTH SMTP と呼んでいます。
外部ネットワークから、自社のSMTPサーバーの利用を許可しない場合、つまり信頼できるローカルネットワーク内での利用であれば、SMTP認証機構を実装する必要はありません。以下で説明している設定で十分です。
認証機構を設けると、当然ですが認証をパスした場合メール配送を行う事になります。穴をあけるという事になりますので、管理は深重に行う必要があります。
もし、踏み台にされた場合、SPAMの温床となってしまいます。このサイトでも、毎日の様に不正中継が試みられています。大抵は1度で諦めますが、プログラムによる総当り攻撃が行われた事もありました。
そのような場合にも迅速に対処できるよう、ログの監視、警報の仕組みは別途構築する必要があります。万が一、ウイルスや迷惑メールが管理するサーバーから配送された場合を考えると責任は重大です。
AUTH SMTP は必ず必要なものではありません。特定できない外部のネットワークから、メール送信サーバーの利用を認めたい場合にのみ設定してください。もちろん、暗号化による保護は必須となります。
POP Before SMTP について
POP Before SMTP とは、メールサーバーに特別な認証機構を実装するのではなく、POP受信の認証が成功したユーザーにのみ、一時的にSMTPサーバーの利用を認める方法です。間に監視プログラムを走らせ、POP認証が成功したユーザーのみ、一定期間送信サーバーの利用を許可する方法です。
メールクライアントを選ばないメリットがありますが、暗号化は一切行われません。そのため、スニッフィング(盗聴)によりPOPアカウントが盗まれた場合、SMTPサーバーは踏み台にされる事になるため、セキュリティホールそのものと言えます。