{"id":3169,"date":"2021-08-05T16:16:32","date_gmt":"2021-08-05T21:16:32","guid":{"rendered":"https:\/\/microsoftgeek.com\/?p=3169"},"modified":"2021-08-05T16:16:32","modified_gmt":"2021-08-05T21:16:32","slug":"step-by-step-implementing-dns-security-in-windows-server-2016","status":"publish","type":"post","link":"https:\/\/microsoftgeek.com\/?p=3169","title":{"rendered":"Step by Step Implementing DNS Security in Windows Server 2016"},"content":{"rendered":"\n<p>Since&nbsp;DNS is a critical network service, as a Server Administrator you&nbsp;must protect it as much as possible.<\/p>\n\n\n\n<p>A number of&nbsp;options are available for protecting the DNS&nbsp;server, including :<br><strong>\u2022 DNS cache locking<\/strong><br><strong>\u2022 DNS socket pool<\/strong><br><strong>\u2022 DNSSEC<\/strong><\/p>\n\n\n\n<p>Before we start&nbsp;the step by step to implement the DNS Security, lets go through a theory behind this technology.<\/p>\n\n\n\n<p><strong>DNS Cache Locking<\/strong><\/p>\n\n\n\n<p>Cache locking is a Windows Server 2016 security&nbsp;feature that allows you to control when&nbsp;information in the DNS cache can be overwritten.&nbsp;When a recursive DNS server responds to a query, it caches the results so that it can respond quickly if it&nbsp;receives another query requesting the same information. The period of time the DNS server keeps&nbsp;information in its cache is determined by the Time to Live (TTL) value for a resource record.<\/p>\n\n\n\n<p><strong>DNS Socket Pool<\/strong><\/p>\n\n\n\n<p>The DNS socket pool enables a DNS server to use source port randomization when it issues DNS queries.&nbsp;When the DNS service starts, the server chooses a source port from a pool of sockets that are available for&nbsp;issuing queries. Instead of using a predicable source port, the DNS server uses a random port number that&nbsp;it selects from the DNS socket pool. The DNS socket pool makes cache-tampering attacks more difficult&nbsp;because a malicious user must correctly guess both the source port of a DNS query and a random&nbsp;transaction ID to successfully run the attack. The DNS socket pool is enabled by default in Windows Server&nbsp;2016<\/p>\n\n\n\n<p><strong>DNSSEC<\/strong><\/p>\n\n\n\n<p>DNSSEC enables a DNS zone and all records in the zone to be signed cryptographically so that client&nbsp;computers can validate the DNS response. DNS is often subject to various attacks, such as spoofing and&nbsp;cache-tampering. DNSSEC helps protect against these threats and provides a more secure DNS&nbsp;infrastructure.<\/p>\n\n\n\n<p><strong>So now,&nbsp;lets go through a simple step how you as Server Administrator can implement DNS Security.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>01 \u2013 Step to configure&nbsp;DNSSEC<\/strong><\/h3>\n\n\n\n<p>1 \u2013 Open&nbsp;<strong>Server Manager,<\/strong>&nbsp;&nbsp;click&nbsp;<strong>Tools<\/strong>&nbsp;and open&nbsp;<strong>DNS Manager.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/06\/216.png?w=1108\" alt=\"2\" class=\"wp-image-1037\"\/><\/figure>\n\n\n\n<p>2 \u2013 In the&nbsp;<strong>DNS Manager,<\/strong>&nbsp;<strong>browse to your&nbsp;Domain name<\/strong>, then right click d<strong>omain name<\/strong>, click&nbsp;<strong>DNSSEC<\/strong>&nbsp;and then click&nbsp;<strong>Sign the Zone.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/16.png?w=1108\" alt=\"1.png\" class=\"wp-image-2573\"\/><\/figure>\n\n\n\n<p>2 \u2013 In the&nbsp;<strong>Zone Signing Wizard<\/strong>&nbsp;interface, click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/22.png?w=1108\" alt=\"2.png\" class=\"wp-image-2575\"\/><\/figure>\n\n\n\n<p>3 \u2013 On the Signing options interface, click<strong>&nbsp;Customize zone signing parameters<\/strong>, and then click Next.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/36.png?w=1108\" alt=\"3.png\" class=\"wp-image-2576\"\/><\/figure>\n\n\n\n<p>4 \u2013 On the Key Master interface, ensure that \u201c<strong>The DNS server CLOUD-SERVER is selected as&nbsp;the Key Master<\/strong>\u201c, and then click Next.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/410.png?w=1108\" alt=\"4.png\" class=\"wp-image-2577\"\/><\/figure>\n\n\n\n<p>5 \u2013 On the&nbsp;<strong>Key Signing Key (KSK) interface,<\/strong>&nbsp;click Next.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/53.png?w=1108\" alt=\"5.png\" class=\"wp-image-2579\"\/><\/figure>\n\n\n\n<p>6 \u2013 On the&nbsp;<strong>Key Signing Key (KSK) interface<\/strong>, click&nbsp;<strong>Add.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/62.png?w=1108\" alt=\"6.png\" class=\"wp-image-2580\"\/><\/figure>\n\n\n\n<p>7 \u2013 On the&nbsp;<strong>New Key Signing Key (KSK) interface,<\/strong>&nbsp;click<strong>&nbsp;OK.<\/strong><\/p>\n\n\n\n<p>~*~ please spend some time to go through&nbsp;about key properties on the&nbsp;New Key Signing Key (KSK) interface.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/102.png?w=1108\" alt=\"10.png\" class=\"wp-image-2584\"\/><\/figure>\n\n\n\n<p>8 \u2013 On the&nbsp;<strong>Key Signing Key (KSK) interface,<\/strong>&nbsp;click Next.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/112.png?w=1108\" alt=\"11.png\" class=\"wp-image-2585\"\/><\/figure>\n\n\n\n<p>9 \u2013 On the&nbsp;<strong>Zone Signing Key (ZSK) interface,<\/strong>&nbsp;click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/92.png?w=1108\" alt=\"9.png\" class=\"wp-image-2587\"\/><\/figure>\n\n\n\n<p>10 \u2013 On the&nbsp;<strong>Zone Signing Key (ZSK) interface,<\/strong>&nbsp;click&nbsp;<strong>Add.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/103.png?w=1108\" alt=\"10.png\" class=\"wp-image-2588\"\/><\/figure>\n\n\n\n<p>11 \u2013 On the&nbsp;<strong>New Zone Signing Key (ZSK) interface,<\/strong>&nbsp;click&nbsp;<strong>OK.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/113.png?w=1108\" alt=\"11.png\" class=\"wp-image-2589\"\/><\/figure>\n\n\n\n<p>12 \u2013 On the&nbsp;<strong>Zone Signing Key (ZSK) interface,<\/strong>&nbsp;click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/114.png?w=1108\" alt=\"11.png\" class=\"wp-image-2590\"\/><\/figure>\n\n\n\n<p>13 \u2013&nbsp;On the&nbsp;<strong>Next Secure (NSEC) interface,<\/strong>&nbsp;click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<p>~*~ NSEC is&nbsp;when the DNS response has no data to provide to the client, this record&nbsp;authenticates that the host does not exist.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/122.png?w=1108\" alt=\"12.png\" class=\"wp-image-2591\"\/><\/figure>\n\n\n\n<p>14 \u2013 On the&nbsp;<strong>Trust Anchors<\/strong>&nbsp;(TAs) interface,<strong>&nbsp;check the Enable the distribution of trust anchors for this&nbsp;zone check box,<\/strong>&nbsp;and then click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<p>~*~ A trust anchor is an authoritative entity that is represented by a public key. The TrustAnchors zone stores&nbsp;preconfigured public keys that are associated with a specific zone.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/141.png?w=1108\" alt=\"14.png\" class=\"wp-image-2592\"\/><\/figure>\n\n\n\n<p>15 \u2013 On the&nbsp;<strong>Signing and Polling Parameters interface,<\/strong>&nbsp;click&nbsp;<strong>Next.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/151.png?w=1108\" alt=\"15.png\" class=\"wp-image-2594\"\/><\/figure>\n\n\n\n<p>16 \u2013 On the&nbsp;<strong>DNS Security Extensions (DNSSEC) interface,<\/strong>&nbsp;click<strong>&nbsp;Next,<\/strong>&nbsp;and then<strong>&nbsp;click Finish.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/161.png?w=1108\" alt=\"16.png\" class=\"wp-image-2597\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/171.png?w=1108\" alt=\"17.png\" class=\"wp-image-2598\"\/><\/figure>\n\n\n\n<p>17 \u2013 In the DNS console, expand&nbsp;<strong>Trust Points,<\/strong>&nbsp;expand ae, and then click your domain name.<\/p>\n\n\n\n<p>Ensure that the&nbsp;<strong>DNSKEY resource records<\/strong>&nbsp;display, and that their status is valid.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/181.png?w=1108\" alt=\"18.png\" class=\"wp-image-2600\"\/><\/figure>\n\n\n\n<p>18 \u2013 Open&nbsp;<strong>Server Manager,<\/strong>&nbsp;&nbsp;click&nbsp;<strong>Tools<\/strong>&nbsp;and open&nbsp;<strong>Group Policy Management.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/191.png?w=1108\" alt=\"19.png\" class=\"wp-image-2607\"\/><\/figure>\n\n\n\n<p>19&nbsp;\u2013 Next, open&nbsp;<strong>Group Policy Management,<\/strong>&nbsp;expand Forest:&nbsp;<strong>Windows.ae,<\/strong>&nbsp;expand Domains, expand<strong>&nbsp;Windows.ae,<\/strong>&nbsp;right-click&nbsp;<strong>Default Domain&nbsp;Policy,<\/strong>&nbsp;and then<strong>&nbsp;click Edit<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/201.png?w=1108\" alt=\"20.png\" class=\"wp-image-2609\"\/><\/figure>\n\n\n\n<p>20 \u2013 In the&nbsp;<strong>Group Policy Management Editor interface,<\/strong>&nbsp;under&nbsp;<strong>Computer Configuration,<\/strong>&nbsp;expand&nbsp;<strong>Policies,<\/strong>&nbsp;expand&nbsp;<strong>Windows Settings,<\/strong>&nbsp;and then click&nbsp;<strong>Name Resolution Policy.<\/strong><\/p>\n\n\n\n<p>~*~ In the right pane, under Create Rules, in the<strong>&nbsp;Suffix box<\/strong>, type&nbsp;<strong>Windows.ae<\/strong>&nbsp;to apply the rule to the&nbsp;suffix of the namespace.<\/p>\n\n\n\n<p>~*~ Select both the&nbsp;<strong>Enable DNSSEC<\/strong>&nbsp;<strong>in this rule<\/strong>&nbsp;check box and the<strong>&nbsp;Require DNS clients<\/strong>&nbsp;to check that&nbsp;the name and address data has been validated by the DNS server check box, and then click&nbsp;Create.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/221.png?w=1108\" alt=\"22.png\" class=\"wp-image-2614\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>02 \u2013 Configure the DNS Socket Pool<\/strong><\/h3>\n\n\n\n<p>1 \u2013 In domain Server, open\u00a0<strong>Windows PowerShell<\/strong>\u00a0and type :\u00a0<strong>Get-DNSServer<\/strong><\/p>\n\n\n\n<p>~*~ This command displays the current size of the DNS socket pool (on the fourth line in the&nbsp;ServerSetting section). Note that the current size is 2,500.<\/p>\n\n\n\n<p>~*~ Please take note that&nbsp;the default DNS socket pool size is 2,500.&nbsp;When you configure the DNS socket pool, you can choose a&nbsp;size value from 0 to 10,000. The larger the value, the greater the protection you will have against DNS&nbsp;spoofing attacks.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/231.png?w=1108\" alt=\"23.png\" class=\"wp-image-2620\"\/><\/figure>\n\n\n\n<p>2 \u2013 Now lets&nbsp;change the&nbsp;<strong>socket pool size to 3,000<\/strong>.<\/p>\n\n\n\n<p><strong>type :<\/strong>&nbsp;<strong>dnscmd \/config \/socketpoolsize 3000<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/241.png?w=1108\" alt=\"24.png\" class=\"wp-image-2623\"\/><\/figure>\n\n\n\n<p>3 \u2013&nbsp;<strong>Restart your&nbsp;DNS Server<\/strong>&nbsp;for the changes to take effect.<\/p>\n\n\n\n<p>~*~ confirm that the&nbsp;<strong>new socket pool size now is 3000<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/252.png?w=1108\" alt=\"25.png\" class=\"wp-image-2626\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>04 \u2013 Configure the&nbsp;DNS Cache Locking<\/strong><\/h3>\n\n\n\n<p>1 \u2013 In\u00a0Windows PowerShell, type\u00a0<strong>Get-Dnsserver<\/strong><\/p>\n\n\n\n<p>~*~ This command will displays the current percentage value of the DNS cache lock.<\/p>\n\n\n\n<p>~*~ Note that the current value is 100&nbsp;percent.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/253.png?w=1108\" alt=\"25.png\" class=\"wp-image-2630\"\/><\/figure>\n\n\n\n<p>2 \u2013 type&nbsp;<strong>Set-DnsServerCache \u2013LockingPercent 70<\/strong><\/p>\n\n\n\n<p>~*~ This changes the cache lock value to 70 percent<\/p>\n\n\n\n<p><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=1108\" alt=\"26.png\" srcset=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=1108 1108w, https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=150 150w, https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=300 300w, https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=768 768w, https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png?w=1024 1024w, https:\/\/newhelptech.files.wordpress.com\/2017\/07\/261.png 1366w\">~*~ Please take note that&nbsp;you configure cache locking as a percentage value.<\/p>\n\n\n\n<p>3 \u2013 Looking your DNS Manager Verify.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/newhelptech.files.wordpress.com\/2017\/07\/271.png?w=1108\" alt=\"27.png\" class=\"wp-image-2639\"\/><\/figure>\n\n\n\n<p><strong>This is all, enjoy!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since&nbsp;DNS is a critical network service, as a Server Administrator you&nbsp;must protect it as much as possible. A number of&nbsp;options are available for protecting the DNS&nbsp;server, including :\u2022 DNS cache locking\u2022 DNS socket pool\u2022 DNSSEC Before we start&nbsp;the step by step to implement the DNS Security, lets go through a theory behind this technology. DNS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,63],"tags":[],"class_list":["post-3169","post","type-post","status-publish","format-standard","hentry","category-domain-name-system-dns","category-server-2016-2016"],"_links":{"self":[{"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/posts\/3169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3169"}],"version-history":[{"count":1,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/posts\/3169\/revisions"}],"predecessor-version":[{"id":3170,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=\/wp\/v2\/posts\/3169\/revisions\/3170"}],"wp:attachment":[{"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/microsoftgeek.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}