GNU/Linux >> Linux の 問題 >  >> Ubuntu

CentOS、RHEL、Ubuntu、Debianでのバインド9.8.2でのDNSSECの構成

このチュートリアルは、CentOSオペレーティングシステムのBind9(バージョン9.8.2)でDNSSECを構成するのに役立ちます。ただし、この手順はRedHat Enterprise Linux Server、Ubuntu、Debianでも機能します。権威ネームサーバーでDNSSECを有効にする方法、キーの作成、ゾーンへの署名、DNSSECLookasideの検証とテストを使用したトラストアンカーの追加について説明します。

バインド構成を初めて使用する場合は、このガイドをチェックアウトして、バインド構成について理解してください。さらに、DNSSECとは何か、なぜDNSSECを有効にする必要があるのか​​わからない場合はどうすればよいですか?次に、ここをクリックしてください。

免責事項: テストベッドで学習して試した手順を共有していますが、それがお客様の環境で機能するという保証はありません。ただし、実稼働システムですぐに構成する前に、テストベッドを試してみることができます。

先に進みましょうか?

バインド構成を使用してDNS環境を準備します。

このチュートリアルではバインドに関するDNSSECについて説明するため、バインド環境が機能していることを確認してください。 Bindをインストールして構成するには、この簡単なガイドに従ってください。

前提条件:

ステップ1: dnssec-toolsパッケージをダウンロードしてインストールします。このパッケージを使用してゾーンに署名します。

$wget http://www.dnssec-tools.org/download/dnssec-tools-2.0.tar.gz
$tar xvzf dnssec-tools-2.0.tar.gz
$cd dnssec-tools-2.0
>

DebianとUbuntuでは、apt-getを介してインストールできますか。

$apt-get install dnssec-tools

ステップ2: DNSSEC、検証、ルックアサイドを有効にする

$vi /etc/named.conf

ただし、 named.confのパス 環境によって異なる場合があります。 /etc/named/named.confで探します または/var/named/named.conf

オプション」を探してください ‘ named.confのディレクティブ 。そこに見つからない場合は、 named.options が見つかる可能性があります ファイル。とにかく、違いはありません。

Optionsディレクティブで、以下の属性を変更します。

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

Ok!これが私のOptionsディレクティブの外観です

