SMTPサーバのセキュリティ強化ポイント

SMTPサーバのセキュリティ強化ポイント

SMTPサーバのセキュリティ強化ポイントを解説

SMTPサーバはインターネット上へ公開されることが多く、常に攻撃対象となるサービスの一つです。

メールは企業活動に欠かせない重要なインフラであり、SMTPサーバが停止したり不正利用されたりすると業務へ大きな影響を与えます。

近年ではスパムメール送信、なりすましメール、ブルートフォース攻撃、認証情報の窃取など様々な攻撃が行われています。

そのためSMTPサーバには適切なセキュリティ対策を実施する必要があります。

本記事では実務で重要となるSMTPサーバのセキュリティ強化ポイントを解説します。

なぜSMTPサーバは狙われるのか

SMTPサーバは外部からアクセス可能なサービスです。

攻撃者にとっては以下のような目的で利用価値があります。

  • スパムメール送信
  • フィッシングメール送信
  • 認証情報の窃取
  • マルウェア配布
  • メールアカウント乗っ取り

そのため継続的なセキュリティ対策が必要になります。

セキュリティ対策の全体像

SMTPサーバの防御は一つの対策だけでは不十分です。

複数の対策を組み合わせることが重要です。

SMTP認証
    ↓
TLS暗号化
    ↓
送信制限
    ↓
ログ監視
    ↓
送信ドメイン認証

多層防御の考え方が重要になります。

SMTP認証(SMTP-AUTH)を必須にする

最も基本的な対策がSMTP認証です。

認証なしでメール送信を許可すると不正利用される可能性があります。

Postfixでは以下を設定します。

smtpd_sasl_auth_enable = yes

現在のメールサーバでは必須の設定です。

オープンリレーを防止する

オープンリレーは最も危険な設定ミスの一つです。

第三者によるメール送信を許可してしまいます。

Postfixでは以下の設定が重要です。

smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination

必ず設定内容を確認しましょう。

TLS暗号化を有効にする

認証情報やメール内容を保護するためにTLSを利用します。

Postfixでは以下を設定します。

smtpd_use_tls = yes

証明書も設定します。
smtpd_tls_cert_file =
/etc/pki/tls/certs/server.crt

現在ではTLS利用が必須です。

STARTTLSを利用する

メールクライアントとの通信にはSTARTTLSが推奨されています。

一般的には587番ポートを利用します。

submission inet n - n - - smtpd

安全なメール送信環境を構築できます。

古いTLSバージョンを無効化する

TLS 1.0やTLS 1.1は現在では非推奨です。

新しいバージョンのみ許可することが推奨されています。

例えば以下のような設定です。

smtpd_tls_mandatory_protocols =
 !SSLv2,!SSLv3,!TLSv1,!TLSv1.1

脆弱な暗号方式を排除できます。

強力なパスワードを利用する

弱いパスワードはブルートフォース攻撃の対象になります。

避けるべき例です。

password
123456
admin
company

十分な長さと複雑さを持つパスワードを利用しましょう。

ブルートフォース攻撃対策を行う

攻撃者はSMTP認証へ大量のログイン試行を行います。

その対策としてFail2banが有効です。

認証失敗
     ↓
IP検出
     ↓
自動遮断

多くのLinuxサーバで利用されています。

Fail2banを導入する

Fail2banはログを監視して不正アクセスを遮断します。

以下のような攻撃に有効です。

  • SMTP認証攻撃
  • SSH攻撃
  • Webログイン攻撃

メールサーバでもよく導入されます。

送信レート制限を設定する

アカウント乗っ取り対策として送信数制限を行います。

例えば以下の設定です。

smtpd_client_message_rate_limit = 100

短時間の大量メール送信を防止できます。

接続数制限を設定する

同一IPからの大量接続を防止します。

smtpd_client_connection_count_limit = 20

DoS攻撃対策としても有効です。

不要なポートを閉じる

利用しないサービスは停止しましょう。

ファイアウォールで制御します。

# firewall-cmd --list-services

必要最小限の公開が基本です。

SMTPバナー情報を最小化する

SMTP接続時に詳細な情報を表示しないようにします。

例えば以下です。

220 mail.example.com ESMTP

バージョン情報の表示は避けることが推奨されます。

ソフトウェアを最新化する

古いPostfixやDovecotには脆弱性が存在する可能性があります。

定期的なアップデートが重要です。

# dnf update postfix

セキュリティ修正を適用しましょう。

SPFを設定する

送信ドメイン認証の基本です。

DNSへ設定します。

v=spf1 ip4:203.0.113.10 -all

なりすまし対策として重要です。

DKIMを設定する

メールへ電子署名を付与します。

メール改ざん防止や信頼性向上に役立ちます。

現在では導入が推奨されています。

DMARCを設定する

認証失敗メールの扱いを定義します。

例です。

v=DMARC1; p=reject;

フィッシングメール対策として有効です。

メールキューを監視する

スパム送信が発生するとメールキューが増加します。

定期的に確認しましょう。

# mailq

または
# postqueue -p

ログ監視を行う

ログは最も重要な監視対象です。

# tail -f /var/log/maillog

または
# journalctl -u postfix -f

不審な送信や認証失敗を確認できます。

認証失敗を確認する

認証失敗回数を確認します。

# grep authentication /var/log/maillog

攻撃の兆候を早期発見できます。

ブラックリスト登録を確認する

送信元IPがブラックリストへ登録されるとメール到達率が低下します。

定期的な確認が推奨されます。

特に大量送信後は注意が必要です。

不要なアカウントを削除する

利用していないメールアカウントは削除します。

攻撃対象を減らすことができます。

定期的な棚卸しを行いましょう。

バックアップを取得する

設定ファイルやメールデータのバックアップも重要です。

最低限以下を保護しましょう。

  • main.cf
  • master.cf
  • メールボックス
  • 証明書
  • 秘密鍵

障害発生時の復旧を容易にできます。

企業環境で推奨される構成

一般的な企業メールサーバでは以下が推奨されます。

  • SMTP-AUTH
  • TLS
  • Fail2ban
  • SPF
  • DKIM
  • DMARC
  • ログ監視
  • 送信制限

これらを組み合わせることで高い安全性を確保できます。

まとめ

SMTPサーバは常に攻撃対象となるため、多層的なセキュリティ対策が必要です。

SMTP認証、TLS暗号化、送信制限、Fail2ban、SPF・DKIM・DMARCなどを組み合わせることで安全性を大幅に向上できます。

また、ログ監視やソフトウェア更新も継続的に実施することが重要です。

メールサーバを安全に運用するためには、一つの対策だけでなく複数の対策を組み合わせた防御が必要になります。