Win Server course

KURZ WINDOWS SERVER - správa účtů a prostředků
- pracujeme v OS - Microsoft Windows Server 2022 21H2 (OS Build 20348.469)
 
 
HyperV - type 1 hypervisor (běží přímo na HW - x VirtualBox, který je type 2 - běží na OS)
- SW switche - privátní / externí - privátní vedou mezi sebou, externí se dá nastavit pro prostup do WAN
- checkpoint - binární image guesta, můžu vytvořit a vrátit se k němu
- 2 typy checkpointů:
- produkční - ideální pro ostré nasazení - uloží stav VM jako po řádném shutdownu
- standardní - ideální pro testovací provoz - uloží bitovou kopii aktuálního stavu, pokud na VM třeba běží databáze, může během procesu dojít ke ztrátě dat
- v HyperV settings můžu nastavit "enhanced session" - pak můžu sharovat clipboard, připojovat HW zařízení přímo k virtuálu atd - aplikace rdp (remote desktop protocol), uživatel můsí mít práva rdp usera
- je to jiný typ připojení než přes normální session
 
EDITIONS
- Windows Server 2016 Datacenter / Standard / Essentials - liší se hlavně licencováním, Standard má 1 host a 2 guest licence, Datacenter má 1 host a neomezeně guestů
- omezení v počtu jader procesoru, max 16 (legálně)
- licenční podmínky MS systémů jsou velmi složité, při sestavování čistě legálního serveru konzultovat, pro uživatelský přístup pak potřebujeme ještě CAL na jednotlivé users
 
- server s GUI - cca 25 GB
- server bez GUI - ServerCore - cca 4 GB
- Nano Server - cca 0,4 GB - ukončeno ve verzi 2019, dostupné jako kontejner
 
# sconfig //v cmd bez grafiky průvodce nastavením
 
PŘI INSTALACI
- lze zvolit mezi Server Core (výchozí je bez grafiky, pozor GUI nejde doinstalovat) a Server with Desktop Experience 
- Windows PE startují do RAMdisku, disky serveru jsou "offline"
 
ROLE SERVERU
- to jak se server nabízí uživatelům a co jim poskytuje za služby
 
SLUŽBY ROLÍ
- subkomponenty pod rolemi
- objeví se až když mám příslušnou roli nainstalovanou,
 
FUNKCE SERVERU
- funkce co nejsou pro klienty (např klient nepozná jestli mám disk zašifrovaný bitlockerem)
 
OVLÁDÁNÍ
- přes aplikaci Server Manager
 
Windows Deployment Services (WDS) - role serveru, můžu ho nastavit jako deployment, pokud instaluji nový host ze sítě, může ho využít uživatel
Deployment Image Servicing and Management tool (DISM) - nástroj na správu image, packages atd, můžu do image například doinstalovávat funkce; DISM pracuje se soubory .wim (windows imaging format), což jsou v podstatě
lépe uložené image OS, jeden file může obsahovat více verzí (home, pro, enterprise)
Microsoft Deployment Tool (MDT) - nástroj určený pro automatizaci instalace
Microsoft Management Console (MMC) - program kam si můžu přidávat volitelně administrátorské nástroje, se kterými pak pracuji;
- pozn. kdykoliv spouštím něco .msc (např services.msc), tak se spustí MMC.exe a okno se upraví aby zobrazovalo jen ten daný modul co jsem zavolal (přes task mgr se můžu podívat že běží mmc.exe)
 
 
pozn. než přišel PowerShell, šlo administrovat cmd přes JavaScript/VisualBasic atd, pořád vše funguje - potenciální security díra
 
 
#############################################################################################################################################################################################################################
########################################################################################### PowerShell #############################################################################################################
#############################################################################################################################################################################################################################
 
- sloveso - pomlčka - název objektu, se kterým pracuji
- v hranatých závorkách - nepovinné parametry
- pipe "|" - jako v linuxu, výstup z prvního příkazu je vstupem do druhého (např.: Get-Command | Measure-Object)
 
 
# Get-WindowsFeatures //vypíše feautres
# Get-Help //vypíše help, > Get-Help WindowsFeatures - vypíše info o WindowsFeatures
# Get-Command * | measure //vypíše kolik má powershell aktuálně k dispozici příkazů
# Get-ComputerInfo //vypíše info o počítači
# help <cmdlet> //vypíše help
# help <cmdlet> -
 
# sfc /scannow
# DISM /Cleanup-Image 
 
# Get-Command * -parameterName *feature* //vypíše všechny commands (*) které v sobě mají parametr feature
# Get-Command *service* -ParameterName *computername* //vypíše všechny commands které mají ve jméně service a můžu u nich použít parametr "computername"
# Get-Service a* //vypíše všechny služby který začínají písmenem a
# Get-Service a* | ft name, status //vypíše všechny služby který začínají písmenem a, ft - format table - udělá z ní tabulku, kde budou specifikované sloupce name a status
# Get-Service a* | Get-Member //zjistím co vše by šlo psát za pipe u třeba předchozího příkazu
# Get-Service | ft name, status, RequiredServices, DependentServices //takto může vypadat příkaz na jehož konci je tabulka se specifikovanými parametry
 
# Get-ADUser
# Get-ADUser -Filter * -Properties * |sort logoncount - Descending | ft name, sid, office, logoncount
 
# Get-Service | Out-Gridview | ft name, status, RequiredServices, DependentServices //grafický výstup v novém okně
# Get-Service | Out-Gridview -OutputMode Single | ft name, status, RequiredServices, DependentServices //output mode single - v novém okně můžu vybrat co chci a to se předá do pipe
# Get-Service | Out-Gridview -OutputMode Single | Stop-Service //např zde můžu v novém okně vybrat službu, po odkliknutí "okay" se předá do pipe a projde dalším příkazem (zde stop-service)
 
# Get-Command * -ParameterName *computer* | measure //vypíše počet příkazů, kde je parametr "computer name" - můžeme něco dělat vzdáleně
# Enable-PSRemoting //zapíná se na OS, který bude ovladatelný - poskytuje příležitost pro někoho jiného, aby ho remote ovládal (bude slave) - vždy potřebuji ale admin práva (není to bezpečnostní díra)
# Invoke-Command -ComputerName <name> -ScriptBlock {script} //co napíšu do složených závorek se provede na specifikovaném počítači (vzdáleně)
# Invoke-Command -ComputerName <name> -ScriptBlock {Get-ComputerInfo | ft Ostype, .....}
 
# Out-File <cesta k souboru> //výstup do textového souboru
 
1) zvolím příkaz (např Get-ADUser)
2) zkusím jaké parametry může mít (Get-ADUser | Get-Member)
3) může to po mně chtít filtr, můžu použít např *, občas musím napsat i že chci všechny parametry (??) # Get-ADUser -Filter * -Properties* | Get-Member
4) vyčtu co za parametry můžu použít
5) naformátuji do tabulky pomocí ft za pipe
 
> takže nejprve zjistím pomocí Get-Member, co všechno můžu zjistit vypsat, a pak to pomocí ft (format table) vypíšu
 
// když pustím session a virtuál běží, kdo vytváří GUI?
// kam se uklídají checkpointy a jak jsou velký?
 
# winrm qc //stejná funkce jako Enable-PSRemoting, čili: spustí funkci winrm, nastaví ji na automatický start se systémem, povolí její prostup na firewallu
# winrs -? //windows remote management, můžu spouštět a operovat se vzdáleným strojem
# winrs -r:<name> set //vypíše sadu proměnných na vzdáleném stroji
# winrs -r:<hostname> cmd.exe //spustí command prompt na vzdáleném stroji, všechny příkazy se budou aplikovat jako kdybych je psal tam
 
#############################################################################################################################################################################################################################
########################################################################################### ACTIVE DIRECTORY #########################################################################################################
#############################################################################################################################################################################################################################
- Azure Active Directory (nyní Entra ID) je v podstatě cloudová AD - standardní Active Directory je on-premise řešení
 
- Microsoft odděluje:
- autentizace - kontrola identity, má určitý výsledek - buď se v systému identita najde nebo ne, výsledkem je SID (Security ID) 
- autorizace - přidělení určitých oprávnění na základě identity, kontrola práv
- tato oblast se v Microsoftu jmenuje PIM/PAM (Priviledged Identity Management a Priviledged Access Management) - přidělování oprávnění atd.
- pozn.: primární otázkou u bezpečnosti je: jaké používám bezpečnostní protokoly?, často se bezpečnostní auditoři zaměřují na detaily, které nejsou tak zásadní jako například že mám povolené NTLM1 či NTLM2 (zastaralé protokoly)
- www.sevecek.com - dobré stránky na učení o těchto problematikách
 
# whoami /all //zobrazí vše ohledně mého loginu, SID i členství ve skupinách
 
autentizace:
- primární - musí vždy proběhnout, může být jen lokální a doménová 
- sekundární- může být lokální, doménová, cloudová (MS - Entra ID (Azure Active Directory), MSACCOUNT / další)
 
- access token - bezpečnostní známka, kde jsou všechny moje identity ze kterých si nesu práva
- workgroup - pokud nemám doménu, počítače ve stejné workgroup si mohou sdílet prostředky navzájem, designované pro menší sítě
- AD DS - role serveru, active directory domain services - po instalaci se ze serveru stane doménový řadič (domain controller)
 
- uživatelské !lokální! účty si můžu zobrazit přes regedit HKEY_LOCAL_MACHINE > SAM > Domains > Account > Users // můžu si nainjektovat hashe ostatních hesel/nainjektovat svoje heslo na ostatní účty
// můžu svoje heslo např nainjektovat do admin účtu přes regedit - SAM je velmi nezdabezpečená!
// zabezpečení můžeme zvýšit aspoň šifrováním disku bitlockerem - live linuxem se jinak můžu připojit k systému a lézt do toho všeho
// pokud se do registru nemůžu dostat, můžu si pravým kliknutím přidat oprávnění pro svůj účet
 
- Active Directory je adresářová služba, založená na LDAP, v její databázi jsou uloženy naše identity, které AD ověřuje
- funkci AD provozuje server, kde je nainstalovaná role ADDS - tento server se označuje jako doménový řadič (DC - domain controller)
 
