「設定 - Bind(Raspberry Pi)」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

文字列「presire220a-22」を「presire2-22」に置換
 
(同じ利用者による、間の7版が非表示)
7行目: 7行目:
例えば、外部向けDNSサーバの設定により、自宅サーバが稼動中にも係わらず、<br>
例えば、外部向けDNSサーバの設定により、自宅サーバが稼動中にも係わらず、<br>
ダイナミックDNSサービス側が保守やトラブル等でサービスが停止したことにより、ドメイン名でサーバにアクセスできなくなるということがなくなる。<br>
ダイナミックDNSサービス側が保守やトラブル等でサービスが停止したことにより、ドメイン名でサーバにアクセスできなくなるということがなくなる。<br>
<br>
DNSサーバには、DNSキャッシュサーバとDNSコンテンツサーバの2種類があり、これらは、別の動作を行うDNSサーバである。<br>
下表に、DNSキャッシュサーバとDNSコンテンツサーバの役割を示す。<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | DNSサーバの種類
! style="background-color:#66CCFF;" | 役割
|-
| DNSキャッシュサーバ || ドメイン名とIPアドレスの対応の問い合わせを行い、その結果をキャッシュする。<br>企業では、<u>社内LAN</u>に配置される。<br>また、自社の管理するドメイン名を持たない。
|-
| DNSコンテンツサーバ || ドメイン名とIPアドレスの対応表を<u>ゾーン</u>という単位で管理する。<br>企業では<u>DMZ</u>に配置される。<br>また、自社の管理するドメイン名があり、外部からの問い合わせに応答。
|}
</center>
<br>
<br>
<u>※注意</u><br>
<u>※注意</u><br>
<u>外部向けDNSサーバの場合は、独自ドメイン取得済であること。</u><br>
<u>外部向けDNSサーバの場合は、独自ドメイン取得済であること。</u><br>
<u>また、静的IPアドレスの場合のみである。</u><br>
<u>また、静的IPアドレスの場合のみである。</u><br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! colspan="3" style="text-align: center; background-color:#44CC99;" | 参考書
|- style="text-align: center;"
| <center><html><a href="https://www.amazon.co.jp/Rocky-Linux-AlmaLinux%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-impress-gear%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B0B3QSS8DT?crid=1ZTL0E0V93Y45&keywords=rocky+linux+%26+almalinux%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89&qid=1705019058&sprefix=%E5%AE%9F%E8%B7%B5%21Alma%2Caps%2C157&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=66b3d72349b7518375594d4a41adb6f5&language=ja_JP&ref_=as_li_ss_tl"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/91WKgzqLfSL._SL1500_.jpg" ></a><br>
<center><a target="_blank" href="https://www.amazon.co.jp/Rocky-Linux-AlmaLinux%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-impress-gear%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B0B3QSS8DT?crid=1ZTL0E0V93Y45&keywords=rocky+linux+%26+almalinux%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89&qid=1705019058&sprefix=%E5%AE%9F%E8%B7%B5%21Alma%2Caps%2C157&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=66b3d72349b7518375594d4a41adb6f5&language=ja_JP&ref_=as_li_ss_tl">Rocky Linux & AlmaLinux 実践ガイド</a></center></html></center>
| <center><html><a href="https://www.amazon.co.jp/Beginners-Guide-Raspberry-Pocket-Sized-Electronics-ebook/dp/B0CRR3TQBX?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=P96B5Z932VPU&keywords=raspberry+pi&qid=1705019288&s=english-books&sprefix=raspberry+pi%2Cenglish-books%2C164&sr=1-4&linkCode=ll1&tag=presire2-22&linkId=645cabb1a93fd02d4ad359d538bba99d&language=ja_JP&ref_=as_li_ss_tl"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/81KD3bqetEL._SL1500_.jpg" ></a><br>
<center><a target="_blank" href="https://www.amazon.co.jp/Beginners-Guide-Raspberry-Pocket-Sized-Electronics-ebook/dp/B0CRR3TQBX?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=P96B5Z932VPU&keywords=raspberry+pi&qid=1705019288&s=english-books&sprefix=raspberry+pi%2Cenglish-books%2C164&sr=1-4&linkCode=ll1&tag=presire2-22&linkId=645cabb1a93fd02d4ad359d538bba99d&language=ja_JP&ref_=as_li_ss_tl">A Beginners Guide Raspberry Pi 5<br>電子計算、プログラミング、DIYプロジェクトのための<br>Raspberry Pi 5の作成、構築、探索のためのガイド</a></center></html></center>
| <center><html><a href="https://www.amazon.co.jp/Managing-Mission-Critical-Demystifying-nameservers-ebook/dp/B07F71QMFM?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2WS7YP1RGG2LM&keywords=DNS+packt&qid=1705019671&sprefix=dns+packt%2Caps%2C173&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=ddc9fc6398e7ae52d165a56524f52f9d&language=ja_JP&ref_=as_li_ss_tl"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/91pjBtGun1L._SL1500_.jpg" ></a><br>
<center><a target="_blank" href="https://www.amazon.co.jp/Managing-Mission-Critical-Demystifying-nameservers-ebook/dp/B07F71QMFM?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2WS7YP1RGG2LM&keywords=DNS+packt&qid=1705019671&sprefix=dns+packt%2Caps%2C173&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=ddc9fc6398e7ae52d165a56524f52f9d&language=ja_JP&ref_=as_li_ss_tl">Managing Mission<br>クリティカルドメイン、DNS、ドメイン名の謎を解く</a></center></html></center>
|}
</center>
<br><br>
<br><br>


