Přiřazování VLAN
Protokol 802.1x (ve spolupráci s Cisco switchem) nám dává možnost dynamicky zařazovat porty do VLAN podle autentizačních údajů. Takže pak nemusíme konfigurovat správnou VLANu pro každý port (ale přesto je třeba všechny porty zařadit do nějaké VLANy a dobře to rozmyslet) a uživatel získá svoji VLANu na různých místech a počítačích. To ale obecně funguje pouze, když používáme autentizaci uživatele a ne počítače.
Konfigurace v Cisco IOSu
Pokud máme protokol 802.1x správně nakonfigurovaný a chceme přidat podporu pro přiřazování VLAN z RADIUS serveru, použijeme následující příkaz. Ten zařídí, že se pro síťové služby (jako je i přiřazení VLANy) bude používat RADIUS autorizace.
SWITCH(config)#aaa authorization network default group radius
V případě, že RADIUS server nepošle VLAN (nebo je 802.1x vypnuto), tak se port zařadí do své přístupové VLANy (access VLAN, která je nastavena na portu).
Pozn.: Pokud by byla zaslána chybná (například neexistující) VLANa, tak ji switch odmítne.
Pokud potřebujeme řešit problémy či chceme sledovat, jak probíhá komunikace, tak můžeme použít příkaz debug
a logovat určité operace, například:
SWITCH#debug dot1x events // logování dot1x událostí SWITCH#show logging // zobrazení logu
Pozn.: Dot1x se nedá použít na trunk porty a dynamické porty.
Konfigurace na MS IAS (RADIUS) serveru
Opět vycházím z toho, že již máme nakonfigurované ověřování uživatelů. Abychom odeslali VLANu, tak musíme pouze přidat tři Vendor-specific atributy. To uděláme v naší Remote Access Policy na záložce Advanced.
Jedná se o následující atributy:
- [64] Tunnel-Type = VLAN (type 13)
- [65] Tunnel-Medium-Type = 802 (type 6)
- [81] Tunnel-Private-Group-ID = VLAN name or VLAN ID
Výše uvedený postup zařídí, že všichni uživatelé/stanice (na které se uplatní tato Remote Access Policy) budou zařazeni do nastavené VLANy. To není příliš dynamické, protože v praxi chceme zařazovat různé uživatele do různých VLAN. Jedno z možných řešení je následující.
Nejprve potřebujeme mít v Active Directory vytvořeny skupiny pro každou VLANu a v nich zařazeny patřičné uživatele. Například když máme VLANy podle oddělení, tak skupinu pro oddělení.
Na RADIUS serveru pak musíme vytvořit Remote Access Policy pro každou VLANu. Většina parametrů bude (asi) stejná. Upravit musíme podmínky (conditions), podle kterých se přiřazuje politika k požadavku. Tam nastavíme podmínku na Windows-Groups a zadáme skupinu nebo skupiny z Active Directory, pro které se nastaví jedna VLANa. Potom nastavíme číslo VLANy na Advanced záložce politiky (jak bylo uvedeno výše).
Politiky se testují v pořadí odshora (číslo 1) dolů a ve chvíli, kdy dojde ke shodě, tak se politika použije. Takže můžeme nastavit několik politik pro různé speciální skupiny a na konec umístit obecnou politiku, která nastaví VLANu všem ostatním.
Problém s neobnovením adresy na klientovi
Občas může dojít k tomu, že se klient zařadí do správné VLANy, ale nedostane adresu od DHCP serveru. Tento problém se netýká jenom této kapitoly, častěji se vyskytuje třeba u zařazování do hostovské VLANy. Je to způsobeno různými timeouty. Když se klient začne připojovat do sítě, tak pošle DHCP požadavek a zároveň začne proces autentizace. Pokud autentizace trvá déle, než vyprší timeout na DHCP, tak klient nedostane správnou adresu. V případě Windows XP SP1 by měl klient po krátké době provést znovu vyjednání adresy.
Pokud klient nedostane adresu, tak většinou pomůže provedení příkazů pro získání adresy. To je, ale asi pouze pro testování, ostrý provoz bychom měli vyladit, aby fungoval.
ipconfig /release ipconfig /renew
Podrobnější nastavení dot1x
Automatická re-autentizace
Standardně je tato funkce vypnuta, ale můžeme ji zapnout a potom switch po určité době provádí novou autentizaci klienta. Je řada situací, kdy je tato funkce vhodná, například když se nejprve ověří počítač, tak po přihlášení uživatele se provede reauntetizace. Na druhou stranu se pak reautentizace provádí pořád, což již nemusí být dobré.
Standardní čas pro reautentizaci je 3600 s.
SWITCH(config-if)#dot1x timeout reauth-period 4000 // nastavení času reautentizace na 4000 s SWITCH(config-if)#dot1x reauthentication // zapnutí reautentizace na portu
Reautentizaci můžeme vyvolat i ručně na switchi
SWITCH#dot1x re-authenticate interface gigabitethernet0/1
Reset dot1x konfigurace portu
Pokud chceme resetovat dot1x nastavení portu na výchozí hodnoty, můžeme použít příkaz:
SWITCH(config-if)#dot1x default
Pozn.: Tímto se i vypne dot1x na portu, ale nesmaže se nastavení guest a restricted VLAN.
Host mode
Port, kde je zapnuté dot1x, může pracovat v jednom ze dvou módů:
- Single host - pouze jeden klient může být připojen k portu.
- Multiple host - více klientů může být připojeno k jednomu portu. V tomto případě se autentizací prvního klienta ověří celý port a ostatní mohou přistupovat.
Defaultně je mód single host, pokud chceme nastavit multiple
SWITCH(config-if)#dot1x host-mode multi-host
Různé timeouty
Pokud switch nemůže autentizovat klienta (například chyba v komunikaci, ale také když klient zadá špatné heslo), čeká zadanou dobu (standardně 60 s) a pak to zkusí znovu. Často se hodí tento čas zkrátit.
SWITCH(config-if)#dot1x timeout quiet-period 10
Switch odesílá požadavek na autentizační údaje (EAP-request/identity rámec) a následně čeká určitý čas (standardně 30 s) na odpověď, pokud ji nedostane, tak znovu odešle rámec s dotazem. V určitých speciálních případech můžeme tento interval (Switch-to-Client Retransmission Time) změnit.
SWITCH(config-if)#dot1x timeout tx-period 15
K tomu se váže také hodnota (Switch-to-Client Frame-Retransmission Number), kolikrát (standardně 2krát) switch odešle dotaz při neobdržení odpovědi.
SWITCH(config-if)#dot1x max-req 5
V případě, že používáme Guest VLANu a v této síti DHCP, tak může dojít k tomu, že autentizační proces a zařazení do Guest VLANy trvá déle, než vyprší timeout pro získání adresy z DHCP, proto se v tomto případě doporučuje překonfigurovat hodnoty quiet-period a tx-period. Přesná hodnota záleží na typu klienta, ale například:
SWITCH(config-if)#dot1x timeout quiet-period 3 SWITCH(config-if)#dot1x timeout tx-period 15
Accounting - účtování
Protokol 802.1x se stará o autentizaci (authentication - potvrzení, že uživatel je ten za koho se vydává) a autorizaci (authorization - řízení přístupu ke zdroji; zde je to například zařazení do VLANy). Funkce můžeme doplnit o účtování (accounting - jinak řečeno logování údajů), které nám uchovává informace o:
- autentizaci uživatele
- odlogování
- link-down
- re-autentizaci
Microsoft IAS nám automaticky (pokud povolíme v nastavení) ukládá do logu informace při autentizaci uživatele. Pro accounting se používá jiný port (standardně 1646 či 1813) než pro autentizaci a autorizaci (standardně 1645 či 1812). Informace o accountingu se zasílají na RADIUS server pomocí párů atribut a hodnota.
Na switchi můžeme použít jiný zápis pro definování RADIUSu, kde určíme porty pro jednotlivé služby (jinak se použijí defaultní).
SWITCH(config)#radius-server host 192.168.0.10 auth-port 1812 acct-port 1813 key 123456
Pro zasílání accounting informací okolo dot1x na RADIUS použijeme:
SWITCH(config)#aaa accounting dot1x default start-stop group radius
Pozn.: default je pro výchozí seznam (a běžné situace), group radius znamená, že se informace budou zasílat na všechny definované RADIUSy.
Accounting můžeme použít pro řadu údajů, které chceme sledovat a ukládat, takže pár příkladů z jiných oblastí.
Zasílání informací o restartu switche
SWITCH(config)#aaa accounting system default start-stop group radius
Zasílání informací o příhlášení uživatele ke switchi (do exec modu)
SWITCH(config)#aaa accounting exec default start-stop group radius
Zasílání informací o použití příkazů levelu 15
SWITCH(config)#aaa accounting commands 15 default start-stop group radius
Restricted VLAN
Často můžeme chtít, aby uživatel/počítač, který neprojde autentizací (například proto, že u nás nemá účet), byl přesto vpuštěn do nějaké části sítě. Standardně se port přepne do neautorizovaného stavu a blokuje komunikaci. Běžným příkladem je, když přijde nějaká návštěva a potřebuje se dostat na internet. My máme vytvořenu VLANu pro hosty a do ní je chceme automaticky zařadit. Pokud jejich OS podporuje protokol 802.1x, tak se po připojení bude dotazovat na autentizaci (pokud nemají nastaveno automatické vyplnění). A pokud máme nakonfigurovánu restricted VLAN, tak se při zadání špatných údajů (neověření klienta) přepne port do této VLANy.
SWITCH(config-if)#dot1x auth-fail vlan 40 // restricted VLAN je 40 SWITCH(config-if)#dot1x auth-fail max-attempts 1 // počet pokusů o autentizaci (1 až 3)
Pozn.: Pro restricted VLAN musí být port v single-host modu.
S restricted VLAN stejně jako guest VLAN můžeme narazit na nějaké problémy. Často pomůže snížení timeoutů, jak je uvedeno výše. Také se vyskytuje problém s přidělením adresy z DHCP, který je také popsán výše.
Guest VLAN
Podobná situace jako restricted VLAN je guest VLAN. Tu využijeme pro klienty, kteří nepodporují 802.1x (například, aby si stáhli klienta pro dot1x). Do guest VLANy klient zařazen, pokud nepodporuje protokol 802.1x (neodešle EAPOL paket ani neodpoví na EAP-request).
SWITCH(config-if)#dot1x guest-vlan 20
Ve starších verzích IOSu do verze 12.2(25)SEE se používalo upravené chování guest VLANy, které bylo v důsledku podobné restricted VLAN. Nejprve bylo třeba pro celý switch přepnout chování.
SWITCH(config)#dot1x guest-vlan supplicant
A následně se normálně konfigurovala guest VLAN pro porty a uplatnila se na neověřené klienty.
SWITCH(config-if)#dot1x guest-vlan 5
Kontrola a debug
Informace o 802.1x
SWITCH#show dot1x interface f0/1 // informace o 802.1x konfiguraci na portu SWITCH#show dot1x all // informace o 802.1x ze všech portů, kde je zapnuto SWITCH#show dot1x all details // kompletní informace o všech 802.1x portech SWITCH#show dot1x all statistics // statistiky o použití 802.1x na portu SWITCH#show dot1x all summary // stručné informace o stavu dot1x portů
Debugging 802.1x
U nasazování 802.1x asi jednoduše narazíme na různé problémy a potřebujeme vidět, co se na switchi děje. Proto je nejlepší použít debugování daných informací.
SWITCH#debug dot1x events // logování dot1x událostí SWITCH#debug dot1x all // logování všeho okolo dot1x SWITCH#show debugging // zobrazí na co je nastaven debug SWITCH#undebug dot1x all // zruší debug všeho okolo 802.1x SWITCH#show logging // zobrazí log
Informace o AAA a RADIUS
SWITCH# show radius statistics // statistiky z RADIUSu SWITCH# show aaa servers // statistiky z AAA a napojení na RADIUS SWITCH# show aaa method-lists all // seznam metod a které jsou použité SWITCH# debug radius accounting // logování accounting informací posílaných na radius
Zajímavé odkazy
- Configuring Switch-Based Authentication - popis AAA a RADIUS na Cisco C2960
- Configuring IEEE 802.1x Port-Based Authentication - popis 802.1x na Cisco C2970
- Catalyst 3750 Switch Cisco IOS Commands - popis 802.1x příkazů na Cisco C3750
tie porty su asi v jednom pripade zle ;)
Pro accounting se používá jiný port (standardně 1646 či 1813) než pro autentizaci a autorizaci (standardně 1646 či 1813)
odpověď na [1]bosomt: Díky :-) opraveno
Ahoj,
cisco v novych IOSech dost zmenilo CLI prikazy, takze mnoho tech prikazu uz nefunguje, nebo minimalne nejsou v kongtextovy napovede.
Pamatoval jsem si temer vsechno pomoci 'dot1x' prikazu a ted uz se dobry dve tretiny veci dela pomoci 'authentication' prikazu (bohuzel uz to na sebe 'deprecated" dot1x nepraskne, jak jsem byl zvyklej, a nez jsem nasel config guide pro aktualni IOS, tak to chvili dalo - buh vi proc neni nejnovejsi jako prvni, je tam nejkaka 12.1(xx), nejnovejsi je 12.2(53) - alespon pro 3560 :))
Tady je nejnovejsi 802.1x guide, kterej jsem na Cisco nasel:
http://www.cisco.com/en/US/docs/switches/lan/catalyst3560/software/release/12.2_52_se/configuration/guide/sw8021x.html
Mam dotaz, mam nastaven radius(NAP na w2008) a c2960
interface FastEthernet0/13
description Access port VLAN100
switchport access vlan 100
switchport mode access
authentication port-control auto
dot1x pae authenticator
spanning-tree portfast
Vsechno funguje, tak jak by melo, ale neprijde mi normalni, ze pokud se ten PC(wXP) vypne tak se ten C2960 snazi furt posilat pozadavky na identifikaci toho PC.A to zhruba kazdy tri minuty
3881: 010023: Jul 28 20:22:22.358: %DOT1X-5-FAIL: Authentication failed for client (Unknown MAC) on Interface Fa0/3 AuditSessionID C0A8F8030000000C0506F20E
3884: 010044: Jul 28 20:22:22.366: %AUTHMGR-5-FAIL: Authorization failed for client (Unknown MAC) on Interface Fa0/3 AuditSessionID C0A8F8030000000C0506F20E
Tech chyb pokud si zapnu debug na ciscu je vic.Ale prijde mi to, ze se proste stale snazi vsechny radius porty autorizovat.
Nevite nekdo jak tomu zabranit?Je to normalni chovani, nebo mam nekde neco spatne.
Jak rikam, vse bezi do doby nez se vypne PC, pak mi to zacne do syslogu generovat ty chyby.
Diky za jakoukoliv radu
odpověď na [4]Michal:
Ty hlášky "Authentication failed for client (Unknown MAC)" znám. Pokud jsou na portu s vypnutým PC, tak to PC má povolenou funkci vzbuzení přes LAN. Takže PC je vypnuté, ale síťová karta je ve stavu UP a čeká na paket, který by počítač nastartoval. Pro switch se port tváří jako up a posílá žádosti o věření, na ty nepřichází odpověď. Proto port shodí do guest VLANy, protože nemá jak port ověřit.
Řešením je u všech PC vypnout v BIOSu funkci wake up on LAN. Pak při vypnutí PC se vypne i síťová karta.
Stejný problém nastává u IP telefonů, pokud za IP telefonem není nic připoeného. Pro switch je port up a switch neví, že k telefonu není nic připojeného, na datové VLANě očekává odpovědi na ověření a port pak dá taky do guest VLANy, protože nic nepřichází.
Problém s neobnovením adresy na klientovi se da vyresit prikazem:
ip device tracking probe delay 5
Pak vse nabiha korektne.