MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - Bind(SUSE)のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - Bind(SUSE)
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == DNSサーバ(BIND)は、suse.comというドメイン名からIPアドレスを返したり、IPアドレスからドメイン名を返すサーバである。<br> <br> 内部向けDNSサーバは、LANにあるサーバまたはクライアントPCにアクセスする時、IPアドレスではなくsuse.com等のドメイン名を入力してアクセスできるようにするDNSサーバである。<br> 外部向けDNSサーバは、WANにあるサーバまたはクライアントPCにアクセスする時、自ドメイン名からIPアドレスへの変換(名前解決)を行なうようにするDNSサーバである。<br> <br> 例えば、外部向けDNSサーバの設定により、自宅サーバが稼動中にも係わらず、<br> ダイナミックDNSサービス側が保守やトラブル等でサービスが停止したことにより、ドメイン名でサーバにアクセスできなくなるということがなくなる。<br> <br> <u>※注意</u><br> <u>固定IPアドレスの場合は独自ドメイン取得済であること。</u><br> <u>外部向けDNSサーバは固定IPアドレス環境の場合のみ。</u><br> <br><br> == BINDのインストール == DNSサーバを構築するため、BINDをインストールする。<br> # 内部向けDNSサーバを構築する場合 sudo zypper install bind bind-utils # 外部向けDNSサーバを構築する場合 sudo zypper install bind bind-utils bind-chrootenv <br><br> == BINDの設定 : 内部向けDNSの場合 == BINDの設定ファイルを編集する。<br> sudo vi /etc/named.conf <br> options { ...略 # 内部向けDNSサーバの管理外の問合せ先 #forwarders { 192.0.2.1; 192.0.2.2; }; forwarders { 192.168.1.1; }; ...略 # 全てListenする場合 (未設定でもよい) #listen-on port 53 { 127.0.0.1; }; listen-on port 53 { any; }; # IPv6を使用しない場合 #listen-on-v6 { any; }; listen-on-v6 { none; }; ...略 # 問い合わせを許可する範囲を指定 # 以下の例では、LAN(192.168.1.*)からのみ問い合わせを許可している #allow-query { 127.0.0.1; }; allow-query { 127.0.0.1; 192.168.1.0/24; }; ...略 }; ...略 # コメントアウトする #include "/etc/named.conf.include"; ...略 # 内部向けDNSサーバのゾーンの設定 (追加) # 192.168.1.* の正引き zone "suse.com" { type master; file "suse.db"; }; # 192.168.1.* の逆引き zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.db"; }; <br> suse.comの内部向けゾーン定義ファイルを作成する。<br> 以下の例に記述しているXXやYY等のIPアドレスを、該当するクライアントPCのIPアドレスに変更すること。<br> <br> 内部向けDNSサーバの正引きするためのゾーンファイルを作成する。<br> sudo vi /var/lib/named/suse.db <br> # /var/lib/named/suse.dbファイル $TTL 86400 @ IN SOA ns.suse.com. root.suse.com. ( 2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ; Minimum TTL ) @ IN NS ns.suse.com. ; ns 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 <br> 内部向けDNSサーバの逆引きするためのゾーンファイルを作成する。<br> sudo vi /var/lib/named/1.168.192.in-addr.arpa.db <br> # /var/lib/named/1.168.192.in-addr.arpa.dbファイル $TTL 86400 ; @ IN SOA ns.suse.com. root.suse.com. ( 2022041001 ; Serial 例. 作成年月日 + 01(連番)を記述する 3H ; Refresh 1H ; Retry 1W ; Expire 1D ) ; Minimum IN NS ns.suse.com. ; IN PTR suse.com. ; IN A 255.255.255.0 ; XX IN PTR ns.suse.com. ; 内部向けDNSサーバのIPアドレス YY IN PTR pc1.suse.com. ; クライアントPC 1 ZZ IN PTR pc2.suse.com. ; クライアントPC 2 AA IN PTR pc3.suse.com. ; クライアントPC 3 <br> 設定ファイルが正常に記述されているかどうかを確認する。<br> sudo named-checkconf <br><br> == ルートゾーンの更新と自動更新設定 == ルートゾーンは、世界に13台しかないトップレベルドメインを管理するDNSサーバのIPアドレスを管理しているファイルである。<br> ルートゾーン(named.ca)を更新する。<br> dig . ns @198.41.0.4 +bufsize=1024 > /var/named/chroot/var/named/named.ca <br> また、各月で、ルートゾーンが最新かどうか確認し、更新されていればルートゾーンの更新およびBINDの再起動を自動的に行うようにするため、<br> ルートゾーンの自動更新スクリプトを作成する。<br> ※ルートゾーンが更新されていた場合のみ、新旧ルートゾーン情報及び、新旧ルートゾーンの差分情報をroot宛にメールする。<br> sudo vi named.root_update <br> <syntaxhighlight lang="sh"> #!/bin/bash new=`mktemp` errors=`mktemp` dig . ns @198.41.0.4 +bufsize=1024 > $new 2> $errors if [ $? -eq 0 ]; then sort_new=`mktemp` sort_old=`mktemp` diff_out=`mktemp` sort $new > $sort_new sort /var/named/chroot/var/named/named.ca > $sort_old diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out if [ $? -ne 0 ]; then ( echo '-------------------- old named.root --------------------' cat /var/named/chroot/var/named/named.ca echo echo '-------------------- new named.root --------------------' cat $new echo '---------------------- difference ----------------------' cat $diff_out ) | mail -s 'named.root updated' root cp -f $new /var/named/chroot/var/named/named.ca chown named. /var/named/chroot/var/named/named.ca chmod 644 /var/named/chroot/var/named/named.ca which systemctl > /dev/null 2>&1 if [ $? -eq 0 ]; then systemctl restart named-chroot > /dev/null else /etc/rc.d/init.d/named restart > /dev/null fi fi rm -f $sort_new $sort_old $diff_out else cat $errors | mail -s 'named.root update check error' root fi rm -f $new $errors </syntaxhighlight> <br> ルートゾーンの更新スクリプトに実行権限を付加する。<br> sudo chmod 700 named.root_update <br> ルートゾーンの更新スクリプトを毎月自動実行されるディレクトリに移動する。<br> sudo mv named.root_update /etc/cron.monthly/ <br><br> == 内部向け正引きゾーンデータベースの作成(ドメイン名からIPアドレス) == 正引きゾーンデータベースを作成する。<br> sudo vi /var/named/centos.com.db <br> $TTL 86400 @ IN SOA centos.com. root.centos.com.( 2020010101 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS centos.com. IN MX 10 centos.com. @ IN A 192.168.1.30 ;サーバのプライベートIPアドレスを指定(centos.com用) * IN A 192.168.1.30 ;サーバのプライベートIPアドレスを指定(*.centos.com用) <br><br> == 内部向け逆引きゾーンデータベースの作成(IPアドレスからドメイン名) == 逆引きゾーンデータベースを作成する。<br> sudo vi /var/named/1.168.192.in-addr.arpa.db <br> $TTL 86400 @ IN SOA centos.com. root.centos.com.( 2020010101 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS centos.com. ; ネームサーバ名 30 IN PTR centos.com. ; サーバIPアドレス最下位部(192.168.1.30)とドメイン名を指定 <br><br> == 外部向け正引きゾーンデータベースの作成(ドメイン名からIPアドレス)<br>(固定IPアドレスの場合のみ) == 外部向け正引きゾーンデータベースを作成する。<br> sudo vi /var/named/centos.com.db.wan <br> $TTL 86400 @ IN SOA ns1.centos.com. root.centos.com.( 2020010101 ; Serial 7200 ; Refresh 7200 ; Retry 2419200 ; Expire 86400 ) ; Minimum IN NS ns1.centos.com. ; ネームサーバ名 IN MX 10 centos.com. ; MXホスト名(メールサーバを構築する場合のみ) ns1 IN A XXX.XXX.XXX.XXX ; サーバのグローバルIPアドレスを指定(ns1.centos.com用) @ IN A XXX.XXX.XXX.XXX ; サーバのグローバルIPアドレスを指定(centos.com用) www IN A XXX.XXX.XXX.XXX ; サーバのグローバルIPアドレスを指定(www.centos.com用) ftp IN A XXX.XXX.XXX.XXX ; サーバのグローバルIPアドレスを指定(ftp.centos.com用) mail IN A XXX.XXX.XXX.XXX ; サーバのグローバルIPアドレスを指定(mail.centos.com用) centos.com. IN TXT "v=spf1 ip4:XXX.XXX.XXX.XXX ~all" ;サーバのグローバルIPアドレスを指定(メールサーバを構築する場合のみ) <br><br> == 外部向け逆引きゾーンデータベースの作成(IPアドレスからドメイン名)<br>(固定IPアドレスでプロバイダから逆引き権限を委譲されている場合のみ) == 外部向け逆引きゾーンデータベースを作成する。<br> sudo vi /var/named/SUBxxx.xxx.xxx.xxx.in-addr.arpa.db.wan <br> $TTL 86400 @ IN SOA ns1.centos.com. root.centos.com.( 2020010101 ; Serial 7200 ; Refresh 7200 ; Retry 2419200 ; Expire 86400 ) ; Minimum IN NS ns1.centos.com. xxx IN PTR centos.com. ;サーバIPアドレス最下位部(xxx.xxx.xxx.xxx)とドメイン名を指定 <br> <span style="color:#C00000"> '''※注意'''<br> '''ゾーン情報の変更時は、Serial行を年月日と通番2桁(yyyymmddxx)のようにして、必ず、変更前よりも大きな値に変更すること。'''<br> '''例えば、変更前のSerialが2020010101なら、変更後のSerialは2020010102にする。'''<br> '''これにより、後述するセカンダリ側へのゾーン情報の変更が正しく行われるようになる。'''<br> </span> <br><br> == BINDの起動 == sudo systemctl start named-chroot sudo systemctl enable named-chroot <br><br> == ファイヤーウォールのポート開放 == CentOSのファイヤーウォールのポートを開放する。(TCP53番ポートとUDP53番ポート)<br> sudo firewall-cmd --add-service=dns --parmanent sudo firewall-cmd --reload <br><br> == ルータのポート開放 == ルータ側の設定で、TCP53番ポートとUDP53番ポートへのアクセスをDNSサーバ(CentOS)に転送するように設定する。<br> <br> <span style="color:#C00000"> '''※注意'''<br> '''ルータのポート開放の設定は、各ルータのマニュアルを参照すること。'''<br> </span> <br><br> __FORCETOC__ [[カテゴリ:SUSE]]
設定 - Bind(SUSE)
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse