SMTPサーバへのブルートフォース攻撃対策

目次
SMTPサーバへのブルートフォース攻撃対策を解説
SMTPサーバをインターネットへ公開すると、ほぼ確実に不正アクセスの試行を受けます。
その中でも特に多いのがブルートフォース攻撃です。
攻撃者は大量のユーザー名とパスワードを試行し、SMTP認証を突破しようとします。
もし認証に成功すると、そのアカウントを利用してスパムメール送信やフィッシングメール送信が行われる可能性があります。
本記事ではSMTPサーバに対するブルートフォース攻撃の仕組みや被害、具体的な対策方法について解説します。
ブルートフォース攻撃とは
ブルートフォース攻撃(Brute Force Attack)とは、ユーザー名とパスワードの組み合わせを総当たりで試行する攻撃です。
SMTPサーバではSMTP-AUTHに対して実施されます。
攻撃者は自動化ツールを利用して大量の認証試行を行います。
なぜSMTPサーバが狙われるのか
SMTPアカウントの乗っ取りに成功すると様々な悪用が可能になります。
- スパムメール送信
- フィッシングメール送信
- マルウェア配布
- なりすましメール送信
- 企業情報の収集
攻撃者にとって非常に価値の高いサービスです。
攻撃の流れ
典型的な攻撃例です。
攻撃者 ↓ SMTP認証試行 ↓ 大量のパスワード入力 ↓ 認証成功 ↓ アカウント乗っ取り
自動化ツールによって短時間で大量の試行が行われます。
よく狙われるユーザー名
攻撃者はまず一般的なユーザー名を試します。
admin
administrator
info
mail
support
root
user
test分かりやすいアカウント名は避けた方が安全です。
よく試されるパスワード
弱いパスワードは真っ先に狙われます。
password
123456
qwerty
admin
company
welcome現在でもこのようなパスワードを利用している環境は少なくありません。
辞書攻撃との違い
ブルートフォース攻撃と似たものに辞書攻撃があります。
| 攻撃手法 | 内容 |
|---|---|
| ブルートフォース | 総当たり攻撃 |
| 辞書攻撃 | よく使われる単語を試す |
実際には両方を組み合わせて利用されることが多くあります。
攻撃を受けているサイン
以下のような現象が発生した場合は注意が必要です。
- SMTP認証失敗ログ急増
- 海外IPからのアクセス増加
- CPU使用率上昇
- メール送信数増加
ログを確認する習慣が重要です。
ログで確認する方法
Postfixログを確認します。
# tail -f /var/log/maillog
または
# journalctl -u postfix -f認証失敗が大量発生していないか確認します。
認証失敗ログの例
以下のようなログが出力されます。
authentication failed大量に発生している場合は攻撃の可能性があります。
SMTP-AUTHを有効にする
まずSMTP認証を有効にします。
smtpd_sasl_auth_enable = yes認証なし送信を防止できます。
現在では必須設定です。
強力なパスワードを利用する
最も基本的な対策です。
推奨される条件です。
- 12文字以上
- 英大文字
- 英小文字
- 数字
- 記号
単純なパスワードは避けましょう。
パスワード使い回しを避ける
他サービスで漏洩した認証情報が悪用されることがあります。
メールアカウント専用のパスワードを利用しましょう。
TLS暗号化を利用する
認証情報の盗聴を防ぐためTLSを利用します。
smtpd_use_tls = yes現在では必須の対策です。
STARTTLSを有効化する
587番ポートでの暗号化通信を利用します。
submission inet n - n - - smtpdSMTP認証情報を保護できます。
Fail2banを導入する
SMTPサーバのブルートフォース対策として最も有効な方法の一つです。
Fail2banはログを監視し、認証失敗を繰り返すIPを自動的に遮断します。
Fail2banの動作イメージ
認証失敗
↓
Fail2ban検知
↓
規定回数超過
↓
IP遮断
自動で攻撃をブロックできます。
Fail2banの設定例
例えば以下のような設定です。
maxretry = 5
findtime = 600
bantime = 360010分以内に5回失敗すると1時間遮断します。
ファイアウォールで制御する
利用国が限定されている場合はアクセス制限も有効です。
不要な国からの接続を遮断できます。
企業環境で利用されることがあります。
接続数制限を設定する
大量接続を防止します。
smtpd_client_connection_count_limit = 20同時接続数を制限できます。
接続頻度を制限する
短時間の連続接続を防ぎます。
smtpd_client_connection_rate_limit = 30攻撃効率を低下させることができます。
送信数制限を設定する
万が一認証突破されても被害を抑えられます。
smtpd_client_message_rate_limit = 100スパム送信対策として有効です。
メールキューを監視する
アカウント乗っ取り後はメールキューが急増することがあります。
# mailq
または
# postqueue -p定期的に確認しましょう。
ブラックリスト登録を防ぐ
大量メール送信が発生すると送信元IPがブラックリストへ登録される可能性があります。
その結果、正規メールも届かなくなります。
早期発見が重要です。
ログ監視を自動化する
認証失敗回数の監視を行いましょう。
# grep authentication /var/log/maillog監視システムと連携するとさらに効果的です。
多要素認証は利用できるか
一般的なSMTP-AUTHでは多要素認証を利用できない場合があります。
クラウドメールサービスではアプリパスワードやOAuth認証が利用されることがあります。
企業環境で推奨される対策
以下の組み合わせが推奨されます。
- SMTP-AUTH
- TLS
- Fail2ban
- 送信数制限
- 接続数制限
- ログ監視
- 強力なパスワード
多層防御によって安全性を向上できます。
実務で最も効果的な対策
実務では以下の2つが特に重要です。
- 強力なパスワード
- Fail2ban
多くの攻撃はこの2つで大幅に防ぐことができます。
まとめ
SMTPサーバへのブルートフォース攻撃は非常に一般的な攻撃手法です。
攻撃に成功するとメールアカウントが乗っ取られ、スパムメール送信やフィッシング攻撃に悪用される可能性があります。
SMTP認証、TLS、Fail2ban、送信制限、ログ監視などを組み合わせることで被害を大幅に低減できます。
メールサーバを安全に運用するためには、ブルートフォース攻撃を前提とした対策を実施することが重要です。





