"Display information about previous logons"

Jedna z metod zachecania do nowego (kiedys, bo teraz ma on prawie cztery lata) systemu Windows Server 2008 bylo opowiadanie o tym ile wiecej ma on ustawien Group Policy niz Windows 2003. Czesc z nich dotyczy istniejacych od zawsze funkcji, które dla wygody administratorów "ubrane" zostaly w GPO. Mila ich cecha jest to, ze zupelnie sprawnie dzialaja na przyklad w Windows XP. Istnieja jednak i takie, które wiaza sie z zupelnie nowymi funkcjonalnosciami systemu. Przykladem moze byc tu tytulowe ustawienie "Display information about previous logons" znajdujace sie w galezi Computer Configuration\Administrative Templates\Windows Components\Windows Logon Options. Pisze o GPO dlatego, ze po stronie klienta nie ma prostego GUI, które dawaloby te sama funkcjonalnosc. Tak wiec najlepiej swiadomie i konsekwentnie wlaczyc dla wszystkich a nie na kazdym komputerze oddzielnie kombinowac. Na pierwszy rzut oka, wydawac sie moze, ze ustawienie to dotyczy wylacznie informowania logujacego sie do sieci uzytkownika o tym kiedy logowal sie ostatnio i kiedy ktos próbowal zgadnac jego haslo. Funkcjonalnosc taka nie jest niczym niezwyklym i stosowana jest w wielu serwisach internetowych. Rzecz w tym, ze kazdy swiadomy administrator powinien zadac sobie pytanie: "a skad wlasciwie system to wie...?" Bo to wcale nie takie proste. Skoro ma to dzialac w domenie Active Directory, to oczywiscie zarejestrowane musza zostac udane i nieudane próby z kazdego komputera w sieci. Czyli informacja musi byc przechowywana centralnie, w samym AD. Oczywiscie tak wlasnie jest i kazdy uzytkownik ma atrybut msDS-LastSuccessfulInteractiveLogonTime, msDS-LastFailedInteractiveLogonTime i jeszcze dwa inne sluzace do zliczania nieudanych logowan. System kliencki nie tylko wyswietla informacje odczytane z AD, ale i aktualizuje je przy kazdym logowaniu interaktywnym. Czyli tak, jak byc powinno. Klient mówi do AD o tym, ze uzytkownik próbuje sie zalogowac a po udanym logowaniu – odczytuje historie logowan i wyswietla ja na ekranie. Wszystko jest pieknie pod warunkiem, ze:

  1. Klient ma wlaczona funkcjonalnosc wyswietlania historii logowania
  2. Klientem jest system Windows Vista lub nowszy
  3. Domena ma poziom funkcjonalny 2008 lub nowszy
  4. Polisa dotyczy i klienta i kontrolera domeny

A jezeli nie...? Przyjrzyjmy sie po kolei.

Jezeli funkcjonalnosc w ogóle nie zostala wlaczona w GPO, wpis DisplayLastLogonInfo nie pojawi sie w rejestrze, Winlogon nie dowie sie, ze ma z AD cos przeczytac czy wyswietlic i uzytkownik nic ciekawego nie zobaczy.

A jezeli klientem jest Windows XP? Poza faktem, ze jego uzytkownika mozna powoli zaczac tytulowac "panie kustoszu", to jego Winlogon taki sprytny nie jest i danych nie przeczyta ani nie wyswietli niezaleznie od tego, czy w rejestrze cos bedzie czy nie. AD zaktualizuje sobie te atrybuty, wiec dotrzec do wiedzy teoretycznie mozna. Ale nie bedzie sama sie rzucac w oczy przy kazdym zalogowaniu.

A jezeli domena ma poziom funkcjonalny 2003, ze o starszych nie wspomne? Cóz... dostep do danych o historii logowana nie jest mozliwy, na co system Windows zareaguje w prosty sposób: nie pozwoli sie zalogowac.

art01

Jest to o tyle przykre, ze domeny na takim poziomie nadal istnieja w wielu srodowiskach. Dla pewnosci wiec podaje jak poziom sprawdzic: Otworzyc konsolke Active Directory Users and Computers, kliknac prawym nazwe domeny i wybrac Properties. Poziom funkcjonalny domeny jest jasno pokazany.

art02

Prawdziwi twardziele moga zapytac o wartosc atrybutu msDS-Behavior-Version na przyklad przy uzyciu adfind. Trzeba tez pamietac o objeciu polisa kontrolerów domeny. Bez tego tez sie nie uda zalogowac.

Ale jezeli wszystko gra, efekt jest naprawde przyjemny. Przy pierwszym logowaniu, uzytkownik zobaczy cos takiego:

art03

Wie wtedy na przyklad, ze od momentu zalozenia konta przez administratora nikt nic nie zdazyl pooszukiwac. Przy kolejnych logowaniach pojawiaja sie juz bardziej konkretne informacje:

art04

Jezeli od ostatniego zalogowania ktokolwiek, gdziekolwiek w domenie próbowal szczescia z imieniem psa, dziecka, data urodzenia czy rejestracja samochodu – uzytkownik, który zaloguje sie poprawnie zobaczy cala prawde:

art05

Oczywiscie, poza ekranem logujacego sie uzytkownika, cala prawda trafia równiez do AD.

art06

 

Tak wiec, jezeli w jakims srodowisku warto bardziej serio zwracac uwage na bezpieczenstwo – ustawienie Display information about previous logons na pewno sie przyda. Dzieki niemu, kazdy kombinator wie, ze nie uda mu sie latwo ukryc z próbami przechwycenia konta i hasla. Trzeba tylko pamietac, ze taka funkcjonalnosc nie moze wynikac z fanaberii administratora. Zawsze i w kazdym srodowisku, wlasciciel systemu musi tego chciec i wiedziec co zyskuje. Do tego, nowej funkcjonalnosci musza spodziewac sie uzytkownicy, poniewaz przyzwyczajenie ich do zmieniajacego sie bez zapowiedzi ekranu logowania sprawi, ze kiedys przeocza zmiany nieautoryzowane, które powinni natychmiast zglaszac administratorom.

Autor: Grzegorz Tworek [MVP]