メール送信制限とレートリミットの考え方

目次
メール送信制限とレートリミットの仕組みを理解しよう
メールサーバを安全に運用するためには、SMTP認証やTLS暗号化だけでは十分ではありません。
万が一メールアカウントが乗っ取られた場合や、不正なプログラムがメール送信を開始した場合に備えて送信制限を設定することが重要です。
その際に利用される仕組みがレートリミット(Rate Limit)です。
レートリミットは一定時間内のメール送信数や接続数を制限することで、スパム送信やサーバ負荷増大を防止します。
本記事ではメール送信制限の考え方や設定例、実務での運用方法について解説します。
レートリミットとは
レートリミットとは、一定時間内に実行できる処理回数を制限する仕組みです。
SMTPサーバでは主に以下の制御に利用されます。
- メール送信数制限
- SMTP接続数制限
- 認証試行回数制限
- 宛先数制限
メールシステムの安定運用に欠かせない機能です。
なぜ送信制限が必要なのか
メール送信数に制限がない場合、様々な問題が発生します。
例えばアカウントが漏洩した場合です。
アカウント漏洩
↓
大量メール送信
↓
ブラックリスト登録
↓
正規メールも届かない
被害拡大を防ぐために送信制限が必要になります。
よくある被害事例
実際のメールサーバ運用では以下のような事例があります。
- 乗っ取られたアカウントから数万通送信
- スパム送信でIPアドレスがブラックリスト登録
- SMTPサーバのCPU負荷急上昇
- メールキューが大量滞留
レートリミットはこれらの被害を軽減できます。
送信制限の種類
SMTPサーバでは様々な制限方法があります。
| 制限項目 | 内容 |
|---|---|
| 送信数制限 | 一定時間内の送信数 |
| 接続数制限 | 同時接続数 |
| 接続頻度制限 | 接続回数 |
| 宛先数制限 | 送信先件数 |
| 認証制限 | ログイン試行回数 |
複数の制限を組み合わせて運用します。
送信数制限とは
一定時間内のメール送信数を制限する方式です。
例えば以下のようなルールです。
1時間に100通まで
これを超えると送信が制限されます。
接続数制限とは
同時に利用できるSMTP接続数を制限します。
例えば以下です。
同時接続20まで
DoS攻撃や大量接続を防止できます。
接続頻度制限とは
短時間に繰り返される接続を制御します。
例えば次のような設定です。
1分間に30接続まで
スパム送信プログラム対策として有効です。
宛先数制限とは
1通のメールで指定できる宛先数を制限します。
例えば以下です。
1通あたり100宛先まで
大量配信を抑制できます。
認証試行回数制限とは
SMTP認証へのブルートフォース攻撃を防ぐ仕組みです。
例えば次のような制限です。
5回失敗で一時ロック
不正ログイン対策として利用されます。
Postfixで利用できるレート制限
Postfixには様々な制限機能があります。
代表的なものを見ていきましょう。
送信数制限
クライアントごとの送信数を制御できます。
smtpd_client_message_rate_limit = 100一定時間内に100通まで許可する設定です。
接続数制限
同時接続数を制御します。
smtpd_client_connection_count_limit = 201つのIPアドレスから20接続まで許可します。
接続頻度制限
接続回数を制御します。
smtpd_client_connection_rate_limit = 30短時間の大量接続を防止できます。
受信者数制限
宛先数を制御します。
smtpd_recipient_limit = 100大量配信メールの抑制に役立ちます。
メッセージサイズ制限
メールサイズを制限できます。
message_size_limit = 10485760上記は10MBの例です。
送信制限の考え方
制限値は厳しすぎても問題になります。
例えば営業部門が一斉送信を行う場合です。
送信数制限が低すぎると正常業務へ影響します。
利用状況を考慮して設定することが重要です。
一般企業の目安
一般的な企業環境では以下が目安になります。
| 項目 | 例 |
|---|---|
| 送信数 | 100〜500通/時間 |
| 接続数 | 10〜20 |
| 宛先数 | 50〜100 |
業務内容によって調整が必要です。
クラウドメールサービスの例
GoogleやMicrosoftも送信制限を設けています。
これはスパム送信防止が目的です。
利用者が意識しなくても内部で制御されています。
ブラックリスト対策になる
レートリミットはブラックリスト登録防止にも有効です。
大量メール送信を防止することで、スパム送信元と判断されるリスクを下げられます。
メールキュー監視も重要
送信制限と合わせてメールキューも監視しましょう。
# mailq
または
# postqueue -p異常な増加はスパム送信の兆候かもしれません。
ログ監視を行う
レート制限が発動しているか確認することも重要です。
# tail -f /var/log/maillog
または
# journalctl -u postfix -f不審な送信を早期発見できます。
Fail2banとの併用
認証攻撃対策にはFail2banも有効です。
レート制限と組み合わせることでより高い防御効果が期待できます。
認証失敗
↓
Fail2ban検知
↓
IP遮断
実務ではよく利用される構成です。
レートリミットのメリット
- スパム送信防止
- アカウント漏洩対策
- ブラックリスト対策
- サーバ負荷軽減
- メールキュー保護
比較的容易に導入できる有効な対策です。
レートリミットの注意点
制限が厳しすぎると正常業務へ影響します。
導入時は以下を確認しましょう。
- 業務メール量
- 一斉送信有無
- 通知メール数
- システム連携
実際の利用状況を考慮して設定することが重要です。
実務で推奨される対策
メールサーバでは以下の組み合わせが推奨されます。
- SMTP認証
- TLS暗号化
- 送信制限
- Fail2ban
- SPF
- DKIM
- DMARC
多層防御によって安全性を高めることができます。
まとめ
レートリミットは一定時間内のメール送信数や接続数を制限する仕組みです。
スパム送信やアカウント乗っ取りによる被害を軽減し、SMTPサーバを安全に運用するために重要な役割を果たします。
Postfixでは送信数制限や接続数制限など複数の制御が可能です。
SMTP認証やTLS、Fail2banなどと組み合わせて運用することで、より安全なメール環境を構築できます。