- části:
- fyzické - Doménový řadič
- Data store ( C:\Windows\NTDS\NTDS.dit )
- SYSVOL ( C:\Windows\SYSVOL )
- Global Catalog Servers// tento řadič má více informací než standardní DC, pokud mám ve firmě pouze jeden DC, musí být Global
- Read-only Domain Controllers (RODC)// tento řadič slouží pouze pro čtení, nemůžeme do něj zapisovat (např. nelze změnit heslo z pohledu usera)
 
- logické - Domain
- Domain Tree// vznikají spojením více domén, vztahy parent-child, tree-root (obousměrné), existují i jednosměrné
- Forest
- AD Schema
- AD Site
 
- ve chvíli kdy mám více DC - musí se např. databáze účtů replikovat, pozor na to že některé změny se propisují až za nějakou dobu
 
# whoami /all // username: jméno se skládá z NetBIOS (doménového jména) / jména usera,
// SID - moje ID plus doménová část (pro všechny v jedné doméně stejná - GUID - globally unique ID) a na konci část mého unikátního doménového čísla (RID - relative identifier)
 
- Domain Tree - vzniká spojením více domén, např.: hlavní část firmy mám v Americe (to bude forest root doména), druhou v Evropě - jsou mezi nimi vztahy (parent-child trust, tree-root trust)
- toto jsou zároveň tzv. DNS zóny
- když nedědím název, jsem v 2. DNS zóně
 
- doména je rozdělena na - organizační jednotky (OU - organisation units) - objekty v AD, které mají tři hlavní účely - kontejner na separaci objektů, nejmenší objekt na který se dají aplikovat GPO
- kontejnery - jsou to systémové objekty na které nelze aplikovat group policy, obsahují další objekty
 
- doména (NTDS.dit) je rozdělena na tři logické části
- domain partition - praktická část, všechny objekty
- configuration partition- nastavení
- schema partition- popisuje strukturu a možnosti objektů (kolik mám tříd objektů, kolik atributů a vazbu mezi nimi) - editovatelné
 
# regsvr32 schmmgmt.dll //zaregistrujeme do registru dynamicky linkovanou knihovnu schema management - uschopnil jsem systém aby mohl editovat AD schema
// každá třída má ještě relationships - každý objekt má taky nějaké nadřízené objekty a ty můžou mít mandatory attributes, tudíž ty mandatory attributes se dědí
 
- přesunovat soubory z a do AD lze pomocí nástroje NTDSUtil.exe
- ADSI Edit - přístup do AD na servisní úrovni (něco jako regedit)
 
- Global Catalog - musí být v každé AD doméně, má index všech objektů z forestu (read only), drží i některé atributy z ostatních domń ve forestu, první DC v doméně je zároveň GC
 
# Get-ADDomainControler //vypíše info o DC
 
Instalace AD
- instalace role AD Domain Services // # Install-WindowsFeature AD-Domain-Services
- následné povýšení serveru na DC // Install-ADDSDomainController
- následná kontrola IP adresace + musím nastavit DNS
 
 
Domain functional level (DFL) - funkční úroveň - hodnota znamená jestli preferuji zpětnou kommpatibilitu nebo maximální vlastnosti; nemůže být nižší než FFL
Forrest functional level (FFL) - musí být kompatibilní s ostatními řadiči v doménovém forrestu - např. kvůli replikacím atd.
- pozn. nejnovější functional level je 2016 - v AD se nic dramatického už nevylepšilo v novějšich verzích Windows Serveru
- funkční úrovně můžu měnit - pravým tlačítkem v Active Directory Users and Computers kliknu na doménu - položka Raise domain functional level
 
- FSMO role na DC se neaktualizují samy, musíme to udělat ručně (PDC emulátorové role)
- BPA - best practices analyzer - analyzuje doménový řadič, zda je vše v pořádku
- v celém forrestu je jen 1 DC, který je schema controller - pouze na něm lze editovat schéma (atributy, třídy atd.)
- zároveň i RID master je pouze 1 DC v doméně (ale ne ve forrestu)
 
Základní správa tedy:
- AD Users and Computers
- AD Sites and Services
- AD Domains and Trusts
- AD Schema // nutná registrace pomocí příkazu regsvr32.exe schmmgmt.dll
- AD Administrative Center// grafické, dole píše příkazy co klikám přes GUI, lze zkopírovat a udělat z toho menší jakoby skripty
 
 
# New-ADUser <name> -Path "<path>" -AccountPassword (read-host -AsSecureString) -Enabled $true <heslo> // <path> musí být specifikována jako "ou=organizacni_jednotka,dc=organizacni_jednotka,dc=local"
// tímto v PowerShellu vytvořím usera s heslem do specifikované OU
- SamAccountName musí být vždy jedinečné v celé doméně
- UserPrincipalName musí být jedinečné v celém forrestu // čili to, že se mi nedaří vytvořit nového uživatele může mít za příčinu jednu z těchto věcí
// někdo v jiné doméně (ale stejném forrestu) může mít stejné UserPrincipalName
- povinné atributy jsou dva (v některých konzolích 3) - Full Name a SamAccountName
- vlastnosti uživatelů - klíčová je záložka "Account" // pozn.: důležité mít v AD Users and Computers > View > Advanced features tuto volbu zaškrtnutou
- mazání uživatelů - Microsoft doporučuje uživatele nemazat, spíše přesunout do speciální OU kde jsou všechny objekty ve stavu "disabled" a pomocí Group Policy jim zakázat spouštět jakékoliv aplikace
- při replikaci z dalších DC by navíc mohlo dojít k tomu, že se objekt nareplikuje zpátky
- pro řádné smazání se musí přidat atribut "isDeleted" na "$true" - objekt se proreplikuje, není vidět a za nějakou dobu (180 dní) se opravdu smažou (??)
- obnovu objektů (náhrobků) umí například LDP.exe
 
- sysinternals suite - z MS webu lze stáhnout sadu nástrojů které pracují na systémové úrovni (např AdRestore - umí obnovovat smazané objekty); useful i na jednotlivých stanicích
- volitelný odpadkový koš - lze zapnout "Enable Recycle Bin" v AD Administrative Center
- hesla uživatelů jsou uložena pouze jako hashe v NTDS.dit // pokud v nastavení účtu v záložce account zaškrtnu "store password using reversible encryption", je heslo opravdu uložené v AD, a dá se dešifrovat = bezpečnostní díra
 
Skupiny v AD
- groups jsou skupinové objekty, do kterých můžu řadit nejen usery, ale také počítače, objekty počítačů nebo ostatní groups
- např.: authenticated users - skupina, do které se objekt přiřadí pokud je úspěšně autentizován
- uživatel má díky členství v groups jejich práva
- při vytváření nové group musíme zadat
- název skupiny
- group type (security - má přidělena nějaká práva / distribution - pouze adresační prvek) 
- group scope - rozsah jejího použití (local - dá se použít jen v dané doméně; global - dá se použít v celém forrestu) a zároveň membership (koho můžu do té skupiny strkat);
- Local (použití v doméně, forrestový membership); Global (forrestové použití, doménový membership) ; Universal (forrestové použití, forrestový membership)// crazy pozn.: v MS materiálech se vyskytuje nejprve U - user; pak A - Account; nyní I - identity - vše referuje na to stejné
 
- best practice- Identity > Global Group > Domain Local Group (a té pak přiřazovat oprávnění)- globální skupiny používat jako typologie uživatele ( User_Eva > Group_Sekretářky > Print_Access_Group)
- Global Group (Group_Sekretářky) pak přiřazovat do DL groups, které mají určitá oprávnění, která pak nastavuji přes group policy editor - přehlednější
 
Výchozí skupiny
- nejvyšší práva mají Enterprise Admins - správci celého forrestu
- potom Administrators, buď global nebo local
- potom Operators
- Server Operators - mohou se starat o síťové služby a o sdílené složky (co je sdíleno, s jakými právy atd.)
 
- je dobré vytvářet a ukládat queries - např.: vytvořím dotaz na zobrazení všech uživatelů - new query, v poli "advanced" dám třeba "telex number" is not "nejaka silena hodnota", query spustim poklikáním
 
Speciální skupiny a identity
- Everyone// dost často se řeší jestli používat Everyone nebo Authenticated Users - autentizovat se musí pro vstup do domény každý 
- Authenticated Users// jsou zde i počítače, objekty prošly autentizací
- Anonymous logon
- Interactive
- Self
 
- Everyone i Authenticated Users vyžadují autentizaci (pokud chci povolit anonymní uživatele, musím použít skupinu "Anonymous Logon"); je mezi nimi rozdíl pouze v objektu "Guest" - v Everyone je, v Authenticated Users není
- rozdíl mezi skupinami je minimální, není to žádná security díra, protože i Guest má přihlašovací údaje, jen je v defaultu disabled
 
Computer accounts
- i počítače v doméně podléhají autentizaci, proto patří do skupiny Authenticated Users - mají elektronickou identitu; login končí znakem $, heslo (128 znaků) si mění automaticky každých 30 dní
- výchozím místem kde se vytvářejí účty počítačů v AD je kontejner Computers
- člověk musí zadat heslo, jehož hash se kontroluje oproti DC
- prvně se ale musí ověřit i počítač - Kerberos dělá dvojí autentizaci; i počítače tedy mají svoje heslo, které se vytváří automaticky (vůbec o něm nevím, ale probíhá jeho kontrola)
- může se mi stát, že toto heslo bude špatně - špatně se autentizuje počítač a nikdo se z něj tedy nepřihlásí
- v event vieweru - event 4624 znamená logon
 
Připojení PC do domény
1. způsob
- musím zkontrolovat síťařinu - prostup PC do sítě, dostupnost DNS serveru
- v ovládacích panelech > system and security > advanced system > system properties > computer name - Member of <domain>
2. způsob
- přidám počítač do OU "PCs"
- musím zadat jméno a upravit skupinu (/přidat usera), co bude moct počítač připojit do domény
3. způsob
- # djoin.exe /? // funguje i pro offline připojení do domény - na DC udělám djoin, přenesu si soubor na flashce na PC a djoinem ho ze souboru načtu - až se pak PC připojí tak už bude přidán do domény
 
