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.
Jeśli chcesz obejrzeć instrukcję video – kliknij 🙂
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
- Dynamiczny tryb auto (ang. Dynamic auto) – jest pasywny, a umożliwia stworzenie stanu trunk w momencie braku negocjacji przez urządzenie
- Dynamiczny pożądany (ang. Dynamic desirable) – jest trybem aktywnym
- Trunk – na stałe ustalenie interfejsu w trunk
- 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