Appendix D: Tuning TCP/IP
Response to Attack
TCP/IP Security Settings
In
addition to the settings that are listed above, the
following keys can be altered to assist the system to deal
more effectively with an attack. It is important to note
that these recommendations by no means makes the system
impervious to attack and only focuses on tuning the TCP/IP
stack's response to an attack. The setting of these keys
does not address any of the many other components on the
system, which could be used to attack the system. As with
any change to the registry, the administrator needs to fully
understand how these changes affect the default function of
the system and whether they are appropriate in their
environment.
SynAttackProtect
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD
Valid
Range:
0, 1,
2
0 (no synattack protection)
1 (reduced
retransmission retries and delayed RCE (route cache entry)
creation if the
TcpMaxHalfOpen and TcpMaxHalfOpenRetried
settings are
satisfied.)
2 (in addition to
1 a delayed indication to Winsock is made.)
Note
When the system finds itself under attack the following
options on any socket can no longer be enabled: Scalable
windows (RFC 1323) and per adapter configured TCP parameters
(Initial RTT, window size). This is because when protection
is functioning, the route cache entry is not queried before
the SYN-ACK is sent and the Winsock options are not
available at this stage of the connection.
Default:
0 (false)
Recommendation:
2
Description:
Synattack protection involves reducing the amount of
retransmissions for the SYN-ACKS, which will reduce the time
for which resources have to remain allocated. The allocation
of route cache entry resources is delayed until a connection
is made. If synattackprotect = 2, then the connection
indication to AFD is delayed until the three-way handshake
is completed. Also, note that the actions taken by the
protection mechanism only occur if
TcpMaxHalfOpen
and TcpMaxHalfOpenRetried settings are exceeded.
TcpMaxHalfOpen
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD—number
Valid
Range:
100–0xFFFF
Default:
100 (Professional, Server), 500 (Advanced Server)
Description:
This
parameter controls the number of connections in the SYN-RCVD
state allowed before SYN-ATTACK protection begins to
operate.
If
SynAttackProtect is set to 1, ensure that this value is
lower than the AFD listen backlog on the port that you want
to protect (see backlog parameters in Appendix C for more
information).
See
the SynAttackProtect parameter for more details.
TcpMaxHalfOpenRetried
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD—number
Valid
Range:
80–0xFFFF
Default:
80 (Professional, Server), 400 (Advanced Server)
Description:
This
parameter controls the number of connections in the SYN-RCVD
state for which there has been at least one retransmission
of the SYN sent, before SYN-ATTACK attack protection begins
to operate. See the SynAttackProtect parameter for
more details.
EnablePMTUDiscovery
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD—Boolean
Valid
Range:
0, 1
(false, true)
Default:
1 (true)
Recommendation:
0
Description:
When this parameter is set to 1 (true) TCP attempts to
discover the Maximum Transmission Unit (MTU or largest
packet size) over the path to a remote host. By discovering
the Path MTU and limiting TCP segments to this size, TCP can
eliminate fragmentation at routers along the path that
connect networks with different MTUs. Fragmentation
adversely affects TCP throughput and network congestion.
Setting this parameter to 0 causes an MTU of 576 bytes to be
used for all connections that are not to hosts on the local
subnet.
NoNameReleaseOnDemand
Key:
Netbt\Parameters
Value
Type:
REG_DWORD—Boolean
Valid
Range:
0, 1
(false, true)
Default:
0 (false)
Recommendation:
1
Description:
This
parameter determines whether the computer releases its
NetBIOS name when it receives a name-release request from
the network. It was added to allow the administrator to
protect the machine against malicious name-release attacks.
EnableDeadGWDetect
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD—Boolean
Valid
Range:
0, 1
(false, true)
Default:
1 (true)
Recommendation:
0
Description:
When this parameter is set to 1, TCP is allowed to perform
dead-gateway detection. With this feature enabled, TCP may
ask IP to change to a backup gateway if a number of
connections are experiencing difficulty. Backup gateways may
be defined in the Advanced section of the TCP/IP
configuration dialog in the Network Control Panel. See the
"Dead Gateway Detection" section in this paper for details.
KeepAliveTime
Key:
Tcpip\Parameters
Value
Type:
REG_DWORD—time in milliseconds
Valid
Range:
1–0xFFFFFFFF
Default:
7,200,000 (two hours)
Recommendation:
300,000
Description:
The parameter controls how often TCP attempts to verify that
an idle connection is still intact by sending a keep-alive
packet. If the remote system is still reachable and
functioning, it acknowledges the keep-alive transmission.
Keep-alive packets are not sent by default.
This
feature may be enabled on a connection by an application.
PerformRouterDiscovery
Key:
Tcpip\Parameters\Interfaces\interface
Value
Type:
REG_DWORD
Valid
Range:
0, 1,
2
0 (disabled)
1 (enabled)
2 (enable only if
DHCP sends the router discover option)
Default:
2, DHCP-controlled but off by default.
Recommendation:
0
Description:
This
parameter controls whether Windows 2000 attempts to perform
router discovery per RFC 1256 on a per-interface basis. See
also SolicitationAddressBcast.
© 2000
Microsoft Corporation. All rights reserved.
The
information contained in this document represents the
current view of Microsoft Corporation on the issues
discussed as of the date of publication. Because Microsoft
must respond to changing market conditions, it should not be
interpreted to be a commitment on the part of Microsoft, and
Microsoft cannot guarantee the accuracy of any information
presented after the date of publication.
This
white paper is for informational purposes only. MICROSOFT
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
Microsoft, Windows, and Windows NT are either registered
trademarks or trademarks of Microsoft Corporation in the
United States and/or other countries.
Other
product and company names mentioned herein may be the
trademarks of their respective owners.
Microsoft Corporation • One Microsoft Way • Redmond, WA
98052-6399 • USA
02/00
1
Specifications and programming information are included in
the Windows NT Device Driver Kit (DDK). Some information is
also available from the Microsoft Internet site (
2 Most
NICs have the ability to be placed into a mode in which the
NIC does not perform any address filtering on frames that
appear on the media. Instead, it passes every frame upwards
that passes the cyclic redundancy check (CRC). This feature
is used by some protocol analysis software, such as
Microsoft Network Monitor.
3 The
6 bits defined by DiffServ were previously known as the TOS
bits. DiffServ makes obsolete the previous use of TOS.
Hence, the setting of TOS bits through Winsock is not
supported. All requests for IP TOS must be made through the
GQoS API unless the DisableUserTOSSetting registry
parameter (Appendix A) is modified.
4
Adding [1] to the registry parameter
TcpMaxDataRetransmissions or
TcpMaxConnectRetransmissions approximately doubles the
total retransmission time-out period. If it is
necessary to configure longer time-outs, these parameters
should be increased very gradually.
5
Instead of sending one TCP segment when starting out,
Windows NT/Windows 2000 TCP starts with two. This avoids the
need to wait for the delayed ACK timer to expire on the
first send to the target computer, which improves
performance for some applications.
6 See
the Microsoft Windows NT/Windows 2000 Resource Kit or
Microsoft Knowledge Base for Redirector registry parameters.
7
Stevens, Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, MA: Addison-Wesley Publishing
Co., 1993.
8 Both
specifications are available from the Microsoft Internet
site on
9 IP
autoconfiguration can be disabled using the
IPAutoconfigurationEnabled registry key. The subnet and
subnet mask used can be controlled using the
IPAutoconfigurationSubnet and IPAutoconfigurationMask
registry keys. These keys are described in Appendix A.
10 See
"draft-ietf-dhc-dhcp-dns-*.txt" |