- občas se na PC rozbije tzv. trust relationship (např. nesedí heslo atd., nebo síť může mít příliš velkou latency, během které expiruje platnost Kerberos ticketů - toto lze řešit např. QoS na aktivních prvcích, ne v AD)
- detekce problému - Nltest.exe /sc_verify:<domainname> ; Test-ComputerSecureChannel -Repair
- možnosti opravy - odpojení a následné připojení PC do domény; Netdom.exe /resetpwd (toto ale není v klientských OS); Reset-ComputerMachinePassword -Server <servername> -Credential <credentials>
 
Delegace pravomocí
- lze dělat na kontejnerech i na OU
- průvodce umí pouze přidávat, neumožňuje editovat či zobrazovat co jsem udělal - dělá pouze "usnadnění" zápisu nových práv do karty security
 
- pozn.: - vytvoření sdílené složky - vytvoření "publikace" - deklaruji že na nějakém počítači je nějaká sdílená složka (zadávám network path)
- jako uživatel pak dojdu do Windows Exploreru - Network - nahoře "Search Active Directory" - i obyčejný uživatel v některých případech může zobrazit všechny uživatele v doméně a nedá se tomu zabránit
 
#############################################################################################################################################################################################################################
########################################################################################### GROUP POLICY #########################################################################################################
#############################################################################################################################################################################################################################
 
- Microsoft má dva pilíře bezpečnosti (LSASS.exe)
- práva// v linuxu má třeba root práva automaticky, u MS ne; best practice je přidělovat práva přes groups
- policies// většinou se řeší přes OU
 
- potřebuji dvě povolovací známky, abych mohl udělat nějakou činnost - můžu být Enterprise Admin ale pokud jsem zakázán pomocí GPO, nemůžu dělat prakticky nic (čili můžu si jedním kliknutím zaříznout veškerou činnost)
- u každého uživatele tedy řeším dvě věci - z groups má práva a z OU se na něj vztahují politiky (best practice)
- práva se řídí "prioritou zákazu" - když uvnitř subsystému práv něco zakážu, má prioritu ten zákaz (pokud je uživatel ve dvou skupinách, jedna má věc X povolenou a druhá věc X zakázanou, bude ji mít zakázanou)
- politiky toto nemají, enabled i disabled mají stejnou váhu; GPO přiřazuju ke konkrétním OU, a na všechny objekty v tomto OU začne platit
 
GPO umí
 - změna nastavení PC nebo OS, změna nastavení uživatele, spouštění skriptů, instalace SW, mapování disků/tiskáren atd
 - nastavitelných jednostlivostí jsou tisíce
 
GPO má dvě části
- Computer configuration//
- User configuration//
 
- jsou věci které jdou nastavit pouze pro uživatele, věci které jdou nastavit pouze pro počítač a věci které jsou nastavit pro oba
- např.: smazat všechny ikony na ploše je věc uživatelská (desktop je v user configuration), zákaz aplikace winword.exe - v computer config to zakážu pro všechny uživatele na daném zařízení, v user config pro uživatele
- jelikož se první autentizuje v AD počítač a pak až teprve uživatel, systém první vyhodnocuje computer configuration
# gpupdate // CLI příkaz pro refresh GPO, může ho použít i uživatel - sám o sobě nedokáže pracovat remotely, pokud ho chceme spustit vzdáleně, musíme použít nějakou variantu remotingu
// většinou updatuje jen změnové údaje, parametrem force můžu říct ať updatuje úplně všechno
# Invoke-gpupdate // PS příkaz který dělá to samé, lze remotovat
- konzole GPMC - umožňuje kliknout na jakoukoliv OU a udělat auktualizaci zásad
 
- lokální politiky se aplikují hned, doménové mají intervaly 90 až 120 minut / lze ručně vynutit (gpupdate) / občas musím stanici i restartovat (v oficiální MS dokumentaci až 5 restartů) //pozn.: PC si může po restartu stáhnout třeba jen část, za další restart další část, pokud změním na DC v GPO třeba jen jednu věc a chci aby se mi propsala hned, můžu restartovat vážně hodněkrát a nikdy nevím jakou část si PC zrovna stáhne, takže to teoreticky můžu restartvoat jak kokot třeba 50x reálně
 
Lokální politiky
- C:\Windows\System32\GroupPolicy
- lokální objekt zásad platí pro lokální autentizaci, ale v rámci domény má nejnižší prioritu; pokud se přihlašuji lokálně, platí lokální politika, pokud doménově tak doménová
- existuje možnost mít více lokálních politik (např. pro různé účty)
- editace pomocí GPEdit.msc
 
Doménové politiky
- uložené částečně v databázi AD a v adresáři SYSVOL
- editace pomocí Group Policy Management Console (GPMC) - řídím vytváření nových GPO objektů, jejich linky, zálohování
- editace pomocí Group Policy Management Editor (GPME) - editace 
- pro správu GPO z klientského OS ke stažení nástroj - Remote Server Administration Tools (RSAT)
 
