View on GitHub

technote

サイバーセキュリティ対策:メール攻撃シナリオとSPF検証

🎯 目的

サイバーセキュリティ対策の学習目的で、同一LAN内のLinuxマシン2台における「メールを悪用した攻撃シナリオ」の理解と検証を行う。

🧱 環境前提


🔓 攻撃シナリオ一覧

① メール送信者の偽装(From Spoofing)

② マルウェア付きメールの送信

③ フィッシングメール

④ メール中継の踏み台(Open Relay)

⑤ 辞書攻撃によるアカウント侵入


✅ 実践:最も手軽な攻撃「From Spoofing」の検証

1. telnetでメール送信(mail2 から mail1 へ)

telnet mail1.mydomain.local 25
EHLO attacker.local
MAIL FROM:<fake@spoofed.com>
RCPT TO:<bob@mail1.mydomain.local>
DATA
From: Alice <alice@mail1.mydomain.local>
To: Bob <bob@mail1.mydomain.local>
Subject: テストメール(なりすまし)

これは送信元を偽装したテストメールです。
.
QUIT

2. メール受信確認


🔐 SPFを導入して偽装対策する手順

🔧 BINDにSPFレコードを追加

  1. ゾーンファイル /var/named/mydomain.local.zone に以下を追加:
@    IN    TXT    "v=spf1 ip4:192.168.0.2 -all"
  1. BIND再起動:
sudo systemctl restart named
  1. 確認:
dig +short TXT mydomain.local

🔧 PostfixにSPFチェック機能を追加

  1. SPF検証パッケージを導入:
sudo dnf install postfix-policyd-spf-python
  1. master.cf へ設定追加:
policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf
  1. main.cf へチェックルール追加:
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_policy_service unix:private/policyd-spf
  1. Postfixを再起動:
sudo systemctl restart postfix
  1. ログ確認:
sudo journalctl -u postfix
# または
sudo tail -f /var/log/maillog

✅ 学習ポイントまとめ

項目 内容
所要時間 約5~10分
利用ツール telnet, dig, postfix, BIND
学習効果 SMTP, SPF, メール偽装の理解