Client Interractions - Ondrej Sevecek`s Blog

advertisement
Ing. Ondřej Ševeček | GOPAS a.s. |
MCM: Directory Services | MVP: Enterprise Security |
ondrej@sevecek.com | www.sevecek.com |
CLIENT INTERACTIONS
Active Directory Troubleshooting
CLIENT INTERACTIONS
Client Applications
 Kerberos and NTLM authentication
 Secure Channel
 password changes, NTLM pass-through, Kerberos
PAC validation
 Group Policy client
 DFS client
 Certificate Autoenrollment client
Client Applications
 NPS (IAS), RRAS, TMG (ISA), RD Gateway (TS
Gateway)
 group membership, Dial-In tab
 RD Host (Terminal Server)
 Remote Control tab etc., Licensing servers
 DHCP Server
 authorization
 IIS
 account and group membership for SSL certificate
authentication
 WDS
 computer MAC addresses or GUIDs
Site Design Scenarios
Branche
Branche
Branche
Branche
Branche
Central
Branche
Branche
Branche
Branche
Site Design Scenarios
Office
Office
Office
Site Design Scenarios
Branche
Branche
Branche
Central
Branche
Branche
Branche
Network Interactions Racap
(DC Location)
SRV: Any DC List
Client
2000+
SRV: My Side DC
DNS
DNS
LDAP
UDP
My Site DC
2000+
Get My Site
Any DC
2000+
Network Interactions Recap
(2008/Vista+ DC Location)
SRV: Any DC List
Client
Vista+
SRV: My Site DC
DNS
SRV: Close Site
DNS
LDAP
UDP
Close Site
DC
2000+
My Site DC
2000+
Get My Site
Next Closest Site
Any DC
2008+
Network Interactions
(Network Logon)
Client
2000+
App Traffic
Server
2000+
In-band
TGS: Server
NTLM
Kerberos
TGT: User
SMB
D/COM
TGS: Server
Occasional PAC
Validation
NTLM
Pass-through
D/COM Dynamic
TCP
DC
2000+
DC
2000+
Connection Properties
 Bandwidth (Mbps)
 forget about this
 Latency (ms)
 round-trip-time (RTT)
 SMB, D/COM, SQL
 Packet Loss (per sec., per Mb)
 packet loss rate (PLR)
 VPN such as PPTP, SSTP, IP-HTTPS
Timeouts
 DNS



primary DNS = 1 sec.
secondary DNSs = 2 sec.
... 1 2 2 4 8 ...
 ARP

... 600 ms 1000 ms
 LDAP UDP Site Location

600 ms
 TCP



SYN = 21 sec. (3x retransmission)
PSH/ACK = 93 sec. (5x retransmission)
... 3 6 12 24 48 ...
 Kerberos (TCP, 3 attempts, KdcSendRetries)

63 sec.
Basic DC location
 Know the DNS name of the domain
 Query general DNS DC SRV records
 _ldap._tcp.dc._msdcs.idtt.local
 Ping DC
 Windows 2003-
 LDAP UDP (ping) DC
 to get the client’s site/close site
Site DC Location
 Site unaware lookup
 NSLOOKUP
 SET Q=SRV
 _ldap._tcp.dc._msdcs.idtt.local
 Site specific lookup
 NSLOOKUP
 SET Q=SRV
 _ldap._tcp.Paris._sites.dc._msdcs.idtt.local
Lab: Finding DCs Manually
 Use NSLOOKUP to query for the generic DC
list
 NSLOOKUP
 SET q=SRV
 _ldap._tcp.dc._msdcs.idtt.local
Site Example – Single Site
DC1
DC2
DC3
DC5
DC4
Client
London 10.10.x.x
Site Example – Multihomed DC
(DNS Bitmask Ordering OK)
DC1
DC2
DC3
DC5
DC4
Client
Paris
10.20.x.x
London 10.10.x.x
Site Example – Multihomed DC
(DNS Bitmask Ordering Error)
DC1
DC2
DC3
DC5
Client
DC4
Paris
10.20.x.x
London 10.10.x.x
Roma
10.30.x.x
DNS Record Priority and Weight
Site Awareness
DC4
DC6
Paris
10.20.x.x
Roma
10.30.x.x
DC1
DC2
DC3
London
10.10.x.x
Anonymous
LDAP
UDP
where I am?
DC5
Client
Berlin
10.50.x.x
General Operation
 Use DNS to find generic DC list
 Ping selected DC
 Windows 2003-
 Anonymous LDAP (UDP) to determine site
 DC defines site from the request source IP address
(NAT?)
 Use DNS to find close DC in site
 Ping or LDAP UDP to determine availability
DC Locator
 NetLogon Service
 nltest /sc_query:idtt
 no network access
 nltest /sc_verify:idtt
 tries to authenticate with the DC
 nltest /sc_reset:idtt
 always performs new DNS lookup
 nltest /dsgetsite
 anonymous query against selected DC
Lab: Check NLTEST Usage
 Try the NLTEST to query, verify and reset
secure channel from Seven2 to its London
DCs
Limit UDP Site Location to a
Central Site?
DC4
DC6
Paris
10.20.x.x
Roma
10.30.x.x
DC1
DC2
DC3
London
10.10.x.x
Anonymous
LDAP
UDP
where I am?
DC5
Client
Berlin
10.50.x.x
Limiting Generic DC List
 Limit creation of generic DC DNS records
 GPO: Computer Configuration –
Administrative Templates – System –
Netlogon – DC Locator DNS Records
 DC Locator DNS Records not Registered
 Dc Kdc
Limiting Generic DC List
(Wise?)
Branche
Branche
Branche
Branche
Branche
Central
Branche
Branche
Branche
Branche
Limiting Generic DC List
(Wise?)
Office
Office
Office
DFS Client (MUP)
 Multiple UNC provider (MUP) driver
 Determines its own DFS server referrals
 obtains the list of DFS root servers from AD using
the default DC from Netlogon
 SYSVOL may be accessed from a different DC
 DFSUTIL /PKTINFO
 Windows Server 2003/Windows XP
 DFSUTIL CACHE REFERRAL
 Windows Server 2008/Windows Vista
DFS Context Menu
Site Example – Empty Site
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
DC4
DC6
DC5
Berlin
10.50.x.x
Roma
10.30.x.x
Client
DC7
Cyprus
10.40.x.x
Site Example – Empty Site
DC4
DC3
DC1
DC2
DC1
DC3
DC2
London
10.10.x.x
DC5
Paris
10.20.x.x
Client
DC4
DC6
DC5
Berlin
10.50.x.x
Roma
10.30.x.x
DC7
Cyprus
10.40.x.x
Site Example – Empty Site
DC3
DC1
DC2
London
10.10.x.x
DC1
DC3
cost 50
DC2
Paris
10.20.x.x
Client
cost 100
DC4
DC6
DC5
Berlin
10.50.x.x
Roma
10.30.x.x
DC7
Cyprus
10.40.x.x
Automatic Site Coverage
 Each DC registers itself for its neighboring
empty sites
 HKLM\System\CurrentControlSet\Services\N
etlogon
 AutoSiteCoverage = DWORD = 1/0
 GPO: Sites Covered by the DC Locator DNS
SRV Records
Active Directory Troubleshooting
MISPLACED OR CONFUSED
CLIENTS
Site Example – Out of Site
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
Client
DC6
10.100.0.7
Roma
10.30.x.x
DC7
Cyprus
10.40.x.x
Berlin
10.50.x.x
Super-netting or Sub-netting
Out-of-site Clients
Out-of-site Clients
Limiting Generic DC List
DC1
DC2
DC3
Paris
10.20.x.x
London
10.10.x.x
Client
10.100.0.7
Roma
10.30.x.x
Cyprus
10.40.x.x
Berlin
10.50.x.x
DC Stickiness
 When one close selected, client sticks to it
 even when moved into a different site
 must reset secure channel
 Force rediscovery interval GPO
 Vista+
 hotfix for Windows XP
 also registry value ForceRediscoveryInterval
Site Example – Until Restart/24
hours
DC1
DC3
DC2
Client
Client
Client
Client
Client
Client
Client
Client
Client
London
10.10.x.x
Site Example – Moving Client
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
DC4
DC6
DC5
Berlin
10.50.x.x
Roma
10.30.x.x
Client
DC7
previously in
Paris
Cyprus
10.40.x.x
Lab: Moving the Client
 On Seven2 verify the current DC in use
 NLTEST /sc_query:idtt
 Move the client into Paris and update group
policy
 GPUPDATE
 Verify the current DC in use again
 the client should use the same DC still although in
remote site (stick)
 Reset the secure channel several times and
determine the result
 NLTEST /sc_reset:idtt
Active Directory Troubleshooting
CLIENT FAILOVER
Site Example – Failed DC
DC4
DC6
Paris
10.20.x.x
Roma
10.30.x.x
DC1
DC2
DC3
London
10.10.x.x
DC7
DC5
Client
Cyprus
10.40.x.x
Berlin
10.50.x.x
Lab: Client Failover
 Move the client into Cyprus
 Reset the secure channel and verify it has
been connected to DC5
 Unplug DC5 from network
 Update group policy
 GPUPDATE
 Verify the resulting DC in use
 NLTEST /sc_query:idtt
Non-close Site DC
 Close site
 client’s site
 next closest site if enabled
 If there is not DC available in the close site,
rediscovery every 15 minutes
 HKLM\System\CurrentControlSet\Services\Netlog
on\Parameters
 CloseSiteTimeout = REG_DWORD = x seconds
Site Example – Next Close Site
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
DC6
Berlin
10.50.x.x
Roma
10.30.x.x
DC7
Client
Cyprus
10.40.x.x
Site Example – Close Site
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
cost 50
DC6
Client
Berlin
10.50.x.x
Roma
10.30.x.x
cost 100
DC7
Cyprus
10.40.x.x
Site Example – Close Site
DC1
DC2
DC4
DC3
DC5
Paris
10.20.x.x
London
10.10.x.x
cost 100
DC6
Client
Berlin
10.50.x.x
Roma
10.30.x.x
cost 50
DC7
Cyprus
10.40.x.x
Try Next Closest Site
 First get any DC name from DNS
 Second query the DC for clients site name
 returns the clients site
 plus the closest site (determined by the DC)
 Then query DNS for DCs in its current site and
then tries to use the DCs
 If none responds, the client queries DNS for
its next closest site and tries to use the found
DCs
Try Next Closest Site
 Does not consider RODC sites by default
 Can be change in registry
 NextClosestSiteFilter
 Windows 2003- cannot return the next closest
site information
 problem if the hit “any DC” is Windows 2003 it is then going to be used regardless of its site
Lab: Next Closest Site
 Enable Try next closest site in a GPO
 Have DC5 unplugged from network
 Update group policy
 Check the resulting DC in use
 NLTEST /sc_query:idtt
Client Rules Recap
 Windows 2003 In current site
 In any site
 Windows Vista+ with Next closest site
 In current site
 In the closest site
 In any site
 If the client is out of any site, find any dc
 consider creating subnets for VPNs etc.
General Best Practice
 Use only AD DNS servers on clients
 Do not use multi-homed DCs
 Define all IP ranges in AD
 may use super-netting if necessary
 Limit the generic DC list
 site UDP location, out-of-site clients, DC failure
 may use static GPO Site assignment
 Force rediscovery
 Try next closest site
Active Directory Troubleshooting
RODC
Read/only DC
 Physically insecure locations
 Only specified password hashes
 Read/only database
 other DCs are not willing to replicate back from
the RODC
 Local Administrator
 Managed By tab in the DC properties
RODC scenario
DC1
DC2
DC3
2003
2003
2008
GC
London
10.10.x.x
SRV
DC5
SRV
CL1
2008
Cyprus
10.40.x.x
Requirements
 Forest functional level 2003
 Domain functional level 2003
 Global catalogue 2003+
 understands confidential attributes
 At least one writable 2008+ DC
RODC and Windows 2003
 Windows 2003 does
not consider RODC
 Do not construct
replication
connections
RODC and Windows 2003
 Disable Auto Site Coverage
 HKLM\SYSTEM\CurrentControlSet\Services\Netlo
gon\Parameters
 AutoSiteCoverage = REG_DWORD = 0
 or install RODC compatibility pack
 Windows 2003, XP (11 issues)
 KB 944043
 Windows 2003, XP
DNS locator records
Password caching
 Passwords are only cached
 once the user logs on using writable DC first time
 can be prepopulated
 If the login fails on RODC, the request is
forwarded to another writable DC
 if offline, password expiration is ignored
Password caching/forwarding


DC1
DC2
DC3
2003
2003
2008
GC
not cached yet
not cached yet after
recent password change
 wrong password
 expired password
 account locked
London
10.10.x.x
SRV
DC5
SRV
CL1
2008
Cyprus
10.40.x.x
Write referrals
DC1
DC2
DC3
2003
2003
2008
GC
 try update on RODC
 referral returned
 try update on the
referred writable DC
directly
London
10.10.x.x
SRV
DC5
SRV
CL1
2008
Cyprus
10.40.x.x
Write Referral Problems
 BitLocker
 SP1 for Windows 2008/Vista
 Managed Service Accounts
 SP1 for Windows 2008 R2/Windows 7
Account lockout
 Accounts locked locally
 not replicated
 But the failure attempt is also reattempted
on a writable DC
 so this then replicates
Expired passwords
 pwdLastSet older than allowed by policy
 Logon attempt fails completely
 Password must be changed out-of-band and
logon then attempted again
Expired password
pwdLastSet
before 3 months
logon
error: expired
pwdLastSet
password
change
actual
logon
DC
ok
CL1
Discarding RODC
RODC DMZ Scenario
 Only RODC has internal domain access
 Cannot join domain normally
 use a join script (+ RODC compatibility pack)
 Cannot change machine passwords
 Cannot determine their site from the "any DC
list"
 HKLM\SYSTEM\CCS\Services\Netlogon\Parameters
SiteName = REG_SZ
 Cannot update AD account
 operating system
 service principal names
Active Directory Troubleshooting
DNS INTEGRATION
DNS Integration
 Clients find DCs by domain/site name
 DCs find replication partners according to
their GUID
 Netlogon de/registers locator records
 DNS stores its data in
 domain partition
 DomainDnsZones application partition
 ForestDnsZones application partition
Netlogon de/registration
 Netlogon de/registers its own records at
startup and deregisters them at shutdown
 requires DNS registration enabled on at least one
network adapter
 does not require DNS/DHCP Client service
 %windir%\System32\Config\netlogon.dns
 It does not touch others’ records
 Autosite coverage
 turned on by default
Netlogon de/registration
 Restarting Netlogon
 NLTEST /DSREGDNS
 force reregistration
 NLTEST /DSQUERYDNS
 query last status
 does not require DNS/DHCP Client service
and does not react on /REGISTERDNS
AD Integrated Zones
 Offer Secure Dynamic Update
 Timestamping
 trimmed to whole hour
 Aging and scavenging
 records deleted by default between 14-21 days of
their age
DNS Application Partitions
 Domain partition
 CN=MicrosoftDNS,CN=System,DC=...
 DomainDnsZones
 replicated to all DNS Server which are also DCs for
the domain
 ForestDnsZones
 replicated to all DNS Server which are also DCs for
the forest
Secure Dynamic Update
 Client side feature
 DHCP Client on Windows 2003 DNS Client on Windows Vista+
 IPCONFIG /REGISTERDNS
 DNS Server must be on DC to authenticate
clients with Kerberos
 All Authenticated Users
 can create new records
 When a record is created, only the
creator/owner can modify/update it
Secure Dynamic Update
 Updates done regularly by clients
 once a day by default by DNS/DHCP Client
 once a day by Netlogon
 once a day by Cluster Service
 Default TTL is 20 minutes
 Disable DHCP dynamic updates
 insecure!
Dynamic Update
Primary DNS
3
Update
Secondary DNS
1
Secondary DNS
Client DNS
SOA
Secondary DNS
2
Adjust A/PTR Record TTL
Dynamic Update and
Replication
DNS
DNS
0 sec.
AD
0-3 min.
15-21 sec.
schedule
AD
Dynamic Update and
Replication
Speed up the refresh
DHCP and dynamic update
 DHCP acts only on behalf of its clients
 client must provide its name (anonymously)
 Domain member computers since Windows
2000 do register themselves
 DHCP registers only
 workgroup computers, mobile phones
 printers, scanners, network devices, crap…
 Insecure, chaotic, unnecessary, corrupting
Disabling DHCP dynamic update
Dynamic DNS Update on RODC
 Each writable DC returns itself as a primary
DNS
 RODC returns either (random) writable DC as
the primary DNS
Dynamic DNS Update on RODC
Client
2
DNS
Upd
R/O
DNS
0 sec.
AD
RODC
1
SOA
Dynamic DNS Update on RODC
DsRemoteReplicationDelay
default 30 sec.
R/O
DNS
DNS
0 sec.
replicateSingleObject
AD
0 sec.
0-3 min.
RODC
Client
DsRemoteReplicationDelay
 Determines how long RODC's DNS server
waits until it requests replication of the single
object
 Default = 30 sec.
 Minimum = 5 sec.
 Do not forget the DsPollingInterval
Time stamping/Aging
 Record Created
 timestamp trimmed to whole hour
 No-refresh period starts
 by default 7 days
 timestamp does not change if the record does not
change
 Refresh period follows
 by default next 7 days
 timestamp gets updated at the first update
Scavenging
 Server wide configuration
 Should be done by only one DNS Server as
best practice
 By default ocurres only once per 7 days
DNS Aging and Scavenging
 per-zone setting
 implemented by all
DNS servers
 timestamp updates
only during the refresh
interval
 limits replication traffic
DNS Aging and Scavenging
 per-server setting
 should be done only by
one of the DNS servers
DNS Aging and Scavenging
DnsTombstoned = TRUE
 Scavenged records remain in AD yet for
another time DsTombStoneInterval before
they are deleted from AD
 default 7 days
 checked and potentially deleted everyday at 2:00
 Aimed to decrease replication traffic and limit
DNT/USN exhaustion
DNS Best Practice
DC1
DC2
AD
AD
DNS
DNS
DNS Waiting for AD
DNS Best-Practice Reasons
 Faster boot time without errors and timeouts
 Deregistration at shutdown is recorded in live
DNS Server
 would have problems replicate if sent into
shutting-down DC
Client DNS balancing
 Clients do not balance DNS servers
 queries/updates
 use the first one always if possible
 DHCP server does not use round robin
 Configuration must be done “manually”
 manual on servers
 more DHCP scopes for clients
Client DNS non-balancing
 Always alternate
DNS server
IP addresses
Client DNS non-balancing
Client1
DNS1
DNS1
DNS2
DNS2
Client2
Client3
DNS1
DNS1
DNS2
DNS2
DNS Client Settings
 HKLM\System\CurrentControlSet\Services\Tc
pip\Parameters
 Timetouts
 DNSQueryTimeouts
 Disjoint namespace on multihomed machines
 DisjointNameSpace
 PrioritizeRecordData
 GPO – DNS Suffix appending on Vista+
DNS Server UDP Pool
 After applying KB 953230, DNS Server
reserves 2500 UDP ports
 HKLM\System\CurrentControlSet\Services\D
NS\Parameters
 SocketPoolSize = DWORD = 2500
 DNSCMD /Config /SocketPoolSize 2500
DNS Cache Pollution


rogue attacker's DNS server: idtt.com, 1.2.3.4
server: idtt.com authoritative DNS server



question: www.idtt.com, type A
answer: no records
authority answer:
 idtt.com SOA
 idtt.com NS a.gtld-servers.net
 a.gtld-servers.net A 1.2.3.4

server: idtt.com authoritative DNS server



question: www.idtt.com, type A
answer: no records
authority answer:
 microsoft.com NS ns.idtt.com
 ns.idtt.com A 1.2.3.4

Enabled by default since 2000 SP3

SecureResponses
DNS Cache Locking
 Further limits cache poisoning as already
improved by the UDP pool
 Records present in the cache cannot be
updated before their TTL expires
 prevents cache poisoning in some scenarios
 frequently visited sites are already in the cache
 Windows 2008 R2
 enabled by default - 100%
 CacheLockingPercent = DWORD = 0-100
Performance Considerations
 MaxCacheTtl
 maximum Ttl limit on cached RRs
 by default 1 day maximum
 MaxNegativeCacheTtl
 by default 15 minutes
General Best Practice
 More than 2 DNS servers are usually
unnecessary for a site
 Enable DNS Aging and Scavenging
 may decrease DsPollingInterval
 may shorten the client update refresh interval
 Alter clients’ DNS settings to rotate the DNS
server addresses
 Disable DHCP dynamic update
Download