pozn.: MLGPO - multiple local group policy object (??)
 
Aplikace politik
- GPO si klienti stahují sami z DC (ze SYSVOLu)
- na klientech se o toto stará služba Group Policy Client, aplikování provádí Client Side Extensions (CSE); seznam CSE je v registrech (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions)
 
GPO má dvě části
- Container - v AD je jako objekt s atributy
- Template - co GPO nastavuje a jak; (adresář v sysvol, GPT.ini, registry.pol)
 
Výchozí doménové GPO
- default domain policy - politiky na hesla, vlastnosti Kerberos protokolu, Mastavení EFS Recovery Agenta atd.
- default domain controller policy - user rights assignments, nastavení auditování atd.
- dá se udělat GPO restore pomocí DCGPOFix.exe
 
- GPO lze navázat na 
- AD Site (ve výchozím stavu se nezobrazují)
- AD Domain
- AD Organizational Unit
- GPO nelze navázat přímo na
- Uživatele
- Skupinu
- Počítač
- Systémové kontejnery
 
- pro aplikaci GPO je vždy třeba vytvořit link, samy o sobě jsou uloženy v Group Policy Objects ale pokud nejsou linknuté na OU, neaplikují se
- GPO nezle navázat přímo na uživatele, filtrovat lze podle uživatele, počítače, skupiny - oprávnění Allow/Deny; pro aplikování GPO musí být zaškrtnuté - read, Apply Group Policy 
- reference guide - https://www.microsoft.com/en-us/download/details.aspx?id=25250 - excel soubory ke stažení
- hodně podstatných nastavení je zde - user config > policies > administrative templates > System //fungují zde filtry - když nevím jak se politika jmenuje
- spouštění programu po logonu, remove lock from locked account, atd
- existují ještě i preferences - tam si můžu zvolit spoustu dalších věcí co se dají aplikovat na objekty v doméně, zde item targeting = určím podmínky které musí objekt splňovat aby se něco uplatnilo
- Group Policy Modeling - určuji jaké GPO se budou aplikovat při různých situacích, např. jak dopadne politika když bude fungovat jen 1 řadič a bude pomalá síť
- loopback processing znamená, že se řídí vždy pomocí Local System group policy, ne doménovým a ne uživatelským policy
- v záložce detail lze (???) způsobem přes wizard vygenerovat dokument kde je napsaný vždy které je winning GPO pro danou věc
 
#############################################################################################################################################################################################################################
########################################################################################### NETWORK CONFIG #########################################################################################################
#############################################################################################################################################################################################################################
DHCP server
- IPv4 - klasicky static/dynamic
- DHCP ( DHCPDISCOVER > DHCPOFFER > DHCPREQUEST > DHCPACK ) // výchozí lease adresy u MS je 8 dní, většinou v půlce doby platnosti se lease prodlužuje
- instalace DHCP serveru - přidám v programu Server Manager roli serveru - DHCP; po instalaci jdu do konfigurace - pravým tlačítkem musím dát "authorize"
- New Scope - vyberu pool adres - volím adresy ze stejné sítě jako DHCP server, i stejnou masku
- volitelně mohou DNS a DHCP spolupracovat spolu, musí se konfigurovat na obou stranách - funkce je, že pokud se změní moje IP adresa, dynamicky se toto změní i v DNS databázi
- DHCP rezervace - pevné spojení MAC adresy a IP adresy - zaručená jedinečnost
- Scope Options - nepovinné údaje, typicky se ale zadávají 2 options - adresa DNS a adresa default gateway (v záložce Server options - aplikování pro celý server, Scope options - jen pro můj scope)
- 003 Router - to je default gateway
- 006 DNS Server - adresa DNS Serveru
- dalších spoustu celkem dost zajímavých options (NTP, atd.)
- DHCP security - lze jednak ověřit DHCP server v AD doméně, druhak nastavit na L2 DHCP snooping - nastavím na switchi, na kterém interface bude trusted DHCP server - pokud se někdo připojí jako DHCP server na jiný port, bude zakázán
- lze mít více DHCP serverů, lze nastavit partnership a v % jim určit load balancing
 
DNS server
- domain name resolution, hierarchická struktura - úplně navrchu je root (reprezentována tečkou), pod ním top-level domain (cz, sk, org, net,...), second-level (gopas.cz, seznam.cz) atd.
- celý svět je rozdělen na DNS zóny, v každé je minimálně 1 DNS server (autorithative DNS server), který drží veškeré záznamy z celé té zóny 
- DNS je hierarchický distribuovaný systém doménových jmen
- překládá jména na IP adres (A záznam), jména na jiná jména, IP adresy na jména; má na starosti i lokalizaci služeb (záznamy typu MX - SMTP servery; záznamy typu SRV - Active Directory; ...)
 