29行目: 57行目:
     ...略
     ...略
   
   
     # 内部向けDNSサーバの管理外の問合せ先 (フォワードする場合は、HGW等のIPアドレスを入力する)
     # 内部向けDNSサーバの管理外の問合せ先
     // forwarders {
     ## フォワードしない場合
    //  0.0.0.0;
    forwarders {
     // };
      0.0.0.0;
     };
    ## フォワードする場合は、HGW等のIPアドレスを入力する
     forwarders {
     forwarders {
       192.168.1.1;
       192.168.1.1;
39行目: 69行目:
     ...略
     ...略
   
   
     # IPv6を使用しない場合
     # IPv6の設定
     //listen-on-v6 { any; };
    ## IPv6を使用する場合
     listen-on-v6 { any; };
    ## IPv6を使用しない場合
     listen-on-v6 { none; };
     listen-on-v6 { none; };
   
   
46行目: 78行目:
   
   
     # 問い合わせを許可する範囲を指定
     # 問い合わせを許可する範囲を指定
     # 以下の例では、LAN(192.168.1.*)のみ問い合わせを許可している
     ## LAN(192.168.1.*)のみ問い合わせを許可する場合
     allow-query { 127.0.0.1; 192.168.1.0/24; };
     allow-query { localhost; 192.168.1.0/24; };
    ## 全てのIPアドレスから問い合わせを許可する場合
    allow-query { any; };
   
   
     # 全てListenする場合 (未設定でもよい)
     # 全てListenする場合 (未設定でもよい)
     //listen-on port 53 { 127.0.0.1; };   
     //listen-on port 53 { localhost; };   
     //listen-on port 53 { any; };                    # 全てListenする場合
     //listen-on port 53 { any; };                    # 全てListenする場合
     listen-on port 53 { 127.0.0.1; 192.168.1.XX; };  # LAN内のみListenする場合
     listen-on port 53 { localhost; 192.168.1.XX; };  # LAN内のみListenする場合
   
   
     # BINDはキャッシュサーバとして動作する
     # 再帰問い合わせの設定
     # 受け付ける対象のホストも明示する
     # 再帰問い合わせはDNS増幅攻撃に利用されるため、外部向けDNSサーバはDNSキャッシュサーバ、内部向けDNSサーバはDNSリゾルバのように別サーバに分離することが推奨される
     recursion yes;
    ## recurionがyesの場合、DNSキャッシュサーバとして動作する
     allow-recursion { 192.168.1.0/24; 127.0.0.1; };
    ## recurionがnoの場合、DNSコンテンツサーバ(権威サーバ)として動作する (このDNSサーバでホストしているドメイン以外は解決しない)
     recursion no;
    ## recurionがyesの場合、受け付ける対象のホストの設定
    ## allow-recursionがanyの場合、全てのIPアドレスから受け付ける
     allow-recursion { 192.168.1.0/24; localhost; };
  };
  };
