2026年8月25日

2026年8月25日

DNSSECを設定してDNSのセキュリティを強化する方法

はじめに

DNSSEC(Domain Name System Security Extensions)は、DNSプロトコルを強化し、DNSの改ざんや不正アクセスから組織を保護するための技術です。サイバー攻撃者は、DNSを悪用して誤ったIPアドレスへのリダイレクトを行い、ユーザーを詐欺サイトやマルウェアに導くことがあります。これらのリスクを軽減するために、DNSSECを使用することで、DNSデータの改ざんを検出または防止することが可能になります。

症状・背景

このテーマが必要になる主な場面は以下の通りです:

  • DNSサーバーが攻撃を受けている場合
  • 重要なサービスやウェブサイトに対してDNSの不正アクセスが懸念される場合
  • 法的要件や業界ガイドラインに準拠する必要がある場合

手順・設定方法

ステップ1: キー生成と配布

# GPGキーを使用してDNSSEC署名を行うため、まずGPGキーを作成します。
gpg --gen-key

# 以下は例ですが、実際の環境では適切な鍵長やタイプを選択する必要があります。
# 対話形式で質問に答えると必要な鍵が生成されます。

# DNSKEYを生成し、DNSSEC署名を行うために必要です。
dnssec-keygen -a RSASHA256 -b 1024 -n ZONE example.com.

# キーをDNSサーバー上で登録します。
dnssec-dsfromkey example.com.key > ds.example.com.txt

ステップ2: 認証レコードの追加

# DS(Delegation Signer)レコードをDNS Zonesに追加します。
# これは、信頼できる外部DNSサーバーからキー情報を受け取るために必要です。

# nsupdateコマンドを使用してDNSレコードを更新します。
echo "server primary.example.com" | nsupdate -k /etc/bind/example.com.key
echo "update add example.com. IN DS <DS值>" | nsupdate -k /etc/bind/example.com.key

ステップ3: DNSサーバーの設定

# BIND DNSサーバーでのDNSSEC設定を行います。
zone "example.com" {
    type master;
    file "/var/lib/bind/db.example.com";
    allow-transfer { key example-key; };
    also-notify { <通知するDNSサーバー>; };
};

key "example-key" {
    algorithm rsasha1;
    secret "base64编码的私钥";
};

ステップ4: 実践/トラブルシュート/監視

# DNSSECの署名と検証を確認します。
dig +dnssec example.com.

# BINDのログからDNSSECに関する情報を確認できます。
tail -f /var/log/named.log

注意事項

  • DNSSECは設定が複雑であり、正しく設定しないと反対に脆弱性を生むことがあります。
  • 設定後に必ずテストを行い、誤った署名や配信がないことを確認してください。
  • 構成を変更した場合は、全てのDNSサーバーで更新を行ってください。

まとめ

1. キーファイリング: DNSSECの実装にはGPGキーの生成と管理が必要です。

2. DSレコード追加: 認証機関から取得したDSレコードをDNS Zonesに追加します。

3. BIND設定: BINDでDNSSECを有効化し、必要なファイルとオプションを設定します。

4. 署名確認: DNSSECの署名と検証を行い、正しく動作していることを確認します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