Zabezpečenie Servra

Prečo je potrebné server zabezpečiť?

Je jasné že server musí byť zabezpečený proti útokom hackerov pretože je to citlivý bod v rámci organizácie, ale otázku v nadpise som myslel skôr "Ako to, že server nie je zabezpečený automaticky?"
Ako je možné, že Microsoft distribuuje nezabezpečené operačné systémy?
Nuž jednoducho - Microsoft nevie ako plánujem server používať a v prípade každého nasadenia spočíva zabezpečenie v čomsi inom. V princípe však ide o to - čo nepotrebujem, to vypnem...

Ešte úplne na začiatok banálna poznámka - veľmi dôležité je zabezpečiť server fyzicky. Pretože je jedno ako dobre bude server zabezpečený softwareovo stačí šikovnejší hacker, ktorý má fyzický prístup k počítaču - servru, klávesnica, vedomosti a skúsenosti a prístup je otvorený...
Až potom ako bude server poriadne zamknutý môžem začať rozmýšľať o software bežiacom na servri.

Keďže sa jedná o produkt firmy Microsoft všetko je uložené v registroch príp. súboroch na disku, ale - rozhodne všetky tieto nastavenia bude možné upravovať cez Group Policy...
Nastavení je však hodne a ľahko sa dá stratiť prehľad o tom čo je dôležité a čo nie... Preto existujú tzv. bezpečnostné šablóny - security templates.

Bezpečnostné šablóny (Security Templates)

Toto sú vlastne nejaké prednastevené GPO od Microsoftu (väčšinou) a tieto si upravím a potom môžem použiť v rámci Group Policy.

Na správu šablón existuje v mmc snap-in Security Templates - pridám si ho teda do mojej konzoly...

Hneď na úvod dostanem pár šablón - zaujímajú ma najmä tie týkajúce sa servra... (securedc a hisecdc)

Upravím teda všetko tak ako potrebujem (nedá sa napísať čo je "správne" a čo nie - závisí to od použitia servra), šablónu uložím a teraz ju možno nasadiť...

Ďalší snap-in, ktorý sa mi v mmc hodí je Security Configuration and Analysis, pridám teda aj ten...

Pravé tlačítko, Open Database a nakoľko žiadnu zatiaľ nemám, tak si vytvorím novú...

V ďalšom kroku importujem *.inf súbor, čo je vlastne šablóna, ktorú som si predtým vytvoril (proste zo šablóny idem teraz vytvoriť databázu)

Teraz už možno šablónu (či databázu) zanalyzovať, príp. ňou nakonfigurovať počítač.

No a nakoniec, keď je všetko otestované a zanalyzované, vytvorím nový GPO a prilinkujem ho k OU kde sa nachádzajú moje servre.

Nájdem Security Settings a v tomto kroku už môžem importovať moje nastavenia...

Preddefinovanie skupín (Restricted Groups)

Ďalšia vec, ktorá sa týka bezpečnosti (aj keď je to vlastne opäť len položka v Group Policy, ale je dobré ju spomenúť) je možnosť obmedziť skupiny na lokálnom počítači...
Znie to síce krkolomne, no v jednoduchosti ide o to, že je možné preddefinovať kto z domény bude a nebude v nejakej skupine.

Vytvorím nový GPO prilinkovaný iba k OU Administrators Machines.
V rámci Security Settings a Restricted Groups pridám skupinu XPClientA/Administrators (lokálni administrátori na počítači XPClientA) a jej členmi budú Trent a Lubo.
Trenta som pridal, pretože verím iba jemu a chcem aby možnosť spravovať môj počítač mal iba on (aj keď nie je členom Domain Admins).
Naopak - Walterovi (čo sa týka môjho lokálneho počítača XPClientA) až tak neverím a aj keď je členom Domain Admins a lokálnym administrátorom všetkých počítačov v doméne (toto privilégium získal dedením) na počítači XPClientA bude iba obyčajný užívateľ...

Ak sa teraz prihlásim ako Lubo, nič sa nezmení - stále som administrátorom ako v doméne, tak aj na lokálnom počítači.

Keď sa teraz Trent prihlási na hociktorý počítač v doméne (okrem XPClientA) je len bežným užívateľom...

Ak sa však prihlási na počítač XPClientA je tu lokálnym administrátorom... (Môže robiť na lokálnom počítači čokoľvek)

Samozrejme - toto ho ešte nerobí administrátorom v rámci domény (Domain Admins) a ani to nemôže zmeniť...

Naopak Walter - ostáva administrátorom v doméne (a môže toto GPO zrušiť a tak to trošku celé stráca význam) avšak práva lokálneho administrátora nemá...
Ak to nefunguje celkom správne, treba obnoviť Group Policy (gpupdate /force) príp. reštartnúť počítače...

Bezpečnosť na súborovej úrovni - EFS

