Czym jest DTP

Wprowadzenie do protokołu DTP

Dynamic Trunking Protocol określa się mianem protokołu, który służy do automatycznego nawiązywania połączeń typu trunk – tego typu łącze umożliwia kierowanie ruchem z kilku VLAN-ów przez jedne fizyczne połączenie. Protokół DTP jest zastrzeżony przez producenta CISCO.

Możliwości DTP

Główna funkcja protokołu DTP – nawiązywanie połączenia typu trunk pomiędzy dwoma urządzeniami (np. przełączniki). Procedura działania oparta jest na pozwoleniu określenia typu hermetyzacji (najczęściej IEEE 802.1Q), a także z aktywnym udziałem do nawiązania łącza typu trunk między dwoma urządzeniami.

Słabe punkty DTP

Protokół Dynamic Trunking Protocol będzie mógł podszyć się pod switche, a z tej sposobności wykonać ataki na VTP oraz 802.1Q. Dodatkowo jest możliwe także podsłuchanie danych, które są przesyłane przez VLAN.

Słaby punkt dotyczy także braku uwierzytelniania, a także aktywacji domyślnej na każdym porcie na urządzeniu CISCO. Z tego powodu każdy przełącznik ma możliwość uczestnictwa w negocjacji łącza trunk przy użyciu pakietu DTP.

Na jaki atak narażony jest DTP? Jak temu zadziałać?

Odbywająca się negocjacja łącza przy wykorzystaniu pakietów DTP daje możliwość podszycia się pod urządzenie, które nie istnieje przy użyciu łącza trunk. Dzięki temu uda się uzyskać dostęp do tych danych, które są przesyłane w trunku – następnie przejąć protokoły użyte w hermetyzacji tych danych.

W celu poradzenia sobie z tym możliwym atakiem wskazane jest wyłączenie automatycznego nawiązania łącza typu trunk komendą:

switchport mode access

Konsekwencja powyższej komendy dotyczy tego iż administrator będzie manualnie zakładał każde łącze.

Stany DTP    

  1.      Dynamiczny tryb auto (ang. Dynamic auto) – jest pasywny, a umożliwia stworzenie stanu trunk w momencie braku negocjacji przez urządzenie
  2. Dynamiczny pożądany (ang. Dynamic desirable) – jest trybem aktywnym
  1.      Trunk – na stałe ustalenie interfejsu w trunk
  1.      Dostęp (ang. Access) – protokół DTP określa się jako stan wyłączony

Topologia wykorzystana do konfiguracji DTP

Opis topologii:

Trzy urządzenia typu switch:

  •      SW1
  •      SW2
  •      SW3

Cele do zrealizowania    

  •      Sprawdzenie domyślnego stanu łącz na SW1
  •      Ustawienie dwóch trybów na przełączniku – dynamic desirable i dynamic auto                                                                                                                     
  •      Wyłączenie DTP na wszystkich przełącznikach

Realizacja    

SW1:

Switch>en
Switch#show int g0/1 switchport 
 Switch#show int g0/2 switchport 
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface g0/1
Switch(config-if)#switchport mode dynamic auto
Switch(config-if)#exit
Switch(config)#interface gigabitEthernet 0/2
Switch(config-if)#switchport mode dynamic desirable 
Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to down
  
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up 

SW2:  

Switch>en
Switch#show interfaces gigabitEthernet 0/1 switchport 

SW3:

Switch>en
Switch#show interfaces gigabitEthernet 0/2 switchport 

Na powyższych wynikach komendy wyświetlające podłączone interfejsy. Tyllko SW3 jest w trybie trunk.

S1:

 
Switch(config-if)#exit
Switch(config)#interface range g0/1-2
Switch(config-if-range)#switchport mode dynamic desirable 

Output na S2 i S3 – obamają łącze w trybie trunk:

Weryfikacja statusu użycia DTP na przełącznikach    

Wyłączenie DTP na przełącznikach:

  • Dla zwiększenia bezpieczeństwa i zmniejszenia ryzyka ataku na protokół DTP warto go wyłączyć na przełącznikach. Z tego powodu unika się wystąpienia incydentu podszycia, a następnie sfałszowania DTP w celu wynegocjowania łącza trunk.
  • DTP działa jedynie na urządzeniach CISCO – mając zestawione dwa przełączniki CISCO i jakiegoś innego vendora warto na tym Ciscowym wyłączyć DTP gdyż i tak nie będzie potrzebny ponieważ drugi przełącznik i tak ich nie odczyta.

S1:

Switch>en
Switch#show interfaces gigabitEthernet 0/1 switchport 
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface range gigabitEthernet 0/1-2
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport nonegotiate
Switch(config-if)#do show interfaces gigabitEthernet 0/1
!adekwatnie Switch(config-if)#do show interfaces gigabitEthernet 0/1! 

S2:

Switch>en
Switch#show interfaces gigabitEthernet 0/1 switchport 
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface gigabitEthernet 0/1
Switch(config-if)#switchport mode trunk 
Switch(config-if)#switchport nonegotiate
Switch(config-if)#do show interfaces gigabitEthernet 0/1 

S3:

Switch>en
Switch#show interfaces gigabitEthernet 0/1 switchport 
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface gigabitEthernet 0/2
Switch(config-if)#switchport mode trunk 
Switch(config-if)#switchport nonegotiate
Switch(config-if)#do show interfaces gigabitEthernet 0/2              

Powtórna weryfikacja statusu użycia DTP na przełącznikach