options {
listen-on port 53 { 10.180.1.115; };
listen-on-v6 port 53 { ::1; };
version "not currently available";
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";};

bindkeys-ファイル :この行は、バインドキーが別の場所にある場合にのみ必要です。とにかく、後で話します。

dnssec-lookaside auto :この設定は、Bindに bind.keys からDLV(DNSSEC Lookaside検証)キーを読み取るように指示します 初めて実行されます。現在のDLVはdlv.isc.org キー。

理解を深めるには:信頼の鎖を作成するには、ルートゾーンから独自のゾーンまでのDNSパス全体に署名する必要があります。たとえば、ドメインtechglimpse.comについて考えてみます。 techglimpse.comのルートゾーンは.com 署名してからtechglimpse.comに署名する必要があり、ゾーンに署名する必要があります。ただし、すべてのトップレベルドメイン(TLD)が署名されているわけではありません(この記事の執筆時点)。親が署名されていない場合、信頼のチェーンが壊れており、ルートゾーンのキーをBIND構成のトラストアンカーとして使用することはできません。

これが、 DNSSECルックアサイド検証(DLV)の理由です。 が導入されました。これは実際には信頼できるキーの代替リポジトリであり、ルートゾーンから自分のゾーンへの完全に署名されたパスがない場合にゾーンキーを送信できます。機能的なDLVレジストリは、dlv.isc.orgです。 デフォルトでは、ルートゾーンキーとdlv.isc.orgキーは /etc/named.iscdlv.keyに含まれています。 そしてそれはbindkeys-fileへの値として行きます オプションの属性 ディレクティブ named.confでこれが自動的に見つからない場合 またはnamed.options 、バインドを更新します( yum install bind9 )そしてもう一度確認してください。

Learn more about DLV registry:
DLV Solution by ISC : https://www.isc.org/solutions/dlv
DLV Background : https://dlv.isc.org/about/background
Status of TLDs signed: http://stats.research.icann.org/dns/tld_report/

dnssec-validation auto: このオプションは、バインド9.8、9.9以降でのみ使用できます。 Bind9.7はautoをサポートしていません dnssec-validationのオプションではなく、 dnssec-validation:yesを使用します これは、ルートゾーンキーがロードされていないことを意味します。この問題を解決するには、 bind.keysを使用できます。 ファイル。

$more bind.keys
managed-keys {
        # ISC DLV: See https://www.isc.org/solutions/dlv for details.
        # NOTE: This key is activated by setting "dnssec-lookaside auto;"
        # in named.conf.
        dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2
                brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+
                1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5
                ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk
                Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM
                QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt
                TDN0YUuWrBNh";

        # ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml
        # for current trust anchor information.
        # NOTE: This key is activated by setting "dnssec-validation auto;"
        # in named.conf.
        . initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
                FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
                bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
                X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
                W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
                Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
                QxA+Uk1ihz0=";
};

次に、 bind.keysを含めることができます named.conf またはnamed.options。

include "/etc/bind/bind.keys";

注:bind.keysの正しいパスを確認してください

完了したら、バインドを再起動します。

$service named restart
or
$/etc/init.d/bind9 restart
or
$rndc reload

Ok!これで、バインド時にDNSSECが有効になりました。次に、ゾーンに署名する方法を説明します。

DNSSECでゾーンに署名する方法

ゾーンに署名するには、このチュートリアルの最初にインストールしたdnsssec-toolsを使用します。 dnssec-toolsには、dnssec-keygenとdnssec-signzoneのラッパーであるゾーン署名者コマンドが付属しています。

詳細については、zonesignerのマニュアルページを確認してください。

$man zonesigner

dnssec-tools構成ファイルの場所: /usr/local/etc/dnssec-tools/dnssec-tools.conf 。ただし、パスはシステムによって異なる場合があります。

ゾーンに署名するには、コマンドは次のようになります。

zonesigner -genkeys -usensec3 -zone <domain-name> <zone-file>
$zonesigner -genkeys -usensec3 -zone techglimpse.com db.techglimpse.com
if zonesigner appears hung, strike keys until the program completes
(see the "Entropy" section in the man page for details)
Generating key pair......................................++++++ ..............++++++
Generating key pair......++++++ ..++++++
Generating key pair...................................+++ ..................................+++
Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone signing complete:
Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 1 stand-by, 0 revoked
zone signed successfully
techglimpse.com:
KSK (cur) 47781 2048 11/14/13 (techglimpse.com-signset-00003)
ZSK (cur) 06809 1024 11/14/13 (techglimpse.com-signset-00001)
ZSK (pub) 26330 1024 11/14/13 (techglimpse.com-signset-00002)
zone will expire in 30 days
DO NOT delete the keys until this time has passed.

ディレクトリをチェックアウトして、キーファイルを確認します。

$ ls -lrt
-rw-r--r--. 1 root root 571 Oct 14 14:09 db.10.180.4
-rw-------. 1 root root 1015 Nov 14 11:45 Ktecglimpse.com.+007+06809.private
-rw-r--r--. 1 root root 436 Nov 14 11:45 Ktechglimpse.com.+007+06809.key
-rw-------. 1 root root 1015 Nov 14 11:45 Ktechglimpse.com.+007+26330.private
-rw-r--r--. 1 root root 437 Nov 14 11:45 Ktechglimpse.com.+007+26330.key
-rw-------. 1 root root 1779 Nov 14 11:45 Ktechglimpse.com.+007+47781.private
-rw-r--r--. 1 root root 611 Nov 14 11:45 Ktechglimpse.com.+007+47781.key
-rw-r--r--. 1 root root 777 Nov 14 11:45 db.techglimpse.com
-rw-r--r--. 1 root root 173 Nov 14 11:45 dsset-techglimpse.com.
-rw-r--r--. 1 root root 7183 Nov 14 11:45 db.techglimpse.com.signed
-rw-r--r--. 1 root root 2172 Nov 14 11:45 techglimpse.com.krf

署名中にすべてがうまくいったかどうかを確認します。

$ donuts --level 8 -v db.techglimpse.com.signed techglimpse.com
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/check_nameserve rs.txt
 rules: MEMORIZE_NS_ADDRS DNS_SERVERS_MATCH_DATA
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dns.errors.txt
 rules: DNS_SOA_REQUIRED MEMORIZE_NS_CNAME_RECORDS DNS_NS_NO_CNAME
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dnssec.rules.tx t
 rules: DNSSEC_RRSIG_TTL_MATCH_ORGTTL DNSSEC_MEMORIZE_NS_RECORDS DNSSEC_CHECK _IF_NSEC3 DNSSEC_MISSING_NSEC_RECORD1 DNSSEC_MISSING_RRSIG_RECORD1 DNSSEC_RRSIG_ NOT_SIGNING_RRSIG DNSSEC_RRSIG_FOR_NS_GLUE_RECORD DNSSEC_NSEC_FOR_NS_GLUE_RECORD DNSSEC_RRSIG_SIGEXP DNSSEC_NSEC_TTL DNSSEC_NSEC3_TTL DNSSEC_DNSKEY_MUST_HAVE_SA ME_NAME DNSSEC_DNSKEY_PROTOCOL_MUST_BE_3 DNSSEC_BOGUS_NS_MEMORIZE DNSSEC_MISSING _RRSIG_RECORD2 DNSSEC_RRSIG_TTL_MUST_MATCH_RECORD DNSSEC_MISSING_NSEC_RECORD2 DN SSEC_RRSIG_SIGNER_NAME_MATCHES DNSSEC_NSEC_RRSEC_MUST_NOT_BE_ALONE DNSSEC_MEMORI ZE_KEYS DNSSEC_RRSIGS_VERIFY DNSSEC_TWO_ZSKS DNSSEC_OPENSSL_KEY_ISSUES
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/nsec_check.rule s.txt
 rules: DNSSEC_NSEC_MEMORIZE DNSSEC_NSEC3_MEMORIZE DNSSEC_NSEC3_CHECK DNSSEC_ NSEC_CHECK
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/parent_child.ru les.txt
 rules: DNS_MULTIPLE_NS DNSSEC_SUB_NOT_SECURE DNSSEC_DNSKEY_PARENT_HAS_VALID_ DS DNSSEC_DS_CHILD_HAS_MATCHING_DNSKEY
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/recommendations .rules.txt
 rules: DNS_REASONABLE_TTLS DNS_NO_DOMAIN_MX_RECORDS
--- Analyzing individual records in db.techglimpse.com.signed
--- Analyzing records for each name in db.techglimpse.com.signed
techglimpse.com:
 Rule Name: DNS_MULTIPLE_NS
 Level: 6
 Warning: Only 1 NS record(s) for techglimpse.com found, but at least 2
 are suggested/required
 Details: Tests to see if at least two NS records exist for a
 delegated zone.
results on testing techglimpse.com:
 rules considered: 38
 rules tested: 30
 records analyzed: 33
 names analyzed: 10
 errors found: 0

次に、 named.conf の署名済みゾーン(techglimpse.com)を置き換えます

zone "techglimpse.com" {
 type master;
 file "/var/named/zones/master/db.techglimpse.com.signed";
 };

以下のようにバインドを再開します

$service named restart
or
$/etc/init.d/bind9 restart

digを使用してDNSSECセットアップをテストする

digコマンドの形式は次のようになります。

$dig @<dns_server> +dnssec <domain_name>

出力で「広告」を探します ‘フラグ内。

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1

AD Authenticated Dataフラグの略で、リゾルバーが権限のあるネームサーバーから受け取った回答を検証した場合にのみ設定されます。

それでおしまい!すべてがうまくいけば、バインド9.8.2で基本的なDNSSECを正常にセットアップできています。

読む:DNSSECの初心者向けガイド

読む:ドメインを識別する方法はDNSSECに署名されているかどうか?


Ubuntu
  1. CentOS、RHEL、Fedora、UbuntuにRealPlayer11をインストールする

  2. CentOS、Debian、Ubuntu、RHELのOpenSSLの脆弱性を修正してください! [1.0.1e-fips]

  3. CentOS / RHEL :ASMLib のインストールと構成

  1. CentosとUbuntuでのNTPの設定

  2. CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04&Debian9にAnsibleをインストールする方法

  3. UbuntuとDebianにNode.jsをインストールする

  1. CentOS、Debian、UbuntuにIoncubeローダーをインストールする方法

  2. CentOS/RHELおよびUbuntuにVMwarePlayerをインストールする方法

  3. CentOS / RHEL 7 :NFS サーバーと NFS クライアントの構成