- počítače mohou mít jména:
- Host Name- až 255 znaků //typy překladových metod - pořadí 1)Cache, 2)LLMNR, 3)DNS; (názvová cache # ipconfig /displaydns) pozn.: dobré na zobrazení DNS jmen, kam se uživatel připojoval; když se dostanu do souboru host, můžu zakazovat uživateli přístup např. na různé stránky
- NetBIOS Name - až 16 znaků (resp. 15, poslední znak označuje službu); jsou označeny jako legacy, ale pořád jsou v doménách zapnuté
- NetBIOS jsou pořád jako "záložní" varianta používané, pokud aplikace nenajde HostName, zkouší ještě NetBIOS; ncpa.cpl - IPv4 config - Advanced TCP/IP settings - WINS - NetBIOS setting; obecně je doporučeno toto vypínat
- na DHCP serveru v Server Options - Advanced - Vendor Class: Microsoft Options - 001 Disable Netbios Option //vypne NetBIOS usage všem DHCP klientům (jen DHCP klientům!)
 
- instalace - přidám roli serveru jako DNS, musím mít práva a statickou IP adresu
- DNS Manager - Forward lookup zones // zde můžu třeba přidávat CNAME (aliasy, pod kterými pak lze přistupovat k IP adresám, DNS dělá překlad)
- FQDN - fully qualified domain name // když mam v DNS Manageru doménu gopas.local, v ní vytvořím poddoménu test, v ní poddoménu ahoj, v ní CNAME (odkaz na někoho třeba ve vyšší doméně) třeba dement
// bude FQDN co zadávám # ping dement.ahoj.test.gopas.local
 
Zóny DNS 
- dopředné zóny - překlad jmen na IP adresy
- reverzní zóny - překlad IP adres na jména
- Každá zóna (dopředná i reverzní) může dále být:
- Primární- plná kopie zóny, vždy zapisovatelná, obsahuje všechny typy záznamů// není povinná
- Sekundární- plná kopie primární zóny, read only// je povinná
- Stub- kopie primární zóny; pahýlová, není autoritativní, není plnohodnotná; slouží pouze pro nalezení DNS serverů
 
- nová zóna - pravým tlačítkem spustím wizard, zvolím typ zóny (na doménovém řadiči lze zvolit i možnost udělat integraci s AD, což Microsoft doporučuje, ale pozor, má to svá specifika!)
- dynamické updates - možnost jen když máme integraci s AD (při provázanosti s DHCP serverem je toto jasná volba zabezpečení, nikdo se nemůže vydávat za DHCP rogue server a upravovat záznamy DNS)
- při tvorbě sekundární zóny (na jiném DNS serveru) zprvu nefunguje transfer, musíme specifikovat kdo bude moct mojí databázi načítat
- AD integrated zóny mají svá specifika
- delegace zón - můžu deklarovat, že o doménu která je vedena na mém DNS serveru se bude starat někdo jiný (jen v DNS)
- u DNS i u DHCP jdou nastavit i policy (u DHCP - přiděl adresu, pokud jsou splněné nějaké podmínky); u DNS např.: na stejný dotaz budu vždy podle určitých podmínek odpovídat nějak jinak (např. čas atd)
- DNS dotazy - rekurzivní (zeptám se a počkám, až se vrátí odpověď pozitivní či negativní) / iterativní (zeptám se a spokojím se i s "nejlepší možnou" odpovědí)
- DNS odpovědi - Autoritativní - odpovídál server, který má DNS zónu přímo "na sobě"
- Neautoritativní - odpověď je získaná z cache/forwarderu
// když není odpověď na dotaz v DNSServerCache, podívám se do sekce Conditional Forwarding, zda nemám záznam o tom kdo by na dotaz odpověďět mohl
// můj firemní DNS sever může forwardovat jakékoliv vnější dotazy, co nejsou někam do mnou vedených domén, do DNS Serveru například providera
- pozn.: například v internetu - hledání www.seznam.cz -> DNS Servery si posílají dotazy tak, že můj požadavek jakoby "rozčlení" - nejdřív se zeptám roota, ten mě odkáže na DNS server domény "cz", ten na DNS co má "seznam"
 
Souborový systém a NTFS oprávnění
- souborové systémy NTFS a ReFS disponují možností nastavovat oprávnění (třeba FAT32 toto nemá) //ReFS je nejnovější Microsoft data storing technologie, použití v data centrech
- oprávnění jsou formou ACL
- priorita zákazu není absolutní - absolutní je priorita explicitních oprávnění oproti implicitním (zděděným) //pokud mám složku kam uživatel "Filip" nemá přístup, ale v ní je soubor ke kterému mu explicitně povolím přístup, pak se na něj dostane
- jsou 4 možnosti:
- Zděděné (implicitní) - allow/deny
- Explicitní - allow/deny
- existují i sdílená práva 
- sdílení složek- advanced sharing - nasdílím, přidám security principals co ke složce budou moct přistupovat a jejich oprávnění
- když už, používat advanced sharing položku!!! nikdy ne tu první "share", protože tím se z nějakého důvodu vymažou všechna práva co tam byla jinak nastavená
- NEPOUŽÍVAT SDÍLENÁ PRÁVA, POUZE LOKÁLNÍ 
- # Get-SmbShare; # New-SmbShare
- Computer Management - Create a Shared Folder Wizard//access-based enumeration - zobrazí uživateli složku jen když tam má přístup
- stínové kopie souborů - jedná se o "verzování" souborů a adresářů pomocí služby VSS (defaultně 2x denně)
- ze stínových kopií lze obnovovat předchozí verze souborů
 
