Cisco IOS 11 - IEEE 802.1x, autentizace k portu, MS IAS

Zdroj seriálu: https://www.samuraj-cz.com/serie/cisco-ios/
Článek se věnuje protokolu IEEE 802.1x a jeho praktickému zprovoznění. Jedná se o užitečný, relativně jednoduchý a několik let starý protokol, který se začíná stále více implementovat. Je na něm založena řada dalších služeb. Dot1x slouží k řízení přístupu na okraji sítě (na portu). Stručně jsem popsal základní implementaci na Cisco switchi, větší část článku se věnuje konfiguraci MS verze RADIUS serveru (IAS) a závěr konfiguraci klienta.

Autentizace přístupu k portu pomocí protokolu IEEE 802.1x je základ dnes populárních technologií zvaných Network Access Control (NAC), Network Admission Control (NAC) či Network Access Protection (NAP), které řídí přístup zařízení/uživatelů k síti. Výhoda je, že přístup kontrolujeme na okraji, tedy přímo na portu (access switch), do kterého je uživatel připojen. Princip spočívá v tom, že port na switchi je zablokovaný (nepovoluje žádnou komunikaci) do té doby, než se připojené zařízení úspěšně autentizuje. Při této metodě je možno využít i řady dalších vlastností, například dynamické zařazovaní do VLAN či zařazení portu do hostovské VLANy, pokud nedojde k autentizaci.

Protokol IEEE 802.1x
O vlastním protokolu 802.1x se zmíním pouze stručně. Jedná se o standard pro kontrolu přístupu do sítě založenou na portu (Port-based Network Access Control). Je založen na Extensible Authentication Protocol (EAP) RFC 3748. Používá se na novějších switchích vyšší třídy (většina dnešních Cisco switchů) nebo pro bezdrátové sítě (přístupové body AP). V drátových sítích se jedná o fyzickou bezpečnost na linkové vrstvě (2. vrstva ISO/OSI).

Pokud je port v neautorizovaném stavu (unauthorized), tak nepřijímá od klienta (označuje se jako supplicant) žádnou komunikaci mimo 802.1x provozu (přesněji, na portu je povoleno Extensible Authentication Protocol over LAN - EAPOL, CDP, Spanning Tree Protocol). Následuje fáze autentizace, kterou authenticator (většinou switch) předává autentizačnímu serveru (většinou RADIUS). Pokud dojde k úspěšné autentizaci, tak se port přepne do autorizovaného stavu (authorized), kdy je normálně funkční. Klient se může odhlásit, pak se port opět přepne do neautorizovaného stavu. Pokaždé, když se stav linky změní z down na up, tak port začíná v neautorizovaném stavu.

Princip 802.1x

Princip 802.1x
Konfigurace v Cisco IOSu
Na Cisco switchích se zprovoznění této metody provede ve dvou krocích. Nejprve využijeme komponentu authentication, authorization, and accounting (AAA), která zajišťuje vlastní autentizaci (plus další funkce) zařízení/uživatele. Druhý krok spočívá v konfiguraci protokolu 802.1x (dot1x) pro switch a jednotlivé porty.

Pomocí AAA zvolíme autentizační metodu. Nejpoužívanější je využití externího RADIUS serveru. Výhodou je odstínění autentizační metody od switche.

Na tomto místě uvádím pouze základní konfiguraci, která je dostatečná pro autentizaci na portu. Řada dalších možností a funkcí bude v příštím článku.

Nastavení AAA přes Radius
SWITCH(config)#aaa new-model // zapnutí AAA access control model
Nastavení RADIUS serveru
SWITCH(config)#radius-server host 10.0.0.10 // adresa nebo jméno serveru
SWITCH(config)#radius-server key 12345 // shared secret
Nastavení AAA metody pro 802.1x na dříve definovaný RADIUS
SWITCH(config)#aaa authentication dot1x default group radius
Nastavení 802.1x
SWITCH(config)#dot1x system-auth-control // zapne 802.1x globálně pro switch (ale funguje jen na nastavených portech)
SWITCH(config-if)#dot1x port-control auto // zapne 802.1x pro port, kde jej chceme použít
SWITCH#show dot1x all // zobrazí info
Pozn.: Defaultní hodnota pro port-control je force-authorized, tedy port je vždy autorizovaný a 802.1x se nepoužívá.

