| Dneska sem zaslechl zvěsti, že bude taky verze SB. Má to být zkratka ze StartButton. Předpokládám, že tahle edice by zaznamenala masivní prodeje, i kdyby to neobsahovalo facebook ani solitér. |
| O tomhle se pořád moc neví a zase se mě na to někdo ptal - takže: Ano, certifikační autorita (AD CS) se dá přesouvat mezi počítači, dokonce na stroj s jiným jménem. A to i z Windows 2003. To všechno za podmínky, že cílovým systémem je Windows 2008 a novější.
Dokumentace je tady: Active Directory Certificate Services Migration Guide
|
| Vzhledem k předvčerejší diskuzi jsem mírně probrouzdal internet a zjistil jsem, že sám MS během března vydal poměrně dost článků na témata Windows 8.
Z tohoto důvodu jsem se rozhodl, že oficiálně vyrážím na TechEd 2012 se všemi veřejnými informacemi na Windows 8, moje přednášky budou komplet podporovat Windows 8 a všechny předváděčky budou na Windows 8!
A jedém z kopcéééé! |
| Včera tady proběhla taková malá diskuze na téma novinky ve Windows 8. A tak že vás to zajímá, tak aspoň trošku přizpěju něčím veřejným - když se mrknete do tohoto oficiálního článku ohledně Well-known security identifiers, objevíte hned čtyři nové Windows skupiny:
- Remote Management Users
- Hyper-V Administrators
- Access Control Assistance Operators
a moje největší hitovka:
- Clonable Domain Controllers
Co se týče Hyper-V Administrators, tak to je myslím jasné. Na skupinu Access Control Assistance Operators se budeme muset ještě podívat podrobněji později, protože z jejího popisku - A Builtin Local group. Members of this group can remotely query authorization attributes and permissions for resources on this computer - se toho moc poznat nedá. Takže někdy příště.
Ale Remote Management Users je zajímavá. Týká se to vzdáleného přístupu do WMI. Normálně jen skupina Administrators může do WMI vzdáleně. Jak povolit vzdálený přístup do WMI pro jinou skupinu jsem psal už dříve tady. Takže nově tam může ještě i tahle skupina. Přístup bude fungovat jednoduše ale jen přes Windows Remote Management (WinRM). Je to tím, že skupina Remote Management Users má vzdálený přístup jen na WMI namespace. K tomu, aby se na počítač dostali vzdáleně musí mít ještě přístup na DCOM. Takže to stále vyžaduje můj předchozí článek, pokud chcete používat kompletně vzdálené WMI přes DCOM a ne WinRM.
Clonable Domain Controllers
To je žráááááádlóó! Co to asi je? Že by skupina s DCčky, které je možné klonovat? Že by se dal udělat imidž a rozlívat jenom jeho? Že by se třeba dal dokonce obnovit a kopírovat Hyper-V snapshot? Jsem MVP, takže kdybych vám to potvrdil, tak bych vás musel okamžitě zastřelit. Takže můžeme jenom spekulovat.
Kopírovat DCčka a jejich snapshoty dneska nejde. Nesmíte ani obnovit snapshot. Mohli byste si přivodit tzv. USN rollback. (detaily v nějakém dalším článku, už se na něho delší dobu chystám, nebo přijďte na TechEd). Tedy ve skutečnosti to lze. Museli byste po obnově snapshotu provést to, co zmiňuje oficiální článek Backup and Restore Considerations for Virtualized Domain Controllers.
Tedy zjednodušeně řeno, obnovit to bez sítě nebo do DSRM (Directory Services Restore Mode), zapsat do registrů hodnotu:
HKLM\System\CurrentControlSet\Services\NTDS\Parameters
Database Restored from Backup = DWORD = 1
a restartnout znovu do plného provozu. Při téhle akci si DC samo uvědomí, že bylo obnoveno a vygeneruje si nové Invocation ID. Tím dá vědět kamarádům, že je zastaralé a že se musí doreplikovat.
Že by tohle dělala ta klonovatelnost sama? Asi to zní logicky, že?
Ke klonování to bude potřebovat i další věci. Například, aby vám Hyper-V dalo vědět, že jste byli obnoveni ze snapshotu. Dneska se to s Hyper-V 2.0 nedozvíte. Našel jsem ale veřejný článek, kde to píšou - nový Hyper-V 3.0 vám dává tzv. VM-GenerationID. Takže se to DCčko dozví, i když ho jenom obnovíte a rovnou nastartujete.
Když klonujete počítače, tak to není jen tak. Musíte jim ještě změnit jméno, GUID a SID (a u DC ještě jeho replikační GUID). Takže to zřejmě ty klonovatelné DC umí! Že byste museli to DC vložit do skupiny Clonable Domain Controllers, aby to šlo provádět? Zkusím teda omrknout, jak to vypadá s veřejnou dokumentovatelností a třeba o tom něco dalšího napíšu.
Papa. |
| Každoroční konference TechEd se blíží, tak si to trošku přibližme:
- 4 dny, od pondělí 23.4. do čtvrtka 26.4. 2012
- 4 sály s tématy pro IT správce, SQL a vývojáře na Microsoft platformě
- sál zvaný GeekRoom, špičková témata a osobní kontakt s přednášejícím
- známé tváře jako je Pavlis, Zelený, Knotek, Pilař, Košec, Malina, Peterka, Caha, Brázda, Tinthofer a mnoho dalších
- ve středu večerní zábava, bowling, kulečník a strasně moc jídla
- super jídlo a občerstvení po celou dobu konference
Moje přednášky pro letošek:
Zabezpečení externího přístupu do SharePoint 2010
- SharePoint Foundation, SharePoint Server, Kerberos, čipové karty, AD LDS, AD FS, Active Directory
Optimalizace výkonu Windows autentizace a přístupu
- Kerberos, NTLM, čipové karty a certifikáty, SSL/TLS, Active Directory, SharePoint, Threat Management Gateway, Exchange
Kerberos Delegation
- Active Directory a Kerberos :-)
Efektivní správa Active Directory pomocí Forefront Identity Manager 2010
- FIM 2010, správa účtů a skupin, řízení přístupu, password reset, Active Directory
Plánování PKI ve Windows
- AD CS, SHA-1 vs. SHA-2, RSA, elyptic curves (EC), certificate templates, SSL/TLS, aplikace certifikátů
Lemý úvod do filosofie System Center Operations Manager
- SCOM, SCOM 2007, SCOM 2012, vysvětlení na prostředí Active Directory, DNS, DHCP a FS
Zažijte AD replikační problémy na vlastní kůži (1. a 2. část)
- USN rollback, tombstones, lingering objects, hesla řadičů (DC) a secure channel, infrastructure FSMO
Úúúúúúúž se děsně těším, jak si to užijeme!
|
| Určitě jste si všimli, že když kliknete pravým tlačítkem na PowerShell soubor s příponou .PS1, tak je tam nabídka Run with PowerShell. Ono to ten .PS1 soubor sice spustí, ale výstup neuvidíte, protože jenom tak problikne. Tak jsem si to přepnul, aby mi zůstal na obrazovce. Udělal jsem to v registrech.
Původní hodnota tam byla (upozorňuju, že HKCR je HKEY_CLASSES_ROOT):
HKCR\Microsoft.PowerShellScript.1\Shell\0\Command
Default = REG_SZ = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-file" "%1"
Tak jsem si tam doplnil -noexit:
HKCR\Microsoft.PowerShellScript.1\Shell\0\Command
Default = REG_SZ = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoExit "-file" "%1"
|
| Dnešní IIS 7.5 a FTP rychlovečka se vztahuje ke konfiguraci přístupu na FTP server pomocí uživatelů definovaných přímo na IIS. Nepotřebujete vytvářet účty v Active Directory, ani lokální, a prostě si vytvoříte účty pouze na IIS. Návod je tady.
Takže návod funguje dobře. Už jsem to dělal sice několikrát, vždycky ale po dlouhé době, a vždycky zapomenu na některé detaily, které pak chvilku trvají vyřešit.
Takže tu to je:
- musíte mít nainstalovánu komponentu (IIS role service) FTP Extensibility. To tam není výchozí volba. Bez toho to nefunguje a přitom to ani nehlásí žádné chyby
- nedivte se, že Microsoft FTP Service (FTPSVC) běží pod SYSTEM účtem. To je jen matoucí. On stejně chodí na disk pod účtem Network Service. Takže to zabezpečení konfiguračních souborů i FTP adresáře je v pořádku udělat pro Network Service. Přesně podle toho článku.
- Web Management Service (WMSvc) nemusí být spuštěn, aby to fungovalo. Stačí ho správně nastavit, ale běžet nemusí.
- V nastavení FTP Authentication stačí mít povolenu tu IISManagerAuth metodu. Basic zbytečně nepovolujte.
a mělo by to valit. |
| Možná jste si už všimli, že v ADčku si můžou i obyčejní uživatelé zjistit poměrně dost informací o ostatních uživatelích, skupinách a vlastně skoro o všem. Je dobré o tom vědět. Je to poměrně zásadní bezpečnostní vlastní výchozího nastavení, kterou je potřeba občas omezit, protože to prostě nechcete. Podívejme se jak to vlastně přesně je.
Bleskovka o zabezpečení a oprávněních v AD
Přístup do AD se řídí oprváněním na jednotlivých objektech (například user, group, computer atd.), organizačních jednotkách (organizationalUnit) a kontejnerech (container) a doméně (domain).
Oprávnění se:
- dědí z nadřazeného "kontejnerového objektu" (řekněme tedy něco jako složky na NTFS)
- každý nově vytvořený objekt získává nezděděná (explicitní) oprávnění v okamžiku svého vytvoření. Seznam těchto oprávnění se vezme ve schématu (AD schema), kde je přesně definováno pro každý typ objektu. Je to definováno v atributu defaultSecurity každého attributeClass ve schématu. To je docela rozdíl od NTFS, kde se pouze dědí. AD ještě přidává tento default security descriptor.
- objekty, které jsou členem speciálních skupin jako je Administrators, Server Operators, Backup Operators apod. se jejich zabezpečení každou hodinu navíc resetuje. Provádí to funkce AdminSDHolder, kterou provozuje PDC. Pokud je nějaký účet členem některé z těchto skupin, PDCčko mu vypne dědičnost a smaže veškeré ručně nastavené (explicitní) položky. A místo toho mu nastaví přesně ten seznam, který najde na objektu CN=AdminSDHolder,CN=System,DC=... Takže ho to úplně vyřadí z dědičné hierarchie a zruší mu vlastně i výchozí security descriptor. Mimochodem se to projeví atributem AdminCount = 1.
. - existují speciální tzv. confidential atributy. Jsou to například hesla, privátní klíče uživatelů, DPAPI master klíče, nebo BitLocker záchraná hesla a bloby. K tomu, abyste si mohli přečíst hodnotu těchto atributů, musíte je být schopni zapisovat :-) To znamená, že i když byste někomu dali explicitně schopnost číst Read All Properties, stejně by se do těchto atributů nepodíval.
- oproti souborovému systému, pokud nemáte oprávnění ke čtení nějakého objektu, nevidíte ho ani v seznamu objektů v nadřazené "složce".
Oprávnění ke čtení
Na úrovni domény je nastaveno toto dědičné (inheritable) čtení:
| Pre-Windows 2000 Compatible Access |
List |
All objects |
| Pre-Windows 2000 Compatible Access |
Read all properties Read permissions |
User objects Group object InetOrgPerson objects |
| Authenticated Users |
Read all properties Read permissions |
This object |
| Authenticated Users |
List |
This object |
Samozřejmě si tedy každý ověřený uživatel může přečíst informace o doméně samotné a její obsah v nejhornější úrovni, ale to se dalo čekat.
Z předchozího je ale vidět, že Windows 2000 Compatible Access je pekelná skupina. Jestliže do ní někoho dáte, bude schopen číst o ostatních uživatelích i skupinách úplně všechno. Tedy o těch, na ktere se to zdědí. A světe div se, ona obsahuje ve výchozím stavu rovnou skupinu Authenticated Users. A do hajzlu :-) Takže je samozřejmě best-practice tuto skupinu úplně vyčistit. Tam nemá nikdo co dělat. Existuje to kvůli NT 4.0, které si musí být schopni číst co chtějí.
Musíme se tedy mrknout ještě na AdminSDHolder objekt, abycho objekt, abychom zjistili, co si kdo přečte o adminech. V tomto okamžiku mě už zajímá i neděditelné oprávnění. Prostě přesně to, co je na tom objektu nastaveno
| Pre-Windows 2000 Compatible Access |
Read all properties Read permissions |
Admin objekty |
| Authenticated Users |
Read all properties Read permissions |
Admin objekty |
Takže je vidět, že na admin objekty si může každý. Jsou to přecejenom servisní uživatelé a není moc důvod blokovat na nich čtení. Prostě každý si o nich přečte všechno.
Podívejme se dále na výchozí oprávnění na organizačních jednotkách (organizational unit):
| Authenticated Users |
Read all properties Read permissions |
This object |
| Authenticated Users |
List |
This object |
| Authenticated Users |
Read Exchange Information |
All objects |
| Pre-Windows 2000 Compatible Access |
zděděné stejné jako na doméně |
All objects |
Takže i zde mohou všichni ověření uživatelé číst všechno o organizační jednotce a listovat jejím obsahem - tedy pokud mají čtení na konkrétní objekty ležící uvnitř této OU. Exchange Information je tak zvaný property set. Seznam jeho oprávnění je definován v Configuration partition ADčka. Podívat na komplet sezname se můžete například tady. Obsahuje to mailNickName, homeMDB a většinu dalších msExch atributů. Ale pro zajímavost to neobsahuje ani proxyAddresses, tedy seznam emailových adres neuvidíte.
No předposlední by nás mohli zajímat uživatelé (user):
| Everyone |
Change password |
This object |
| Authenticated Users |
Read General Information |
This object |
| Authenticated Users |
Read Public Information |
This object |
| Authenticated Users |
Read Personal Information |
This object |
| Authenticated Users |
Read Web Information |
This object |
| Authenticated Users |
Read Exchange Information |
This object |
| Authenticated Users |
Read permissions |
This object |
| Windows Authorization Access Group |
Read tokenGroups, tokenGroupsGlobalAndUniversal |
This object |
| Pre-Windows 2000 Compatible Access |
zděděné stejné jako na doméně |
All objects |
Z toho jsou zajímaví Everyone, kteří mohou měnit heslo (change password). To není ve skutečnosti tak nebezpečné, jak to vypadá. Změna hesla vyžaduje znalost jeho původní hodnoty. Jenom Administrators mohou heslo resetovat (reset password) bez jeho původní znalosti.
Na seznam všech atributů v property setech General Information, Public Information, Personal Information a Web Information se podívejte sem. Je to hoooodně dlouhý seznam, tedy skoro všechno. To co tam hlavně není najdete v property setech Logon Information a User Logon Restrictions.
Takže si každý sice přečte váš login a vlastně většinu všech hodnot, které jsou vidět na záložkách ve vlastnostech účtu v AD. Ale už se nedozví kdy jste se naposledy přihlásili (lastLogon), ani cestu na váš logon script (scriptPath), nebo profil (profilePath), ani se nedozví, jestli je váš účet zakázán, nebo si nemusíte měnit heslo (userAccountControl). Ani vaše členství ve skupinách (memberOf, ani tokenGroups, a tokenGroupsGlobalAndUniversal).
Zajímavá je tu skupina Windows Authorization Access Group. To je novinka ve Windows 2003. Jakmile si rozšíříte schema na verzi Windows 2003, přidá se ta mrška do default security descriptoru na uživatelských objektech. Její členové si pak mohou číst vaše členství ve skupinách z atributu tokenGroups a tokenGroupsGlobalAndUniversal.
Tahle skupina Windows Authorization Access Group je určena pro různé přístupové služby, jako jsou VPN servery, nebo třeba SharePoint a SQL server, pokud si potřebují číst členství uživatelů ve skupinách. Pokud má mít nějaký objekt také povolenu Kerberos Constrained Delegation (jak jsem o ní psal už tady), nebo dokonce Protocol Transition.
Už to skoro vypadá, že se Authenticated Users nedozví vaše členství ve skupinách. No nedozví se to jednoduše z atributu tokenGroups, to ne. Ale pokud by to projel zkrz celý strom skupin, tak se to dozví. Default security descriptor na skupinách je totiž tento:
| Authenticated Users |
Read all properties Read permissions |
This object |
| Authenticated Users |
Read Exchange Information |
All objects |
| Pre-Windows 2000 Compatible Access |
zděděné stejné jako na doméně |
All objects |
Co to tedy znamená ve zkratce?
Pokud máte výchozí obsah skupiny Pre-Windows 2000 Access Group, může každý uživatel číst úplně všechno (kromě confidential atributů). Pokud máte tuto skupinu prázdnou, nemůžete si přečíst jen velmi limitovanou množinu přihlašovacích a bezpečnostních atributů, jinak Authenticated Users mohou všechno. Včetně členství ve skupinách, byť dost komplikovaně.
Co když to chcete změnit?
Tak to se pěkně nadřete. Tahle změna není obvyklá, takže se budete potýkat s množstvím problémů, téměř v každé aplikaci. Možná ne za všech okolností, ale už jsem to řešil myslím u všech, s čím jsem se kdy setkal včetně takové blbiny jako je DHCP server. Samozřejmě se to dá vždycky vyřešit, ale nadřete se. Ale budete to mít bezpečné! A to já počítám!
Jen pozor - Pre-Windows 2000 Access Group můžete jednoduše vyprázdnit. Oprávnění pro Authenticated Users se odebírá špatně, protože je součástí default security descriptoru a je tudíž na všech objektech explicitně, nezděděné. Což je silnější dokonce více, než zděděné Deny Read. Takže jestli chcete odebrat Authenticated Users, budete to muset udělat nějakým rekurzivním skriptem, jednotlivě na všech objektech, jako jsem psal například tady.
Tak nashle!
|
Manage Subscriptions /_layouts/images/ReportServer/Manage_Subscription.gif /_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} 0x80 0x0 FileType rdl 350 Manage Data Sources /_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 351 Manage Shared Datasets /_layouts/ReportServer/DatasetList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 352 Manage Parameters /_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 353 Manage Processing Options /_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 354 Manage Cache Refresh Plans /_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 355 View Report History /_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} 0x0 0x40 FileType rdl 356 View Dependent Items /_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 350 Edit Data Source Definition /_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 351 View Dependent Items /_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 350 Manage Clickthrough Reports /_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 352 Manage Model Item Security /_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} 0x0 0x2000000 FileType smdl 353 Regenerate Model /_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 354 Manage Data Sources /_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType smdl 351 Load in Report Builder /_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} 0x0 0x2 FileType smdl 250 Edit in Report Builder /_layouts/images/ReportServer/EditReport.gif /_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 250 Edit in Report Builder /_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderDatasetContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 250 Manage Caching Options /_layouts/ReportServer/DatasetCachingOptions.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 350 Manage Cache Refresh Plans /_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId}&IsDataset=true 0x0 0x4 FileType rsd 351 Manage Data Sources /_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rsd 352 View Dependent Items /_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 353 |
|
|
|
|
|
| Toto je osobní blog
Ondřeje Ševečka. Obsah je poněkud bezpečnostně, ale také
hlavně Microsoft-centrický. Pokud jejich produkty z nějakého důvodu nemáte
rádi, raději to čtěte velmi opatrně. Ne že bych cizí software nějak
nenáviděl (no dobrá, kromě cizích antivirových programů), ale pořád tvrdím,
že se softwarem je to stejné, jako s auty - taky si do toho svého nebudete
montovat sedačky z Rolls Royce i kdyby byly pozlacené. |
|
|
|
 
|
|
|