「設定 - Bind(Raspberry Pi)」の版間の差分
細 文字列「presire220a-22」を「presire2-22」に置換 |
|||
| (同じ利用者による、間の9版が非表示) | |||
| 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サーバの管理外の問合せ先 | # 内部向けDNSサーバの管理外の問合せ先 | ||
## フォワードしない場合 | |||
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 { none; }; | listen-on-v6 { none; }; | ||
| 46行目: | 78行目: | ||
# 問い合わせを許可する範囲を指定 | # 問い合わせを許可する範囲を指定 | ||
# | ## LAN(192.168.1.*)のみ問い合わせを許可する場合 | ||
allow-query { | allow-query { localhost; 192.168.1.0/24; }; | ||
## 全てのIPアドレスから問い合わせを許可する場合 | |||
allow-query { any; }; | |||
# 全てListenする場合 (未設定でもよい) | # 全てListenする場合 (未設定でもよい) | ||
//listen-on port 53 { | //listen-on port 53 { localhost; }; | ||
//listen-on port 53 { any; }; # 全てListenする場合 | //listen-on port 53 { any; }; # 全てListenする場合 | ||
listen-on port 53 { | listen-on port 53 { localhost; 192.168.1.XX; }; # LAN内のみListenする場合 | ||
# | # 再帰問い合わせの設定 | ||
# | # 再帰問い合わせはDNS増幅攻撃に利用されるため、外部向けDNSサーバはDNSキャッシュサーバ、内部向けDNSサーバはDNSリゾルバのように別サーバに分離することが推奨される | ||
recursion | ## recurionがyesの場合、DNSキャッシュサーバとして動作する | ||
allow-recursion { 192.168.1.0/24; | ## recurionがnoの場合、DNSコンテンツサーバ(権威サーバ)として動作する (このDNSサーバでホストしているドメイン以外は解決しない) | ||
recursion no; | |||
## recurionがyesの場合、受け付ける対象のホストの設定 | |||
## allow-recursionがanyの場合、全てのIPアドレスから受け付ける | |||
allow-recursion { 192.168.1.0/24; localhost; }; | |||
}; | }; | ||
<br> | <br> | ||
| 92行目: | 130行目: | ||
$TTL 86400 | $TTL 86400 | ||
@ IN SOA raspberrypi.com. root.com. ( | @ IN SOA ns.raspberrypi.com. root.raspberrypi.com. ( | ||
2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する | 2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する | ||
28800 ; Refresh | 28800 ; Refresh | ||
| 100行目: | 138行目: | ||
) | ) | ||
@ IN NS raspberrypi.com. | @ 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 | pc1 IN A 192.168.1.YY ; クライアントPC 1 | ||
pc2 IN A 192.168.1.ZZ ; クライアントPC 2 | pc2 IN A 192.168.1.ZZ ; クライアントPC 2 | ||
| 117行目: | 156行目: | ||
$TTL 86400 | $TTL 86400 | ||
@ IN SOA raspberrypi.com. root.com. ( | @ IN SOA ns.raspberrypi.com. root.raspberrypi.com. ( | ||
2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する | 2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する | ||
3H ; Refresh | 3H ; Refresh | ||
| 123行目: | 162行目: | ||
1W ; Expire | 1W ; Expire | ||
1D ) ; Minimum | 1D ) ; Minimum | ||
XX IN PTR raspberrypi.com. ; 内部向けDNSサーバのIPアドレス | IN NS ns.raspberrypi.com. ; | ||
YY IN PTR pc1.com. | IN PTR raspberrypi.com. ; | ||
ZZ IN PTR pc2.com. | IN A 255.255.255.0 ; | ||
AA IN PTR pc3.com. | |||
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 | |||
<br> | <br> | ||
設定ファイルが正常に記述されているかどうかを確認する。<br> | 設定ファイルが正常に記述されているかどうかを確認する。<br> | ||
sudo named-checkconf | sudo named-checkconf | ||
<br> | <br> | ||
==== 内部向けDNSサーバの起動 ==== | ==== 内部向けDNSサーバの起動 ==== | ||
内部向けDNSサーバを起動する。<br> | 内部向けDNSサーバを起動する。<br> | ||
| 158行目: | 199行目: | ||
==== ドメイン名の正引きおよび逆引きの確認 ==== | ==== ドメイン名の正引きおよび逆引きの確認 ==== | ||
内部向けDNSサーバと各クライアントPCの正引きおよび逆引きができるかどうかを確認する。<br> | 内部向けDNSサーバと各クライアントPCの正引きおよび逆引きができるかどうかを確認する。<br> | ||
nslookup raspberrypi.com # 内部向けDNSサーバの正引き | # 再帰問い合わせが有効の場合 | ||
nslookup pc1.com # クライアントPC 1の正引き | nslookup ns.raspberrypi.com # 内部向けDNSサーバの正引き | ||
nslookup pc1.raspberrypi.com # クライアントPC 1の正引き | |||
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の逆引き | ||
# 再帰問い合わせが無効の場合(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アドレスの場合のみである。
| 参考書 | ||
|---|---|---|
![]() |
![]() 電子計算、プログラミング、DIYプロジェクトのための Raspberry Pi 5の作成、構築、探索のためのガイド |
![]() クリティカルドメイン、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


