もくじ
・導入
・受信の認証
・送信の認証
導入
クライアントアプリ、gmail、outlookなどにログインするとメールが見れるようになります。
その際はユーザーIDとPWでログイン認証すると思いますが、送信時にもログイン認証をしています。
→ログイン認証は受信メールを見るときと、メール送信するときで2パターンあります。
受信時の認証
対象:受信サーバー(POP3サーバーやIMAPサーバー)
目的:そのメールボックスの所有者であることを確認して、中身を見せてもらう
主なプロトコルとポート
POP3: 110 / 995(SSL/TLS)
IMAP: 143 / 993(SSL/TLS)
通信の流れ
[MUA] ← Thunderbird / Outlook ユーザーが「受信」ボタンを押す
│
│ IMAP接続(ポート993 / SSL または ポート143 / STARTTLS)→ 認証情報付き(IMAP LOGIN)
▼
[MDA] Dovecot on mail.arisaweb.net
│
│ ユーザー名・パスワードを Dovecot authプロセスに渡す
▼
[Dovecot auth] ユーザーDB(/etc/passwd, SQL, LDAPなど)で認証
│
│ 認証OKなら「Success」、失敗なら「Failure」を返す
▼
[MDA] Dovecot メールボックス(Maildir / mbox)へアクセス許可
│
│ 認証成功 → メール一覧・本文データをMUAに送信
▼
[MUA] ユーザーが受信メールを閲覧
送信時の認証(SMTP AUTH)
対象:送信サーバー(MSA: Mail Submission Agent)
目的:不正中継を防ぎ、「この人はこのサーバーでメールを送信する権利がある」ことを確認
主なポート
587(推奨:STARTTLSで暗号化)
465(SMTPS)
通信の流れ
Thunderbird、Outlookなどのクライアントアプリからメールサーバーに接続し、メール送信する際、クライアントアプリ側でステートレスな通信が行われている。
ユーザーは意識してないんだけど、メールサーバーに認証通してます。
[MTU] ←Thunderbird / Outlook ユーザーが送信
│
│ SMTP送信(ポート587 / STARTTLS)→ 認証情報付き(SMTP AUTH)
▼
[MSA]Postfix on mail.arisaweb.net
│
│ 認証を Dovecot に依頼(UNIXソケット /var/spool/postfix/private/auth)
▼
[MSA] →Dovecot authプロセス 認証OKならPostfixに返す
│
▼
[MTA]Postfix(認証成功したのでメール送信)
│
│
▼
[受信先のMTA]
SMTPの歴史
昔は認証なしSMTPがありました。
誰でもSMTPサーバーがつかえるので、スパムメールを送る悪い人たちがSMTPサーバーを悪用して、公開されているSMTPサーバーからスパムメールを送りまくりました。
自分のIPアドレスは既にBLに入っているので、SMTPサーバーを利用したのです。。。
これを"オープンリレー"と呼びます。
これを防ぐために出てきたのがSMTP AUTHです。SMTPサーバーを利用する人はそのSMTPサーバーにログインしないといけません。
送信時にクライアントアプリが裏でログインすると書きましたが、認証情報を持ってない悪い人はSMTPサーバーを利用できなくなりました。
SMTPリレーは今でも使われている。
認証なしのSMTPサーバーを使ったオープンリレーはほぼ絶滅しましたが、SMTPサーバーを認証付きでリレーすることは多々あります。
なぜSMTPリレーする必要があるのか?
→例えばリレー先をgmailに指定してGmailのMTAからメールを配送すると、Gmailの信頼度を借りてメールを送ることができる。
受信者目線からすると、Gmailからメールが送信されてきたように見える。
Thunderbird (MUA)
↓ SMTP AUTH + 587
Postfix (EC2, MSA)
↓ リレー (587)
Gmail (MSA → MTA)
↓ SMTP 25
受信者のMTA(例: Outlook)
プロトコル一覧
用途 | プロトコル | 推奨ポート | 暗号化 | 状態 | 補足 |
---|---|---|---|---|---|
受信 | IMAPS (IMAP over SSL/TLS) | 993 | 常時SSL/TLS | 現行推奨 | IMAPをSSL/TLSで暗号化したもの。サーバー上にメールを残しながら操作可能。 |
IMAP(STARTTLS) | 143 | STARTTLSで暗号化 | 旧来 | 接続後に暗号化へ切替。993のほうが推奨される傾向。 | |
POP3S (POP3 over SSL/TLS) | 995 | 常時SSL/TLS | 一部利用 | メールをローカルに取り込む。暗号化版POP3。 | |
POP3(STARTTLS) | 110 | STARTTLSで暗号化 | 旧来 | 暗号化なしの利用は推奨されない。 | |
送信 | SMTP Submission (STARTTLS) | 587 | STARTTLSで暗号化 | 現行推奨 | MSAへのメール送信専用。SMTP AUTHで認証必須。 |
SMTPS | 465 | 常時SSL/TLS | 復活推奨傾向 | 以前非推奨だったがRFCで再定義。クライアント接続で使われる。 | |
SMTP(サーバー間) | 25 | 任意(STARTTLS推奨) | 継続利用 | MTA同士のメール配送用。クライアント送信には使わない。 |