<br>
<br>
161行目: 199行目:
==== ドメイン名の正引きおよび逆引きの確認 ====
==== ドメイン名の正引きおよび逆引きの確認 ====
内部向けDNSサーバと各クライアントPCの正引きおよび逆引きができるかどうかを確認する。<br>
内部向けDNSサーバと各クライアントPCの正引きおよび逆引きができるかどうかを確認する。<br>
  nslookup raspberrypi.com  # 内部向けDNSサーバの正引き
# 再帰問い合わせが有効の場合
  nslookup pc1.com  # クライアントPC 1の正引き
  nslookup ns.raspberrypi.com  # 内部向けDNSサーバの正引き
nslookup pc2.com  # クライアントPC 2の正引き
  nslookup pc1.raspberrypi.com  # クライアントPC 1の正引き
nslookup pc3.com  # クライアントPC 3の正引き
   
   
  nslookup 192.168.1.XX  # 内部向けDNSサーバの逆引き
  nslookup 192.168.1.XX  # 内部向けDNSサーバの逆引き
  nslookup 192.168.1.YY  # クライアントPC 1の逆引き
  nslookup 192.168.1.YY  # クライアントPC 1の逆引き
  nslookup 192.168.1.ZZ  # クライアントPC 2の逆引き
   
  nslookup 192.168.1.AA  # クライアントPC 3の逆引き
# 再帰問い合わせが無効の場合(recursion項目がnoの場合)
dig @<該当PCのIPアドレス> <該当PCのドメイン名>
例1. dig @192.168.10.5 ns.raspberrypi.net
  例2. dig @192.168.10.6 pc01.raspberrypi.net
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Raspberry_Pi]]
[[カテゴリ:Raspberry_Pi]]

2024年11月23日 (土) 17:47時点における最新版

概要

DNSサーバ(BIND)は、raspberrypi.comというドメイン名からIPアドレスを返したり、IPアドレスからドメイン名を返すサーバである。

内部向けDNSサーバは、LANにあるサーバまたはクライアントPCにアクセスする時、IPアドレスではなくraspberrypi.com等のドメイン名を入力してアクセスできるようにするDNSサーバである。
外部向けDNSサーバは、WANにあるサーバまたはクライアントPCにアクセスする時、自ドメイン名からIPアドレスへの変換(名前解決)を行なうようにするDNSサーバである。

例えば、外部向けDNSサーバの設定により、自宅サーバが稼動中にも係わらず、
ダイナミックDNSサービス側が保守やトラブル等でサービスが停止したことにより、ドメイン名でサーバにアクセスできなくなるということがなくなる。

DNSサーバには、DNSキャッシュサーバとDNSコンテンツサーバの2種類があり、これらは、別の動作を行うDNSサーバである。
下表に、DNSキャッシュサーバとDNSコンテンツサーバの役割を示す。

DNSサーバの種類 役割
DNSキャッシュサーバ ドメイン名とIPアドレスの対応の問い合わせを行い、その結果をキャッシュする。
企業では、社内LANに配置される。
また、自社の管理するドメイン名を持たない。
DNSコンテンツサーバ ドメイン名とIPアドレスの対応表をゾーンという単位で管理する。
企業ではDMZに配置される。
また、自社の管理するドメイン名があり、外部からの問い合わせに応答。