- instalace přes server roles - po rozkliknutí se nabízí další možnosti // File and Storage Services > File and iSCSI Services
- File Server- Základ pro sdílení složek
- Deduplikace dat- Nemá GUI, dá se konfigurovat přes PS nebo Server Manager// pozn. existuje i hardware deduplikace (NetApp, EMC-Dell) - po 32kbit kouskách porovnávám kousky dat (na dedikovaném zařízení); zajímavá tematika z hlediska cloudu a data center
- v případě, že používám úložiště s deduplikací je na místě implementovat robustnější redundancy mechanismy - více logicky uspořádaných dat závisí na těch, co jsou uspořádané fyzicky, je dobré mít např. častější backup/replikaci
 
DFS
- masivní nadstavba nad sdílenymi složkami; čistá nadstavba (konfigurací nic, co už existuje neomezím)
- namespace - vymyšlená virtuální složka, která funguje jako nadstavba - do ní přidávám složky (až 60 tisíc složek na 1 namespace); klient si může přimapovat celý namespace
- 3 vrstvy (targets - folders - namespace) - v namespace můžou být namapovány složky např. z různých serverů, případně i z různých domén
- můžu spojovat i namespaces do sebe
- instalace - přidám roli serveru "DFS Namespaces" v záložce File and Storage Services
-ovládání pomocí nástroje DFS Management - New Namespace Wizard
- Domain-based - umožňuje doménovou adresaci dat (3 úrovně dat podle toho jestli jsou u mě na serveru nebo v jiná doméně)
- Stand-alone 
 
FSRM - file server resource manager
- podstatná součást každého file serveru, ovládá se přes File Server Resource Manager; (kdyžtak dokoukat na videích na yt)
 
Windows Firewall
- host based firewall integrovaný do Windows, má příchozí a odchozí pravidla
- Má tři profily nastavení // aktuální profil zjistíme přes PS příkazem # Get-NetConnectionProfile
- Domain- nikdy nevybíráme ručně, nastavuje se vždy automaticky
- Public- nastavujeme ručně, sám se nastaví, když nemáme nastavenou gateway na NIC
- Private- nastavujeme ručně, je méně restriktivní než Public
- logování do souboru nebo pomocí auditingu do security logu
- zastavení služby firewall nevypíná
- nastavení se dá exportovat do souboru (.wfw), můžu si třeba nakonfigurovat na PC, nechat si to schválit auditorem a pak to naexportovat do GPO domény
 
UAC - user account control
- má zabránit "neautorizovaným" změnám v konfiguraci, třeba že by mi něco mohl konfigurovat nějaký škodlivý kód (pojistka proti background útokům)
- nastavení v msconfig - záložka Tools (UserAccountSettings.exe)
- pomocí local policy/group policy // Local Policies - Security Options
 
BitLocker
- vestavěná technologie šifrování
- Volume-Based
- MS doporučuje, aby minimálně disk C byl zašifrován BitLockerem; lze ho samozřejmě použít i pro externí disky
- GPO:
- Administrative Templates - Windows Components - Bitlocker Drive Encryption; pro systémové disky - Operating System Drives
- Důležité i "Choose how users can recover BitLocker-protected drives" - zde můžu určit i záchranné informace
 
EFS - encrypted file system
- není to konkurence BitLocker, používá se na něco jiného
- šifrování jednotlivých souborů nebo adresářů, je potřeba EFS certifikát
 
Password Policy
- V GPO:
- Computer Configuration - Windows Settings - Security Settings - Account Policies - Password Policy
- v MS nejde aplikovat jiné password policies pro různé OU/objekty domény - nastavuje se pro celou doménu // pokud chci mít různé password policies, MS doporučuje prostě udělat více domén
- granulární politika hesel - Password Setting Objekty // moc často se nepoužívá, dělá se v AD Administrative Centru (Server Manager) (??) DDP - FGPP - PSC - PSO - PSS
// AD Administrative Center - <Domain> - System - Password Settings Container
// jméno, precedence (pro případnou kolizi s další politikou)
 
- account lockout policy se navztahuje na vestavěného administrátora (konec SID má 500); potenciální bezpečnostní díra, pokud znám jeho login jméno, můžu na něj bruteforcovat (nevztahuje se na něj politika lockout)
 
AppLocker
- nástupce Software Restriction Policy
- umí omezit spouštění aplikací a prostředků
- v GPO
- User Configuration - Administrative Templates - System- Don't run specified Windows application// zvolím, jaké aplikace se mohou spouštět
- Custom User Interface// můžu zvolit, jaká aplikace bude uživatelským interface
- Ctl + Alt + Del options - Remove ...// zvolím možnosti SAS 
 
- Computer Configuration - Policies - Windows Settings - Security Settings - Software Restriction Policies// pravidla jsou defaultně co není zakázáno, to je povoleno
- AppLocker - je závislý na systémové službě "aplikační identita" (která standardně neběží, tudíž ji musím spustit); // pravidla jsou defaultně co není povoleno, to je zakázáno