🙆‍♀️

SPF(Sender Policy Framework)入門:Red Hat Linuxでの設定ガイド

2024/11/05に公開

SPFとは何か?

SPF(Sender Policy Framework)は、電子メールの送信元を検証するための仕組みです。これにより、なりすましメールやスパムメールを防ぐことができます。SPFを設定することで、自分のドメインから送信される正規のメールを明確に定義し、受信側がその真正性を確認できるようになります。

SPFの仕組み

SPFは、DNSレコードを使用して機能します。ドメイン所有者が、メールの送信を許可されたサーバーのIPアドレスやホスト名をDNSに登録します。メールを受信したサーバーは、送信元のドメインのDNSレコードを確認し、メールが許可されたサーバーから送信されたかどうかを判断します。

SPFレコードの基本構造

SPFレコードは、以下のような形式でDNSに登録します:

v=spf1 [メカニズム] [修飾子] [メカニズム] [修飾子] ...

主なメカニズム

  • a:ドメインのAレコードに登録されているIPアドレス
  • mx:ドメインのMXレコードに登録されているメールサーバー
  • ip4:指定したIPv4アドレス
  • ip6:指定したIPv6アドレス
  • include:他のドメインのSPFレコードを含める

修飾子

  • +:一致した場合にパス(デフォルト)
  • -:一致した場合に失敗
  • ~:一致した場合にソフトフェイル
  • ?:一致した場合に中立

SPFレコードの設定例

基本的な設定

v=spf1 mx a ip4:192.0.2.0/24 -all

この例では、ドメインのMXレコードとAレコード、および特定のIPアドレス範囲からの送信を許可し、それ以外はすべて拒否しています。

Red Hat Linuxでのセットアップ手順

1. BINDのインストール

まず、BINDがインストールされていない場合はインストールします:

sudo dnf install bind bind-utils

2. named.confの編集

/etc/named.confファイルを編集して、ゾーンファイルの場所を指定します:

sudo nano /etc/named.conf

以下のようなゾーン設定を追加します:

zone "example.com" IN {
    type master;
    file "/var/named/example.com.zone";
};

3. ゾーンファイルの作成

ゾーンファイルを作成し、SPFレコードを追加します:

sudo nano /var/named/example.com.zone

ファイルに以下のような内容を追加します:

$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2023051501      ; Serial
                        3600            ; Refresh
                        1800            ; Retry
                        604800          ; Expire
                        86400           ; Minimum TTL
)
@       IN      NS      ns1.example.com.
@       IN      A       192.0.2.1
@       IN      MX      10 mail.example.com.
@       IN      TXT     "v=spf1 mx a ip4:192.0.2.0/24 -all"

4. 設定の確認

named-checkconfとnamed-checkzoneコマンドを使用して、設定とゾーンファイルを確認します:

sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone

5. BINDサービスの再起動

設定を反映させるために、BINDサービスを再起動します:

sudo systemctl restart named

6. SPFレコードの確認

digコマンドを使用して、SPFレコードが正しく設定されているか確認します:

dig TXT example.com

注意点

  • SPFレコードは1つのドメインにつき1つだけ設定できます。
  • DNSの伝播には時間がかかる場合があるので、設定後しばらく待つ必要があります。
  • SPFレコードが長すぎると問題が発生する可能性があるため、できるだけシンプルに保つことが重要です。
  • 設定後は、必ずSPFレコードの検証ツールを使用して、正しく設定されているか確認してください。

まとめ

Red Hat LinuxでのSPF設定は、BINDを使用してDNSサーバーを設定し、適切なSPFレコードを追加することで実現できます。初めは複雑に感じるかもしれませんが、基本的な構造を理解し、自分のドメインの状況に合わせて適切に設定することで、なりすましメールのリスクを大幅に減らすことができます。定期的に設定を見直し、必要に応じて更新することも忘れずに行いましょう。具体的な設定手順を理解し、慎重に実施することで、効果的なSPF保護を実現できます。

Discussion