Jak wzmocnić stos protokołu TCP/IP w systemie Windows Server 2003 na wypadek ataków DoS?
W poniższym zestawieniu opisano wartości rejestru związane z protokołem TCP/IP, których skonfigurowanie pozwala wzmocnić stos protokołu TCP/IP na komputerach połączonych bezpośrednio z Internetem. Wszystkie te wartości ustawia się w następującym kluczu rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
- Nazwa wartości:
SynAttackProtect
Klucz: Tcpip\Parameters
Typ wartości: REG_DWORD
Zakres prawidłowych wartości: 0,1
Domyślna wartość: 0
Poniżej znajdują się parametry, których można używać z tą wartością rejestru:
- 0 (wartość domyślna): Ustawienie parametru
SynAttackProtect na 0 zapewnia zwykłą ochronę przed atakami typu SYN.
- 1: Ustawienie parametru
SynAttackProtect na 1 zapewnia lepszą ochronę przed atakami typu SYN. Parametr ten powoduje, że protokół TCP dopasowuje retransmisję pakietów SYN-ACK. Jeśli parametr SynAttackProtect ma wartość 1, to w przypadku rozpoznania ataku SYN obowiązują krótsze limity czasu odpowiedzi na żądania połączeń. W celu rozpoznania ataku system Windows wykorzystuje następujące wartości:
TcpMaxPortsExhausted
TCPMaxHalfOpen
TCPMaxHalfOpenRetried
- Nazwa wartości:
EnableDeadGWDetect
Klucz: Tcpip\Parameters
Typ wartości: REG_DWORD
Zakres prawidłowych wartości: 0, 1 (fałsz, prawda)
Domyślna wartość: 1 (prawda)
Poniżej zestawiono parametry, których można używać z tą wartością rejestru:
- 1: Ustawienie parametru
EnableDeadGWDetect na 1 powoduje, że protokół TCP zezwala na wykrywanie bram nieaktywnych. Gdy wykrywanie bram nieaktywnych jest włączone, a w przypadku wielu połączeń występują trudności, protokół TCP może zwrócić się do protokołu internetowego (IP) o zmianę bramy zapasowej. Bramy zapasowe można zdefiniować w sekcji Zaawansowane okna dialogowego konfiguracji protokołu TCP/IP w aplecie Sieć w Panelu sterowania.
- 0: Zaleca się ustawienie parametru
EnableDeadGWDetect na 0. Jeśli parametr ten nie będzie miał wartości 0, atak może zmusić serwer do przełączenia bram, a w szczególności do uaktywnienia bramy niepożądanej.
- Nazwa wartości:
EnablePMTUDiscovery
Klucz: Tcpip\Parameters
Typ wartości: REG_DWORD
Zakres prawidłowych wartości: 0, 1 (fałsz, prawda)
Domyślna wartość: 1 (prawda)
Poniżej zestawiono parametry, których można używać z tą wartością rejestru:
- 1: Ustawienie parametru
EnablePMTUDiscovery na 1 powoduje, że protokół TCP próbuje wykryć na ścieżce do hosta zdalnego maksymalną jednostkę transmisji (MTU) albo największy rozmiar pakietu. Wykrywając jednostkę MTU na ścieżce i ograniczając do jej wielkości rozmiary własnych segmentów, protokół TCP może wyeliminować fragmentację na routerach wzdłuż ścieżki łączącej sieci o różnych jednostkach MTU. Fragmentacja ma negatywny wpływ na przepływność protokołu TCP.
- 0: Zaleca się ustawienie parametru
EnablePMTUDiscovery na 0. W takim wypadku dla wszystkich połączeń, które nie są nawiązywane przez hosty w lokalnej podsieci jest używana jednostka MTU o wielkości 576 bajtów. Jeśli zostanie wybrana inna wartość niż 0, atakujący będzie mógł posłużyć się bardzo małą wartością jednostki MTU i przepełnić stos.
- Nazwa wartości:
KeepAliveTime
Klucz: Tcpip\Parameters
Typ wartości: REG_DWORD - czas w milisekundach
Zakres prawidłowych wartości: 1 - 0xFFFFFFFF
Domyślna wartość: 7 200 000 (dwie godziny)
Parametr ten określa, jak często protokół TCP usiłuje sprawdzić, czy bezczynne połączenie jest wciąż aktywne, wysyłając pakiet utrzymania aktywności. Jeśli komputer zdalny jest wciąż osiągalny, potwierdza pakiet utrzymania aktywności. Pakiety utrzymania aktywności nie są wysyłane domyślnie. Ustawieniem zalecanym jest 300 000 (5 minut).
- Nazwa wartości:
NoNameReleaseOnDemand
Klucz: Netbt\Parameters
Typ wartości: REG_DWORD
Zakres prawidłowych wartości: 0, 1 (fałsz, prawda)
Domyślna wartość: 0 (fałsz)
Parametr ten wprowadzono po to, aby umożliwić administratorowi ochronę komputera przed złośliwymi atakami polegającymi na wysyłaniu żądań zwolnienia nazw. Zaleca się ustawienie parametru NoNameReleaseOnDemand na 1.