※注意
外部向けDNSサーバの場合は、独自ドメイン取得済であること。
また、静的IPアドレスの場合のみである。

参考書
91WKgzqLfSL._SL1500_.jpg
Rocky Linux & AlmaLinux 実践ガイド
81KD3bqetEL._SL1500_.jpg
A Beginners Guide Raspberry Pi 5
電子計算、プログラミング、DIYプロジェクトのための
Raspberry Pi 5の作成、構築、探索のためのガイド
91pjBtGun1L._SL1500_.jpg
Managing Mission
クリティカルドメイン、DNS、ドメイン名の謎を解く



BINDのインストール

DNSサーバを構築するため、BINDをインストールする。

# 内部向けDNSサーバを構築する場合
sudo apt install bind9 bind9-utils bind9-dnsutils dns-root-data python3-ply



BINDの設定 : 内部向けDNSの場合

内部向けDNSサーバ全体の設定

BINDの全体的な動作を設定する。

sudo vi /etc/bind/named.conf.options


# /etc/bind/named.conf.optionsファイル

options {
    ...略

    # 内部向けDNSサーバの管理外の問合せ先
    ## フォワードしない場合
    forwarders {
      0.0.0.0;
    };
    ## フォワードする場合は、HGW等のIPアドレスを入力する
    forwarders {
     192.168.1.1;
    };

    ...略

    # IPv6の設定
    ## IPv6を使用する場合
    listen-on-v6 { any; };
    ## IPv6を使用しない場合
    listen-on-v6 { none; };

    ...略

    # 問い合わせを許可する範囲を指定
    ## LAN(192.168.1.*)のみ問い合わせを許可する場合
    allow-query { localhost; 192.168.1.0/24; };
    ## 全てのIPアドレスから問い合わせを許可する場合
    allow-query { any; };

    # 全てListenする場合 (未設定でもよい)
    //listen-on port 53 { localhost; };  
    //listen-on port 53 { any; };                    # 全てListenする場合
    listen-on port 53 { localhost; 192.168.1.XX; };  # LAN内のみListenする場合

    # 再帰問い合わせの設定
    # 再帰問い合わせはDNS増幅攻撃に利用されるため、外部向けDNSサーバはDNSキャッシュサーバ、内部向けDNSサーバはDNSリゾルバのように別サーバに分離することが推奨される
    ## recurionがyesの場合、DNSキャッシュサーバとして動作する
    ## recurionがnoの場合、DNSコンテンツサーバ(権威サーバ)として動作する (このDNSサーバでホストしているドメイン以外は解決しない)
    recursion no;
    ## recurionがyesの場合、受け付ける対象のホストの設定
    ## allow-recursionがanyの場合、全てのIPアドレスから受け付ける
    allow-recursion { 192.168.1.0/24; localhost; };
};


内部向けDNSサーバの正引きゾーンおよび逆引きゾーンを設定する。

sudo vi /etc/bind/named.conf.default-zones


# /etc/bind/named.conf.default-zonesファイル

...略

// 内部向けDNSサーバのゾーンの設定 (追加)
// 192.168.1.* の正引き
zone "raspberrypi.com" {
    type master;
    file "/etc/bind/raspberrypi.db";
};

// 192.168.1.* の逆引き
zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.1.168.192";
};


内部向け正引きゾーンデータベースの作成 (ドメイン名からIPアドレス)

この設定を有効にするには、外部向けDNSサーバを静的IPアドレスにする必要がある。

内部向けDNSサーバの正引きゾーンデータベースを作成する。
以下の例に記述しているXXやYY等のIPアドレスを、該当するクライアントPCのIPアドレスに変更すること。

sudo vi /etc/bind/raspberrypi.db


# /etc/bind/raspberrypi.dbファイル

