Ověřování uživatele v sítích Windows
Cílem tohoto článku je ve stručnosti poskytnout čtenářům základní představu o tom, jak funguje ověřování přístupů v sítích Microsoft Windows a jak řešit nejčastější problémy s přístupy v těchto sítích. Článek nechce a ani nebude zabíhat do zbytečných technických detailů a bude prezentovat dvě časté situace a popis jejich řešení.
Úvod
Síťová podpora v operačních systémech Microsoftu má dlouhou historii. První operační systém Microsoftu s podporou sítí (pouze klient) byl MS-DOS 3.1, zatímco první Windows s podporou sítí byly Windows 3.1. Windows 3.1 ještě neměly integrovanou podporu sítě (a to ani pro MS řešení) a klienta sítě (například klienta LAN Manageru) bylo nutné doinstalovat. Serverové řešení Microsoftu v té době představoval LAN Manager pro OS/2 a UNIX, jehož síťové komponenty, systém domén, ověřování a síťových služeb se stal předobrazem pozdějších síťových komponent v systému Windows NT. S principy LAN Manageru se setkáváme v sítích Windows dodnes.
Dnešní podobu sítím Microsoft daly dva produkty: na straně pracovní stanice to byly Windows 3.11 for Workgroups s integrovanou podporou peer-to-peer sítě, které také přinesly koncept „pracovní skupiny“, a na straně serverů a profesionálních pracovních stanic to byly Windows NT 3.1, které převzaly model domén LAN Manageru a zároveň umožňovaly režim pracovní stanice jako Windows 3.11. Z uživatelského hlediska přinesly zlom také Windows 95, které se pokusily graficky prezentovat struktury pracovních skupin, domén a počítačů v apletu „Okolní počítače“, což je dodnes pro nepoučené uživatele nekonečným důvodem zmatků a nejasností.
Systém ověřování v těchto sítích se přirozeně vyvíjel a stával se bezpečnějším co se týče přenosu a ukládání hesel, ale princip zůstal dodnes podobný. V těchto historických dobách sítě nejčastěji sestávaly ze stanic, které neměly vlastní zabezpečení (Windows for Workgroups, Windows 95, Windows 98), a serverů/pracovních stanic se zabezpečeným schématem (Windows NT 3.1/3.51, Windows NT 4.0). S příchodem Windows 2000 a Windows XP, tedy následníky Windows NT 4.0, postupně stará řada Windows 3.11 zmizela a dnes již její použití není obvyklé, proto se zmíníme o rolích Windows 3.11/95/98 v síti jen okrajově a hlavní zaměření s příklady bude na Windows 2000/XP.
Zabezpečené schema Windows NT
Podívejme se nyní stručně na zabezpečovací schéma, které používají Windows NT/2000/XP. Pokud pracujeme v síti s těmito operačními systémy a chceme provést jakýkoliv vzdálený přístup nebo správu, musíme se proti zabezpečení těchto systémů ověřit. Nebudeme nyní zabíhat do podrobností, spokojme se s tím, že každý tento OS má vlastní databázi uživatelských účtů a hesel a vlastní systémové bezpečnostní politiky. Pokud nepracuje v režimu pracovní skupiny, ale je připojen do domény, existuje doména jako další poskytovatel uživatelských účtů a hesel, přičemž místní databáze stále zůstává přístupná. Oč tu jde, je to, že systém vyžaduje, aby každý, ať místně nebo po síti, poslal svoji identifikaci sestávající z uživatelského jména a hesla, a tato dvojice se musí shodovat s dvojicí, která je uložena v databázi poskytovatele zabezpečení, tedy buď v místní databázi nebo v databázi doménového řadiče.
Legacy klienti – Windows 3.11, Windows 95, Windows 98
Operační systémy vycházející z Windows for Workgroups 3.11 nemají vlastní databázi zabezpečení, nicméně umožňují přihlášení do sítě Microsoft a/nebo do domény LAN Manager/Windows NT. Pro síťový přístup se pak použije zadaná dvojice uživatel/heslo. Co se týče přístupu z opačné strany, je možný bez ověření. Na sdílené položky je možné od Windows 95 výše přiřadit externího poskytovatele zabezepečení, a to buď doménu, nebo, a to je málo známé, jakýkoliv počítač s Windows NT/2000/XP.
Příklad1 – pracovní skupina
Dejme tomu, že jsem na svém počítači (POCITAC1) přihlášen jako uživatel „vladimir“ s heslem „t4jn3h3sl0“. Pracovní skupina počítače je „SKUPINA“. Vzdálený počítač (POCITAC2), vůči kterému se chci ověřit, má ve své uživatelské databázi účet „vladimir“ se shodným heslem. Uživatel je na vzdáleném počítači zařazen ve skupině Administrators (tedy POCITAC2\Administrators), kdežto na svém počítači mám pouze práva omezeného uživatele (POCITAC2\Users). Vzdálený počítač je zařazen ve skupině „ARBEITSGRUPPE“, neboť patří nějakému Helmutovi z německé pobočky firmy.
To, co se posílá jako informace z mého PC, je:
vladimir
t4jn3h3sl0 *)
POCITAC1
Toto se dá zapsat i jako POCITAC1\vladimir, heslo t4jn3h3sl0.
*) heslo se samozřejmě v plaintextu nepřenáší, pouze pro jasnost příkladu.
Co se stane? Vzdálený počítač zjistí, že pracuje v režimu pracovní skupiny, tudíž informaci o poskytovateli zabezpečení (POCITAC1) bude ignorovat a použije svou vlastní databázi. V ní najde uživatele „vladimir“, heslo se shoduje a voila – přístup je povolen. Mám nyní přístup k počítači přes síť, a to s právy Administrator, neboť POCITAC2\vladimir je ve skupině POCITAC2\Administrators.
Co by se stalo, kdyby...
Byl účet POCITAC2\vladimir uzamčen nebo mu skončila platnost hesla?
Zobrazilo by se hlášení „Přístup odepřen“.
Měl účet POCITAC2\vladimir jiné heslo než POCITAC1\vladimir?
Zobrazil by se dialog k zadání hesla.
Účet POCITAC2\vladimir by vůbec neexistoval?
Zobrazilo by se hlášení „Přístup odepřen“, případně dialog k zadání uživatelského jména i hesla.
Příklad 2 – doména
Dejme tomu, že jsem na POCITAC1 přihlášen jako uživatel DOMENA\vladimir s heslem „t4jn3h3sl0“. Přistupuji na počítač POCITAC2, který je zařazen rovněž do domény DOMENA. Na POCITAC2 je založen místní účet POCITAC2\vladimir a skupina DOMENA\Workstation Admins je ve skupině Administrators počítače POCITAC2.
Co se bude dít?
Pošle se informace
vladimir
t4jn3h3sl0
DOMENA
Dá se také vyjádřit jako DOMENA\vladimir.
Co nyní bude dělat počítač POCITAC2? Zaprvé si uvědomí, že je v režimu domény a použije moje přihlášení jako DOMENA\vladimir. Ověření tudíž neprovede on, ale řadič domény DOMENA. Řadič domény se podívá a najde vladimir-a ve skupině Workstation Admins. Následně se podívá POCITAC2, ale ignoruje svou databázi účtů, tj. účet POCITAC2\vladimir je teď naprosto irelevantní. Relevantní je to, že v místní skupině Administrators je skupina Workstation Admins. Uživatel DOMENA\vladimir má tedy nyní síťový přístup s právy POCITAC2\Administrators.
Co by se stalo, kdyby...
Z nějakého důvodu (aplikace) nepřišla informace o tom, že se jedná o účet DOMENA\vladimir a přišla pouze informace vladimir?
Použil by se účet DOMENA\vladimir.
Intermezzo - ForceGuest
ForceGuest je režim, který je ve výchozím stavu zapnut ve Windows XP. Jmenuje se to "zjednodušené sdílení". Chová se tím způsobem, že ať přijde libovolná přihlašovací informace na POCITAC2 (kde by byl zapnut režim ForceGuest), použily by se k přihlášení informace o uživateli Guest. Toto má mít tu výhodu, že se nemusíte zatěžovat nastavováním práv a prostě něco buď nasdílíte nebo nenasdílíte - je to cílené na domácí uživatele. Problém je v tom, že účet guest není defaultně povolen a že účet guest je speciální účet, který může způsobit určité bezpečnostní komplikace, tudíž ponechat ho zakázaný je jen rozumné. Bohužel, zjednodušené sdílení potom nefunguje. Doporučuji "zjednodušené" sdílení vypnout, pokud máte tu možnost. (V ovládacím panelu možnosti složky - zobrazení).
Přístup přes síť na sdílené položky v sítích Microsoft
Nejčastějším důvodem síťového přístupu v sítích Microsoft bývá přístup na sdílenou položku. Tou může být nějčastěji sdílený adresář (složka) nebo například tiskárna. Služba, která toto zajišťuje, je služba Server, zatímco služba udržující spojení je služba Workstation. Služba Server umožňuje nastavení přístupových práv na každou z položek, kterou sdílí, ovšem každá z těchto položek může mít vlastní přístupová práva například na úrovni souborového systému. Systém Windows NT toto zpracovává tak, že se pokusí vytvořit průnik těchto práv a použije ty více restriktivní z této dvojice. Aby v tom nebyl zmatek, použijte jednoduché pravidlo: všechna práva, která mají oddělit uživatelský přístup, nastavte na objektu samém, ne na sdílení. Na sdílení použijte skupinu Authenticated Users – všechna práva. Nepoužívejte skupinu Everyone. U sdílené složky to může vypadat například takto:
sdílená složka
Authenticated Users – úplné řízení Povolit
Změnit Povolit
Číst Povolit
složka (souborový formát NTFS)
Administrators Úplné řízení
Users číst
Co se nyní bude dít, přistoupí-li uživatel z našeho příkladu 1?
Zaprvé, dostane přístup jako uživatel skupiny Authenticated Users. Členové této skupiny jsou všichni ověření uživatelé, což je rozdíl oproti skupině Everyone. Na sdílení jsou plná práva pro všechny Authenticated Users, nicméně jen pro skupinu Administrators jsou práva plného řízení. Uživatel je ve skupině POCITAC2\Administrators, tudíž může mazat, vytvářet soubory, měnit a v rámci plného řízení i měnit oprávnění. Pokud se mění práva ze vzdáleného počítače, práva, která jsou měněna v průzkumníku nebo jiném správci souborů, jsou ona práva na disku. Práva na sdílení je nutno měnit skrze aplet správa sdílených složek nebo ve starších verzích Windows NT nástrojem Server Manager for Domains.
Co by se stalo, kdyby...
Nebyl uživatel POCITAC2\vladimir ve skupině Administrators?
Měl by pouze oprávnění číst soubory na sdíleném disku, jelikož na NTFS disku jsou práva takto nastavena. Jsou to více restriktivní práva než jsou nastavena na sdílené položce a proto v konečném průniku práv platí.
Správa pomocí RPC nástrojů v sítích Microsoft
RPC je mechanismus volání vzdálených procedur programů, který využívají k vzájemné komunikaci serverové a klientské programy ve Windows NT. Příkladem toho, co funguje tímto způsobem, jsou například aplety Správa počítače, utilita shutdown.exe pro vzdálené vypnutí počítače, klient-serverová kombinace Remote Command Control pro vzdálenou správu Windows NT a další. Ověření probíhá v drtivé většině právě přes námi probírané NTLM (NT-Lan Manager) ověřování.
Příklad: pokouším se vypnout vzdálený počítač utilitou shutdown.exe. Situace autentizace je stejná jako v Příkladu 1. Jelikož se vše shoduje a jsem ve skupině POCITAC2\Administrators, počítač se vypne.
Co by se dělo, kdyby...
Uživatel POCITAC1\vladimir nebyl lokálním administrátorem na POCITAC2\Administrators?
Zobrazila by se chybová hláška „přístup odepřen“. Je to proto, že v bezpečnostních politikách Windows 2000/XP má k vzdálenému (oproti místnímu) vypnutí počítače právo pouze skupina Administrators
Závěr
Velice stručně jsem se pokusil podchytit ověřování v síti Microsoft. Jelikož je mnoho situací, které jsem opomenul, ptejte se na to, co vás zajímá, v diskuzi u článku.