Konfigurace MS IAS(RADIUS) serveru
Pokud se rozhodneme pro použití RADIUS (Remote Authentication Dial-in User Service) serveru, tak máme k dispozici řadu řešení. Jednou z možností je použití Internet Authentication Service (IAS) od Microsoftu, což je komponenta Windows Serveru 2003. IAS nabízí služby pro autentizaci, autorizaci, účtování a audit (authentication, authorization, accounting and auditing).

Pro praktické situace se doporučuje instalovat IAS na doménový řadič, nejlépe zároveň Global Catalog. Také se doporučuje mít dva IAS servery pro případ výpadku jednoho z nich. Na RADIUS serveru můžeme nakonfigurovat, jakou autentizační databázi má použít, v našem případě se používá LDAP pro připojení k Active Directory. RADIUS protokol nikdy neposílá uživatelské heslo v čistém textu.

Krok 1 - zprovoznění IASu
nejprve přes Add or Remove Programs přidáme komponentu do systému, nachází se pod Networking Services
spustíme management pro IAS (MMC konzole) přes Administrative Tools
aby mohl IAS přistupovat k záznamům v AD, tak jej musíme zaregistrovat v AD - klikneme pravým tlačítkem na rootovou položku Internet Authentication Service (local) a zvolíme Register Server in Active Directory
dále službu nastartujeme (Start Service na rootové položce)
Pozn.: V nastavení IAS serveru můžeme nastavit porty, na kterých komunikuje. Standardně se používají UDP porty 1812 nebo 1645 pro autentizaci a 1813 nebo 1646 pro accounting.

Krok 2 - vytvoření klienta
Zde definujeme zařízení (klienta), který bude moci k serveru přistupovat. Nejedná se tedy přímo o klienta, ale o authenticatora (například switch), který bude komunikovat s RADIUS serverem.

pod složkou RADIUS Clients vytvoříme nového klienta, což je switch, kde chceme použít 802.1x
zadáme IP adresu či jméno, v Enterprise verzi můžeme specifikovat i rozsah pomocí CIDR notace
jako Client-vendor nastavíme Cisco (jindy se většinou používá RADIUS Standard, ale ne pro Cisco)
zadáme Shared secret, což je alfanumerický řetězec, který slouží k ověření přístupu klienta

IAS rozhranní
IAS rozhranní
Krok 3 - vytvoření politiky pro vzdálený přístup
V třetím kroku musíme vytvořit Remote Access Policy, kde se mimo jiné určují autentizační metody. Těchto politik může být více a podle zadaných podmínek (policy conditions), které mohou být velmi pestré, se určuje, která z nich se použije.

IAS - Remote Access Policies

IAS - Remote Access Policies
vytvoříme novou politiku (pravým tlačítkem na Remote Access Policies a New Remote Access Policy)
zvolíme custom policy a zadáme jméno (zde Cisco switche)
jako podmínky politiky (tedy na co se bude politika aplikovat) můžeme vybrat třeba Client-Friendly-Name a hodnotu Cisco* a NAS-Port-Type a Ethernet
Pozn.: Další možnou podmínkou je omezení přístupu uživatelů. Pokud vytváříme politiku pomocí průvodce, tak nám nabízí dvě možnosti. Řízení přístupu pomocí nastavení u uživatelského účtu v AD (User). Nebo individuální řízení pomocí skupin (Group). Podmínka pro skupinu se jmenuje Windows-Groups a hodnotu můžeme třeba nastavit na "domena\Domain Computers;domena\Domain Users". Různým nastavením můžeme omezit autentizaci například pomocí účtu počítače.

