VLAN
Co je VLAN
VLAN neboli Virtual LAN je libovolná broadcastová doména. Nyní si přiblížíme, co VLAN je. Představte si, že VLAN je jakési seskupení síťových zařízení, kde tyto zařízení mohou spolu komunikovat jako kdyby spolu tvořily jednu LAN, i když jsou lokalizovány v jedné nebo více LAN segmentů. Takovéto LAN segmenty jsou odděleny od zbytku sítě pomocí uzlů, kterými mohou být switche, routery, huby nebo repeater. Ale díky tomuto jsou posílaná data dosažitelné po celé VLAN síti.
VLAN funguje tak, že se na síťové rámce aplikují tagy a tyto tagy se zpracovávají v rámci sítě, aby se vytvořila funkčnost síťového provozu. Tento provoz se chová jako kdyby byl rozdělen mezi různé sítě, ale ve skutečnosti je fyzicky v jedné síti. Takto mohou virtuální sítě udržovat síťové aplikace oddělené, i když jsou v jedné síti.
Administrátoři sítě mohou díky VLAN seskupovat síťové zařízení, i když ve skutečnosti nejsou připojeny ke stejnému switchi. Takto se tedy můžeme vyhnout zbytečnému přemisťování uzlů, předělávání propojení, ale přináší výhody v oblasti bezpečnosti a řízení provozu. Ale teď si představte, že jsou dvě síťová zařízení a sdílejí stejné připojení, ale nemohou spolu komunikovat. Toto je také jedna z funkcí VLAN.
VLAN dokonce řeší problémy, jako škálovatelnost, zabezpečení a správu sítě. Routery v VLAN sítích filtrují vysílání provoz, provádějí shrnutí adres, posilují zabezpečení sítě a omezují přetížení sítě.
Uplatnění VLAN
Teď si ukážeme uplatnění VLAN v podniku, který má jednu velkou síť. Tato síť je tvořena dvěma switchi, které jsou ve dvou různých budovách. Tyto switche mají zavedenou bezdrátovou síť, která obsahuje 3 segmenty. Tyto segmenty jsou rozděleny, a to na segment pro zákazníky, pro uživatele a administrátora sítě. Každý segment má zavedenou bezdrátovou síť a každé má své SSID (service set identifier) jmenovitě například Administrátor, Uživatel, Zákaznici. Teď si ještě musíme nastavit jednotlivé VLAN-ID. Administrátor - 900, Uživatel - 200, Zákaznici - 300. Ale chybí nám zde ještě jedna síť, a to síť pro zařazení jako router, switch a další síťových zařízení. Tato síť se například bude jmenovat řídící a bude mít SSID - 45. A proč máme tuto čtvrtou síť? No, protože tato VLAN v sobě uchovává adresy switchů. routerů a další síťových zařízení. Navíc do této sítě budou moci přistupovat jen daná zařízení a pár uživatelů. kteří budou mít fyzický přístup do této sítě. Takto by mohla vypadat struktura sítě nějakého podniku. Ohledně SSID a dalších věcí se dozvíte více dále
Protokoly VLAN
Zde se obeznámíme seznámíme s běžně používanými protokoly nebo s těmi, které již byly vyřazené. Ať už to jsou protokoly od společnosti Cisco nebo standardizované.
IEEE 802.1Q
Toto je jeden ze standardizovaných protokolů. Tento protokol stanovuje, že maximální počet virtuálních sítí v jedné Ethernetové je 4094. Ale pozor toto omezení neplatí na IP podsítě. Jelikož jakákoliv virtuální síť může obsahovat několik takových IP podsítí.
IEEE 802.1ad
Tento protokol rozšiřuje počet virtuálních sítí pomocí nasazení pomocný VLAN tagů.
IEEE 802.1aq
Také známý jako Shortest Path Bridging. 16 milionů, to je počet virtuálních sítí, které tento protokol navýšil.
Cisco Inter-Switch Link
Zkratka pro tento protokol je ISL a jak již z názvu můžeme poznat, tak tento protokol patří společnosti Cisco. Tento protokol je alternativou IEEE 802.1Q. A byl používán jen na některých zařízení od Cisca. Tento protokol propojí switche a udržuje informace o VLAN při přenosu dat mezi switchi na trunk linkách.
Trunk link
Trunk linky jsou fyzické spoje mezi switchi nebo mezi switchi a routery. Datové framy odesílané po trunk linku musí být tagovány, aby zařízení mohla identifikovat virtuální síť, do které datové rámce patří
Cisco VLAN Trunking Protocol
Zde máme další protokol od společnosti Cisco, a to je VTP. Tento protokol šíří definici VLAN po celé lokální síti. Tento protokol převážně používají produkty řady Catalyst od společnosti Cisco. Jsou zde i velmi podobné protokoly, které jsou využívány jinými dodavateli. Těmito protokoly jsou GVRP a MVRP. Neboli GARP VLAN Registration Protocol a Multiple VLAN Registration Protocol, z nichž je MVRP novější. V tomto protokolu switche komunikují mezi sebou pomocí zasílání třech různých paketů.
Summary advertisements
Toto je první z daných třech paketů. Tento paket je rozesílán každých pět minut. Co se s tímto paketem děje na switchích a co tento paket obsahuje si teď vysvětlíme. Tento paket obsahuje následující, a to jméno domény, číslo revize a čas poslední úpravy. Jakmile se tento paket dostaví na switch, tak se automaticky zda je stejné jméno domény jako switch a také, jestli číslo revize je než poslední obdržené číslo revize. V případě, že číslo revize je větší, tak odešle zpět paket Avertisment request, v druhém případě bude zcela ignorován.
Subset advertisement
Tento paket obsahuje také jméno domény, číslo revize, ale navíc obsahuje informace o VLAN – neboli číslo, stav a to, zda je aktivní nebo ne, a nakonec velikost MTU. Tento paket je odeslán jen v případě, když byly provedeny nějaké změny ve virtuální síti, a to směrem z serveru na klienta. Jelikož možná nevíte, co je MTU tak si to teď pojďme více přiblížit. Maximum Transmission Unit neboli maximální velikost IP datagramu, který lze vysílat daným síťovým rozhraním.
Advertisement request
Tento paket se odesílá, když správce změnil doménové jméno, při resetování switche nebo jako odpověď na Summary advertisements jak jsme si již před tím říkali. Když jakýsi switch obdrží tuto zprávu, tak odesílá zpět Summary advertisements a Subset advertisements.
Multiple VLAN Registration Protocol
Tento protokol umožňuje provádět automatickou konfiguraci informací o VLAN na switchích. Neboli vám sdílí informace a konfigurace daných virtuálních síti
Metody zařazení
Zde si ukážeme pár způsobů, jak se dá zařízení zařadit do VLAN sítě. Tyto metody jsou například podle protokolu nebo L3 adresy, ale ty vyjmenované způsoby se moc v praxi používají. Proto si zde vysvětlíme jak metody, jako zařazení podle portu nebo MAC adresy fungují, jelikož jsou více rozšířené a používají se v praxi častěji.
Zařazení pomocí portu
Toto je jedno z nejpoužívanějších řešení, i díky své rychlosti. Jelikož port na switchi je napřímo nakonfigurován do dané VLAN, tak zde není potřeba cokoliv vyhodnocovat.
Zařazení pomocí MAC adresy
Jednou z výhod je, že jde o dynamické zařazení do VLAN. To znamená. že se zařízení automaticky zařadí do správné VLAN hned po připojení do jiného portu. Toto je díky tomu, že si switch spravuje tabulku, kde má seznam MAC adresu všech zařízení.
Pravidla pro přidělování VLAN
Teď si řekneme pár pravidel o přidělování VLAN. První pravidla jsou o přidělování čísel na routerech a switchích. Jedno z těchto pravidel je, že na router a routery, kam vede připojení musí být SSID neboli číslo VLAN unikátní. Druhé pravidlo vypovídá o tom, že na obou stranách spoje musí být SSID nebo číslo VLAN stejné. A teď jaké číslo můžeme použít a jejich definice.
SSID | |
---|---|
0 | toto číslování se nepoužívá. |
1 | výchozí VLAN, defaultně se používá na všechny porty a nelzeho smazat nebo změnit |
2 - 4092 | tyto čísla jsou volně k dispozici. |
4093 - 4094 | rezervovány pro zvláštní použití. |
Někdy lze použít číslování až do 4096. Další z pravidel je, že defaultně necháváme VLAN 1 jako řídící neboli také jako management. Proto můžete i na jiných portech najít VLAN 1 jako netagovanou. Teď si vysvětlíme pojmy tagovaná a netagovaná VLAN.
Tagovaná VLAN
Na switchi u každého portu se může objevit více tagovaných VLAN najednou, ale to neznamená, že když máme tagované VLAN, tak už zde nemohou být netagované. Ba naopak takové tagované VLAN můžeme kombinovat i s netagovaným VLAN, ale jen jedním. Teď si představte, že síťové zařízení posílá paket dále. Tím pádem zařízení musí přidat do paketu tag, aby se vědělo, do jaké VLAN bude tento paket zařazen. Pokud se takto neučiní, tak se daný paket zařadí na netagovanou VLAN anebo se zahodí. Ale jak takový tagovaný paket vypadá si teď popíšeme. Takovýto paket se klasicky skládá z: Destination and Source MAC adresy, typu/délky paketu, dat a FCS neboli Frame Check Sequence.
Tag, který přidáme do paketu obsahuje VLAN ID a vkládá se mezi Source MAC a Typ/Délku paketu. V tuto chvíli se odstraňuje FCS a po přidání tagu se nakonec přidá i nové FCS.
Netagovaná VLAN
Jak jsme se již dozvěděli, tak netagovaná VLAN může být na každém portu switche jen jedna. Jakmile je nějaké zařízení připojené do portu s netagovanou VLAN, tak již není třeba dělat žádné nastavení. Na tuto netagovanou VLAN přicházejí pakety, které nejsou nějak tagované, tak defaultně spadají do této VLAN.
Nastavení portů
Zde rozlišujeme 3 druhy nastavení portů a to ACCESS, GENERAL a TRUNK. Některé switche tyto nastavení nerespektují, a proto se řídí jen tím, jestli je VLAN tagovaná nebo netagovaná.
ACCESS
Toto nastavení povoluje jen jednu netagovanou VLAN a nejde zde používat jiné více VLAN najednou. Proto jsou všechny paket zařazeny do VLAN nastavené na tomto portu. Takové nastavení se často používá na portech, kde jsou zákazníci. PVID neboli Port VLAN identifier se musí nastavit na netagované SSID VLAN.
GENERAL
Zde u tohoto nastavení je povolena jedna netagovaná VLAN a libovolný počet tagovaných. Používá se například na portech, kde je připojený router. Většinou je management je netagovaný a ostatní jsou pak tagování. Zde se musí PVID nastavit na číslo netagované VLAN, jako u ACCESS nastavení. Často označováno jako hybridní nastavení.
TRUNK
Tato možnosti nastavení umožňuje jen tagované VLAN. Tímto jsou tedy pakety, které nejsou tagovány automaticky zahozeny. TRUNK nastavení se často používá na propojení switchů z různých sítí. V tomto případě se nastavení PVID zcela ignoruje.
Konfigurace VLAN
Teď si jednoduchou konfiguraci VLAN. Respektive vytvoření VLAN linku, zobrazení všech nebo jednoho linku, přidání IP adresy, nahození a shození linku a nakonec odstranění.
Vytvoření VLAN linku
Zde jsme si vytvořili link na interfacu eth0 s jménem eth0.100 a s SSID 100.
user:~$ sudo ip link add link eth0 name eth0.100 type vlan id 100
Zobrazení VLAN linků
Pomocí příkazu “ip link” si můžeme zobrazit všechny VLAN linky. Tímto jsme si potvrdili, že link, který jsme vytvořili předtím existuje. Najdete jej jako poslední sedmý link.
user:~$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 1e:60:ec:b2:0b:39 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether be:73:31:c1:01:3b brd ff:ff:ff:ff:ff:ff
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ipip 0.0.0.0 brd 0.0.0.0
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:15:5d:48:a4:40 brd ff:ff:ff:ff:ff:ff
7: eth0.100@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:15:5d:48:a4:40 brd ff:ff:ff:ff:ff:ff
Další příkaz, kterým si můžeme zobrazit linky je “ip –d addr show”. Přepínačem “-d” se zobrazí detaily každého linku.
user:~$ ip -d addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
A nakonec si pomocí příkazu “ip -d link show eth0.100” můžeme zobrazit link, který jsme vytvořili.
user:~$ ip -d link show eth0.100
7: eth0.100@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:15:5d:48:a4:40 brd ff:ff:ff:ff:ff:ff promiscuity 0
vlan protocol 802.1Q id 100 <REORDER_HDR> addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 62780 gso_max_segs 65535
Přidání IP adresy na VLAN link
Tímto příkazem přidáváme IP našemu vytvořenému VLAN linku.
user:~$ sudo ip addr add 192.168.100/24 brd 192.168.100.255 dev eth0.100
Aktivování a deaktivování VLAN linku
Těmito identickými příkazy, které se liší jen tím, že na konci dáte buď “up” nebo “down” můžete aktivovat nebo deaktivovat váš VLAN link.
user:~$ sudo ip link set dev eth0.100 up
user:~$ sudo ip link set dev eth0.100 down
Odstranění VLAN linku
Poslední příkaz, co si ukážeme je příkaz, kterým odstraníme námi vytvořený VLAN link. Poté executnete ten příkaz, tak si můžete pomocí příkazu “ip link” zkontrolovat, že daný link již neexistuje.
user:~$ sudo ip link delete eth0.100
VLAN hopping
Tento typ útoku umožňuje obejít jakákoliv omezení druhé vrstvy, které jsou vytvořeny pro rozdělení zařízení. Zjednodušeně VLAN hopping útok spočívá v tom, že útočník získá v určité virtuální síti přístup k provozu jiných VLAN, které by jinak nebyly přístupné. U VLAN hoppingu rozlišujeme dva základní metody a to switch spoofing a double tagging.
VLAN switch spoofing
U tohoto typu útoku jde o to, že se útočník chová jako switch jak již název napovídá. Neboli snaží se tak přesvědčit ostatní switche o tom, že je sám switch, aby pak mezi sebou mohli navázat spojení. Co je trunk link jsme již vysvětlili, a proto rovnou přejdeme k tomu jak tento útok funguje. Takže jakmile útočník oklame ostatní switche a navážou mezi sebou trunk linku, tak v tomto momentu útočník získal přístup k provozu jakékoli VLAN. Ale je tady jeden malý háček, tento útok je jen tehdy když je switch, který je obětí nakonfigurován tak, aby vyjednal trunk linku. To poznáte tak, že je rozhraní nakonfigurováno v režimu dynamic desirable, dynamic auto nebo trunk. Jakmile jsou takto nastavená rozhraní, tak útočník může poslat DTP neboli Cisco Dynamic Trunking Protocol, aby vyjednal trunkové spojení jak jsme si již řekli.
Možný typ útoku switch spoofing
Útok můžeme provést pomocí nástroje Yersinia. Co je vlastně Yersinia, no je to framework díky kterému můžeme provádět útoky na druhé vrstvě. Je navržen tak, aby využíval slabin síťových protokolů. Také předstírá, že je rámec pro analýzu a testování nasazených sítí a systémů. Nejdříve si nainstalujem Yersinia pomocí příkazu:
user:~$ sudo apt-get install yersinia
Poté můžete například použít příkaz:
user:~$ yersinia dtp -interface usb0 -version 1 -source <YOUR MAC> -dest <DEST MAC> -attack 1
Možnosti chránění proti switch spoofing
Jediné co je třeba udělat, je přenastavit přístupové porty a trunkové porty na switchích. Na přístupových portech zabráníme DTP a na trunkových nastavíme trunk mód tak, že se nebudou vytvářet DTP framy.
Přístupové porty:
switch(config-if)# switchport mode access
Trunkové porty:
switch(config-if)# switchport mode trunk
switch(config-if)# switchport nonegotiate
VLAN Double tagging
U double taggingu dochází k tomu, že útočník přiřazuje a upravuje tagy na ethernetových framech tak, aby bylo umožněno odesílání paketů přes jakoukoliv VLAN. Double tagging attack využívá množství přepínačů, které zpracovávají tagy. Jelikož většina přepínačů odstraní pouze vnější tag a pošle frame všem nativním VLAN portům. Musíme dát ohled i na to, že tento útok neboli takovéto zneužití je možné pouze v případěm, že patříme do trunkového spojení v nativní VLAN síti. Dále je třeba zdůraznit to, že tento útok je jednosměrný, protože není možné zapouzdřit vracející se paket.
Možný typ útoku double tagging
Tak zde se dá použít stejný nástroj jako u switch spoofingu a to Yersinia. Jak jsme si již řekli, Yersinia je framework díky kterému můžeme provádět útoky na druhé vrstvě a je navržen tak, aby využíval slabin síťových protokolů. Také předstírá, že je rámec pro analýzu a testování nasazených sítí a systémů. Předpokládám, že jste si již před tím stáhli tento nástroj. Jestli ne tak zde pomocí tohoto příkazu, tak můžete učinit.
user:~$ sudo apt-get install yersinia
A teď si můžeme ukázat jeden z příkazů, díky kterému můžeme pomocí Yersinie použít double tagging útok.
user:~$ yersinia dot1q -attack 1 -source <YOUR MAC> -dest <DEST MAC> -vlan1 <XXXX> -priority1 <XX> -cfi1 <XX> -vlan2 <XXXX> -priority2 <XX> -cfi2 <XX> -ipsource <YOUR IP> -ipdest <DEST IP> -ipproto 1 -payload YERSINIA -interface <INTERFACE>.
Možnosti chránění proti double tagging
Zase jako u předešlého útoku se musí změnit nastavení na switchích. Jak jsme si již řekli, tak tento útok je možný jen na nativních VLAN, takže nebudeme používat nativní VLAN nebo když bude potřeba změnit ID nativní VLAN od defaultního. Na přístupových musíme zařídit to, že nebude možné vyjednávat s trunkovými linkami. To může pomoci i u switch spoofingu. A u trunkových portů musíme nastavit jinou nativní VLAN, než tu defaultní a také povolit provoz jen na některých VLAN. Hodilo by se zmínit o tom, že by bylo nastavit jinou VLAN na trunkových portech než je na uživatelských portech.
Přístupové porty
switch(config-if)# switchport mode access
switch(config-if)# switchport access vlan <vlan id>
Trunkové porty
switch(config-if)# switchport mode trunk
switch(config-if)# switchport trunk native vlan <vlan id>
switch(config-if)# switchport trunk allowed <vlan ids>