$TTL 86400

@      IN SOA ns.raspberrypi.com.    root.raspberrypi.com. (
                                     2022041001 ; Serial  例. 作成年月日 + 01(連番)を記述する
                                     28800      ; Refresh
                                     14400      ; Retry
                                     3600000    ; Expire
                                     86400      ; Minimum TTL
)

@            IN NS ns.raspberrypi.com.
ns           IN A  192.168.1.XX  ; 内部向けDNSサーバのIPアドレス
raspi        IN A  192.168.1.XX  ; 内部向けDNSサーバのIPアドレス (別名を付けることもできる)
pc1          IN A  192.168.1.YY  ; クライアントPC 1
pc2          IN A  192.168.1.ZZ  ; クライアントPC 2
pc3          IN A  192.168.1.AA  ; クライアントPC 3


内部向け逆引きゾーンデータベースの作成 (IPアドレスからドメイン名)

この設定を有効にするには、外部向けDNSサーバを静的IPアドレスにする必要がある。

内部向けDNSサーバの逆引きゾーンデータベースを作成する。
以下の例に記述しているXXやYY等は、各クライアントPCのIPアドレスに変更すること。

sudo vi /etc/bind/db.1.168.192


# /etc/bind/db.1.168.192ファイル

$TTL 86400

@   IN SOA ns.raspberrypi.com.    root.raspberrypi.com. (
                      2022041001 ; Serial   例. 作成年月日 + 01(連番)を記述する
                      3H         ; Refresh
                      1H         ; Retry
                      1W         ; Expire
                      1D )       ; Minimum

       IN NS  ns.raspberrypi.com.  ;
       IN PTR raspberrypi.com.     ;
       IN A   255.255.255.0        ;

XX     IN PTR ns.raspberrypi.com.     ; 内部向けDNSサーバのIPアドレス
XX     IN PTR raspi.raspberrypi.com.  ; 内部向けDNSサーバのIPアドレス (別名を付けることもできる)
YY     IN PTR pc1.raspberrypi.com.    ; クライアントPC 1
ZZ     IN PTR pc2.raspberrypi.com.    ; クライアントPC 2
AA     IN PTR pc3.raspberrypi.com.    ; クライアントPC 3


設定ファイルが正常に記述されているかどうかを確認する。

sudo named-checkconf


内部向けDNSサーバの起動

内部向けDNSサーバを起動する。
firewalldをインストールしている場合は、併せて、ファイアーウォールのポート開放も行う。

sudo systemctl start named.service

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload


内部向けDNSサーバの停止

内部向けDNSサーバを停止する。
firewalldをインストールしている場合は、併せて、ファイアーウォールのポートも閉じる。

sudo systemctl stop named.service

sudo firewall-cmd --permanent --remove-service=dns
sudo firewall-cmd --reload


クライアントPCの設定

LinuxでKDEを使用している場合、[KDEシステム設定]を起動して、[接続] - 画面左の接続名 - 画面右の[IPv4]タブ - [DNSサーバ:]項目に内部向けDNSサーバのIPアドレスを追加する。
Linuxを再起動する。

ドメイン名の正引きおよび逆引きの確認

内部向けDNSサーバと各クライアントPCの正引きおよび逆引きができるかどうかを確認する。

# 再帰問い合わせが有効の場合
nslookup ns.raspberrypi.com   # 内部向けDNSサーバの正引き
nslookup pc1.raspberrypi.com  # クライアントPC 1の正引き

nslookup 192.168.1.XX  # 内部向けDNSサーバの逆引き
nslookup 192.168.1.YY  # クライアントPC 1の逆引き

# 再帰問い合わせが無効の場合(recursion項目がnoの場合)
dig @<該当PCのIPアドレス> <該当PCのドメイン名>
例1. dig @192.168.10.5 ns.raspberrypi.net
例2. dig @192.168.10.6 pc01.raspberrypi.net