v dalším kroku nastavujeme, jestli politika povoluje (grant) nebo zakazuje (deny) přístup. Toto nastavení je však přepsáno nastavením u uživatelského účtu v AD na záložce Dial-in, položka Remote Access Permission
přeskočíme nastavení profilu a dokončíme politiku
Tím jsme vytvořili politiku a nastavili parametry, podle kterých se bude vybírat na jaké žádosti se má uplatnit. Nyní musíme definovat autentizační parametry.

dvojklikem otevřeme naši politiku a dostaneme se do vlastností
na první stránce vidíme podmínky, podle kterých se politika vyhodnocuje

IAS - policy properties
IAS - policy properties
Kliknutím na tlačítko Edit Profile, se dostaneme do nastavení podrobností. Nás zajímá hlavně záložka Authentication.
Pozn.: Možností pro nastavení je celá řada. Záložka Dial-in Constrains, můžeme nastavit, jak dlouho může být uživatel připojen nebo v kterou dobu se může připojit. Záložka Advanced, můžeme definovat velkou řadu atributů (včetně Vendor-Specific atributů), které budou vráceny zařízení, které se dotazuje (switch). Záložka Encryption, můžeme definovat, jaké šifrovací metody jsou akceptovány, zde je dobré nastavit nejsilnější šifrování (pokud je to možné).

IAS - authentication

IAS - authentication
Na záložce Authentication můžeme volit jednu z řady autentizačních metod podle potřeby a podpory na klientech. Pro náš případ však zde nenastavíme nic a klikneme na tlačítko EAP Methods. Mezi EAP metodami můžeme vybrat PEAP nebo pokud používáme čipové karty a/nebo certifikáty, tak Smart Card or other certificate. Další vlastnosti se následně nastavují pro vybranou EAP metodu pomocí tlačítka Edit.

IAS - EAP types

IAS - EAP types
Export a import nastavení pro IAS
Pokud máme dva IAS servery, které mají mít tu samou konfiguraci (z důvodu zálohy), tak můžeme použít export a import konfigurace. Použijeme pro to skriptovací utilitu pro příkazovou řádku netsh (Network Shell).

Pro zálohu konfigurace můžeme použít následující příkaz, který ji uloží do souboru iasconfig.txt

netsh aaaa show config >iasconfig.txt
Pro obnovu konfigurace poslouží příkaz

netsh exec iasconfig.txt
Konfigurace klienta Windows XP
Windows XP, Windows Vista a Windows 2000 SP4 obsahují podporu pro protokol IEEE 802.1x. Zapnutí a konfigurace se provádí pro jednotlivé síťové spojení. Control Panel - Network Connections - pravé tlačítko na spojení - Properties - záložka Authentication. Ve Windows Vista není podpora 802.1x standardně zapnuta a pro její využití je třeba nastartovat službu Wired AutoConfig.

Pozn.: Setkal jsem se problémem, že záložka Authentication chyběla. Bylo to na počítači, kde byla také bezdrátová síťová karta a ta byla řízení ovladačem výrobce. Ve chvíli, kdy jsem nastavil řízení pomocí Windows, se na všech síťových kartách objevila záložka Authentication (a vše fungovalo).

Windows XP 802.1x setting

Windows XP 802.1x setting
Nastavení je jednoduché a samozřejmě musí odpovídat tomu, co jsme nastavili na RADIUS serveru.

první položka "Enable IEEE 802.1x authentication for this network"povoluje nebo zakazuje využití protokolu 802.1x
pod EAP type vybíráme autentizační metodu (např. PEAP či Smart Card or other certificate)
tlačítkem Properties se dostaneme do nastavení podrobností dané autentizační metody
zatržítkem "Authenticate as computer when computer information is available" povolujeme, jestli se může pokusit o autentizaci počítač, když není přihlášen uživatel
Poslední zatržítko "Authenticate as guest when user or computer information is unavailable" povoluje počítači, aby se pokusil o přihlášení pomocí účtu Guest , když se nemůže autentizovat pomocí účtu uživatele ani počítače
Pozn.: Možnost autentizovat počítač nám dovolí provést autentizaci ve chvíli, kdy je dostupné síťové připojení. To znamená dříve, než se bude autentizovat uživatel a dříve než se začnou spouštět group policy a login skripty