Je síce pekné, že zabezpečím svoje dáta NTFS avšak ak niekto získa fyzický prístup k môjmu disku, tak prelomiť NTFS ochranu nie je až taký problém. Na to aby boli dáta skutočne chránené je potrebné ich šifrovať už na súborovej úrovni.
No a jednou z možností je EFS (Encrypted File System) zabudovaný priamo v operačných systémoch Windows...

Ak sa napr. Dave rozhodne, že chce mať svoje dokumenty zašifrované, iba klikne pravým tlačítkom na novovytvorený dokument a v Advanced zaškrtne Encrypt.
(Vytvoril som tento dokument v My Documents, pretože pracovná plocha je presmerovaná na server, kde nemá plný prístup)

V ďalšom kroku zvolí, že chce zašifrovať iba svoj súbor (ak chce...)

Ak sa teraz prihlási na počítač XPClientB (počítač na ktorom si nechal Dave uložené dokumenty) Eva, a bude sa snažiť získať prístup k jeho súborom NTFS práva ju zastavia...
To však ešte nijak nesúvisí s EFS.

Eva však pozná heslo lokálneho administrátora a tak NTFS ochranu prelomí ľahko...
Toto však nepomôže - súbor nedokáže dešifrovať...

A šifrovanie zrušiť nemôže...
Dokonca ani keby som sa prihlásil na počítač ako Lubo (administrátor domény aj lokálny administrátor) k súboru nemám žiaden prístup.

To že je súbor tak "kvalitne" zabezpečený je na jednej strane super, ale zároveň sa vynára riziko. Ak sa čosi Davevi stane (resp. jeho účtu) tak k súboru sa nedostane naozaj nikto...
Našťastie to nie je až tak úplne "naozaj".

Prvá vec ktorú by mal Dave urobiť, je zálohovať si svoj "certifikát". Certifikát je vlastne šifrovacím kľúčom. Ak sa čokoľvek stane, ale mám certifikát použitý k zakódovaniu súborov je všetko v poriadku...

Dave si spustí MMC (áno je to zložitejšie - celé šifrovanie, preto to treba používať opatrne) a pridá snap-in Certificates.

Nájde svoj certifikát a exportuje ho...

V istom kroku sa ho spýta na heslo, ktorým certifikát chrániť. Certifikát je vlastne privátny kľúč a tak je pochopiteľné že ho treba chrániť. Avšak - je to trochu zvláštne, lebo heslo bude poznať zas iba Dave... Zvolím teda radšej iba Enter (bez hesla).
Súbor by sa teraz mal pochopiteľne uložiť na nejake zabezpečené miesto (disketa, cd, usb kľúč v trezore) ale ja ho v rámci testov ponechám v My Documents.

Ak sa teraz Dave rozhodne, že bude Trentovi veriť a umožní mu prístup k jeho zakódovaným dátam, tak ako prvé mu musí dať NTFS práva k jeho profilu C:\Documents and Settings\Dave
No a potom, samozrejme, mu musí dať onen súbor s certifikátom.

Trent sa prihlási a importuje kľúč (stačí 2x kliknúť na súbor s certifikátom).

...A má k Daveovym zakódovaným dátam prístup...

Export certifikátu je však pomerne zložitá vec a nie každý bežný užívateľ to zvládne. Ak aj vie ako na to tak skutočne len málokto to naozaj spraví...
Toto je samozrejme dosť nebezpečný prístup, lebo bez certifikátu sú dáta stratené. Ale toto všetko si uvedomil aj Microsoft a vytvoril teda ešte jeden spôsob ako dáta zachrániť.

Povedzme, že Dave prestal pracovať v organizácii a tak administrátor zrušil jeho účet. Bob - manažér vo výskumnom oddelení prebral po ňom laptop s dátami k projektom a zistil, že dáta sú chránené pomocou EFS. Bob teda zavolá IT oddelenie že má problém. IT oddelenie odpovie - potrebujete Daveov certifikát.
No a keďže Dave odišiel z firmy v dobrom, Bob mu zavolá a spýta sa ho na ten certifikát. Samozrejme Dave netuší o čom je reč (nevedel ako exportovať certifikát a ani netušil že je to potrebné) a žiaden certifikát nemá...
Bob aj Dave ostanú smutní...

Našťastie však existuje spôsob ako dáta zachrániť. Správca domény je totiž štandardne aj tzv. Recovery Agentom práve pre prípad ako je tento. Administrátor sa teda prihlási (ako lokálny administrátor - to je ten účet, ktorý som na začiatku vypol, takže ho najprv znova zapnem - pozor na prihlasovacie meno, to som taktiež na začiatku zmenil) na ServerA a vyexportuje svoj privátny kľúč (certifikát)
Teraz sa prihlásim na Daveov starý počítač, importujem certifikát a dáta sú zachránené...

(c) Wray 2007