Transcript adv-dns-mod3-stealth
Advanced Module 3
Stealth Configurations
DNS Stealth Configurations
Stealth (aka DMZ, Split) Definition: Public and Private Resources (IP addresses and services) Separation of Public and Private Protection of DNS Zone files
DNS - Stealth Configuration
DNS Stealth Configurations
Same Domain Name - Public and Private zone files Hidden Master Slave Only Configuration Secure Zone Transfers from Hidden Master Private Clients want to query Non-standard ports (ZT and Query) Use of BIND9's view clause NAT Gateway?
DNS - Hidden Master
DNS - Hidden Master
A Registered domain needs two or more Name Servers Resolver start (1) with Root/TLD and use referrals (delgation) Referrals (2) always go back to the Resolver Slaves (3) respond Authoritatively Zone Transfers (4) - use IP/Crypto controls with Non-standard ports Master only visible to slaves
DNS - Stealth Configuration
DNS - Internal Resolver
Public Servers (1) are slaves - only use Public zone files Master (2) uses non-standard port Zone Transfer with crypto (TSIG) Private DNS (3) has only private zone files Users need Recursive queries for normal web access Public (Recursive) Queries (4) go thru firewall/NAT
DNS - Stealth Configuration
options { ...
// Private DNS (3) recursion yes; allow-recursion {172.18/16;}; // cache access }; // required zone for recursive queries // transactions will pass through a classic firewall zone "." { type hint; file "root.servers"; }; // zone clause - master for example.com
zone "example.com" in{ type master; file “private/example.com”; ...
}; // required local host domain // localhost reverse map // reverse map for local address at example.com
// uses 192.168.254.0 for illustration
DNS - Stealth Configuration
options { ...
// Public DNS (1) recursion no; }; // zone clause - master for example.com
zone "example.com" in{ type master; file “public/example.com”; ...
}; // localhost/reverse localhost // maybe
DNS - Stealth Configuration
DNS - External Resolver
Public Servers (1) are slaves - only use Public zone files but also provides Recursive service to Private Clients Master (2) uses non-standard port Zone Transfer with crypto (TSIG) Private DNS (3) has only private zone files Users need Recursive queries for normal web access Public (Recursive) Queries (4) use a Forwarding DNS (with non-std port) to DNS (1)
DNS - Stealth Configuration
options { ...
// Private DNS (3) recursion no; }; // required zone for recursive queries // uses stealth port 2053 zone "." { type forward; forward only; forwarders {192.168.2.3 port 2053; 192.268.2.4 port 2053}; }; // zone clause - master for example.com
zone "example.com" in{ type master; file “private/example.com”; ...
}; // required local host domain // localhost reverse map // reverse map for local address at example.com
// uses 192.168.254.0 for illustration
DNS - Stealth Configuration
options { ...
// Public DNS (1) recursion yes; allow-recursion(10.0.0.3;}; // private forward DNS listen-on port 53 {192.168.2.3;}; listen-on port 2053 {192.168.2.3;}; }; // zone clause - master for example.com
zone "example.com" in{ type master; file “public/example.com”; ...
}; // normal hints zone zone "." { type hint; file "root.servers"; }; // localhost/reverse localhost // maybe
DNS - Using View Clause
A single DNS can be configured to support both Private and Public capabilities Maintains two logically separate views Clients can connect to private or public services Does not need Firewall (?) Vulnerable if filesystem compromise Uses: match-clients {ip list;); Match-destinations {ip list;); match-recursion-only {ip list;);
DNS - Bind9 View
DNS - Using View Clause
DNS Server (1) has public and Private views Hidden Master (2) Clients access Private side only for Authoritative (3) and Recursive (4) queries Private side issues Public (5) (Recursive queries) Server's Public view only answers public queries
DNS - using View Clause
options { // Public/Private DNS (1) ...
recursion no; }; view “private” { match-clients {localnets;localhost;}; recursion yes; allow-recursion {localnets;localhost;}; // zone is private zone “example.com” { type master; file “private/example.com”; ...
}; // zone files for hints, localhost, local reverse map }; view “public” { match-clients {any;}; recursion no; zone "example.com" in{ type slave; file “public/example.com”; ...
}; }; // zone files for localhost
DNS - Using View Clause
views order is significant - match-client {any;}; in the public view is an else condition Private cache is polluted with public data Single server Can be routed through firewall or not Breaking of filesystem will allow reading of private data
DNS - Admin security
Bind runs as root until it has assembled all its files - permissions can be very tight especially on included files Files: named.conf - contains sensitive information especially where private views are involved key files - always include (0600 root:wheel) zone files - only private ones log files - in shared public/private rndc - think very carefully
Quick Quiz
Should a public DNS server support recursion ?
Must the master NS be defined when you register a domain?
Name at least two statements that can be used to select view users?
Does an Authoritative Server need a hints zone clause?
Should key clauses ever defined in named.conf?