Active Directory Fine-Grained Password and Account Lockout Policy

AD DS: Fine-Grained Password Policies, czyli możliwość tworzenia polis dotyczących haseł dla poszczególnych security groups lub użytkowników. Uwaga: nadpisują domyślne ustawienia z GPO ;-) .

Ostatnio stanąłem przed problemem kilku kont, w których nie mogłem pozwolić sobie na blokowanie po „x” próbach błędnego logowania. Oczywiście ustawienia dotyczące blokowania kont, złożoności haseł, długości haseł itd. miałem zdefiniowane w Default Domain Policy Pamiętałem, że od czasu wersji 2003 można ustawić w domyślnej polisie wszystkie ustawienia dotyczące hasła, ale… nakłada się to na wszystkich użytkowników. W takim razie jak ustawić inne wartości długości hasła, jego wygasania, czasu „lockout-u” itd.?

Co prawda do wersji 2012 R2 włącznie, nie zmieniło się, to że wszystkie ustawienia dotyczące haseł definiujemy w polisie domyślnej, natomiast od wersji 2008 wprowadzono Fine-Grained Password Policies. W bardzo prosty sposób czy to przy wykorzystaniu GUI czy też wszechobecnego PS jesteśmy w stanie ustawić inne ustawienia dla użytkowników lub całych wcześniej zdefiniowanych grup zabezpieczeń.

Dla przykładu zdefiniujmy polisę, która będzie miała dla jednej grupy zabezpieczeń ustawienia:

-długość minimum 8 znaków
-historię 6 haseł
-musi spełniać wymagania złożoności
-maksymalny wiek hasła 90 dni
-brak blokowania konta po nieudanych logowaniach

Na początek GUI (przykład na 2012 R2).

Otwieramy Active Directory Administrive Center, po lewej stronie rozwijamy naszą domenę -> System -> Password Settings Container

PPM -> New -> Password Settings

Otrzymamy okno jak poniżej:

1

Wypełnijmy poszczególne pola według wymagań, jakie wypisaliśmy powyżej. Dla wyjaśnienia Precedence, to priorytet. W sytuacji, kiedy mamy jedną polisę dla grupy X, drugą polisę dla użytkownika Y, który jest w grupie X, to na użytkownika Y nałożona zostanie polisa z niższą wartością Precedence.

2

Na koniec pozostaje wybranie grupy zabezpieczeń lub jednego/kilu użytkowników dla których ustawienia mają nadpisać „Default Domain Policy”. W sekcji „Directly Applies To” klikamy Add i wybieramy, dla kogo ma być aplikowana.

Ot cała filozofia. W celu sprawdzenia, na jakie konta nakłada się utworzona polisa należy skorzystać z polecenia w PowerShell Get-ADFineGrainedPasswordPolicy.

Utworzenie tej samej polisy przy wykorzystaniu PowerShell’a sprowadza się do wydania poniższego polecenia:

New-ADFineGrainedPasswordPolicy -Name Operatorzy_Pass_Policy `
-DisplayName Operatorzy_Pass_Policy `
-Precedence 1 `
-ComplexityEnabled $true `
-ReversibleEncryptionEnabled $false `
-PasswordHistoryCount 6 `
-MinPasswordLength 8 `
-MaxPasswordAge 90.00:00:00 `
-MinPasswordAge 00.00:00:00

Następnie w celu dopisania kont lub grupy zabezpieczeń dla których ustawienia mają funkcjonować

Add-ADFineGrainedPasswordPolicySubject -Identity Operatorzy_Pass_Policy -Subjects operatorzy

Po więcej informacji odsyłam tutaj.

 

VSS EventID 8194 na klastrze Hyper-v

po wstawieniu nowej macierzy EqualLogic i zaktualizowaniu HIT [Host Integration Tools] na węzłach, w eventlogu zaczęły się masowo pojawiać wpisy Event ID 8194 :

Volume Shadow Copy Service error: Unexpected error querying for the IVssWriterCallback interface. hr = 0x80070005, Access is denied.
This is often caused by incorrect security settings in either the writer or requestor process.

Operation:
   Gathering Writer Data
 
Context:
   Writer Class Id: {e8132975-6f93-4464-a53e-1050253ae220}
   Writer Name: System Writer
   Writer Instance ID: {047dec2e-d0fe-456f-9165-284eaeadd0f9}

różne dziwne rozwiązania testowałem, przeszuqjąc Internet. większość sugestii dotyczyła dodania odpowiednich uprawnień na DCOM dla NT Authority\Network, odrejestrowanie hardwareowego requestora EQL, wyłączenie wykorzystania MPIO dla hardwareowych snapshotów i kilka innych pomysłów, większość artów wskazywała również na DPM…

finalnie trzeba było poskładać to do qpy, bo odpowiedź tkwiła w pomiędzy i kilka najważniejszych uwag, które mogą być przydatne przy takim debugowaniu:

  • to, co było najbardziej zwodnicze i spowodowało wydłużenie czasu debugowania, to założenie, że jak zrobię coś na jednym węźle i zadziała, to potem będę mógł wprowadzić na pozostałych węzłach. błąd logiczny w tym myśleniu polega na tym, że żądanie wysłane przez DPM do dowolnego węzła, generowało błędy na wszystkich. czyli nie widziałem poprawy po swoich zmianach, ponieważ błędy pojawiały się w wyniq akcji na innym węźle.
  • podstawą rozwiązania i zrozumienia całego problemu było znalezienie procesu, który wywołuje ten błąd. po sprawdzeniu szczegółów [details] dla tych wpisów w eventlogu, można znaleźć PID procesu, który go wywołuje. wskazało to na proces svhost, który zawierał kilka usług – m.in. usługę „Cryptographic Service”. trochę mnie to ździwiło, ale pozwoliło wyszukać właściwy wątek, w którym można przeczytać:

This problem appears only as part of a cluster ; This event is visible on nodes other than the one who initiated the call to VSS.

During a VSS call, the Cluster service sends requests to all nodes through the GUM (Global Update Manager). Because the „System Writer” is hosted by the encryption service (cryptographic service or cryptsvc) and that it is executed in a context „Network Service” instead of „System”, the return of COM calls a meeting Denied Access because different impersonnations on other cluster nodes

The problem will not be fixed as it has no functional involvement

dalej niestety jest info, że ten błąd nie wpływa na nic i nie będzie poprawiany. ciekawe, bo wpływa – bakcupy DPM nie bardzo chcą się robić…

  • ostatecznym rozwiązaniem było wykonanie *na wszystkich węzłach*:
    • zmuszenie DPM do korzystania z software providerów – tworzy się pusty klucz [nie wartość] na kliencie DPM [Software\Microsoft\Microsoft Data Protection Manager\Agent\UseSystemSoftwareProvider]
    • wyłączenie hardware providera EQL

eN.

deduplication by Microsoft

taka ciekawostka a propos eMeSeowego DD…

  • eMeSowy DD działa na poziomie plików – nad sterownikiem NTFS a nie pod nim [..może raczej 'obok’.. albo 'wraz z’… hmmm. ciężko umiejscowić 'filter drivers’ w geometrii przestrzennej (; ].  to zupełnie zmienia logikę działania
  • efekty DD oraz scenariusze zastosowania będą zupełnie inne dla DD macierzowego a tego eMeSowego. dobrym przykładem będzie DD dla backupów SQL – bez względu czy użyje się kompresji czy nie, zysk z DD będzie oscylował w okolicach 7o-8o%. tutaj można poczytać o ciekawych testach z tym związanych. w jednym ze środowisk uzyskałem ratio 92% dla backupów SQL (muszę dodać, że przy małej ilości zmian na bazie, więc test nie jest zbyt miarodajny, ale i tak robi wrażenie).
  • podczas projektowania przestrzeni dyskowej trzeba pamiętać, że operacja nie jest robiona w locie tylko w cyklach -czyli projekt musi zawierać 1oo% przestrzeni dla danych które będą się pojawiać. co więcej – deduplikacji (standardowo) nie podlegają pliki młodsze niż 3 dni,warto ustawić 'minimumFileAge’ na 0 żeby operacja została wykonana od razu jeśli to nie jest wolumen z aktywnie używanymi danymi. jest również wiele typów pliqw, które nie są ruszane, ze względu na to, że z góry wiadomo, że będzie to efektywne – głównie chodzi o już skompresowane pliki. z tego powodu bardzo jestem zdziwiony wynikami z backupem SQL.

eN.

Windows Updates z linii poleceń

jakoś ostatnio zauważam coraz więcej problemów z Windows Updates po stronie klienta – a to nic nie wyświetla, a to nie działa w ogóle 'wejście’ do listy update’ów – jakby link był martwy… no i oczywiście dochodzą serwery bez GUI.

a przecież po zainstalowaniu wersji Core dostępna jest commandline’owa wersja instalacji poprawek. wystarczy więc zajrzeć gdzie to sobie leży … i:

PS C:\Windows> cscript C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Search for for (A)ll updates or (R)ecommended updates only? a

Searching for all applicable updates...

List of applicable items on the machine:

1> Microsoft Silverlight (KB2668562)
2> Security Update for Windows 8, 8.1 and Windows Server 2012, 2012 R2 (KB2917500)
3> Microsoft SQL Server 2012 Service Pack 2 (KB2958429)

Select an option:
(A)ll updates, (N)o updates or (S)elect a single update?

[...]

warto zapamiętać: C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs. w razie co, łatwo znaleźć:

ls c:\windows -recurse -ea SilentlyContinue -filter WU*.vbs

nie wiem czemu to jest w vbs, tak samo jak nie rozumiem czemu serwery w2k12 bez GUI otwierają cmd, ale wewnątrz widać proste polecania, które można łatwo przepisać na jakiś ludzki język (:

eN.

IIS AppPool – 32 czy 64 bit?

scenariusz: upgrade wersji Dell OpenManage. po instalacji wszystkich komponentów, aplikacja IIS wywala się. prawdopodobnie jest niekompatybilność wersji – 32/64bit. jak sprawdzić czy biblioteka jest 32 czy 64bit? w zasadzie odpowiedź można znaleźć w eventlogu:

Could not load all ISAPI filters for site 'OPENMANAGE ESSENTIALS’.  Therefore site startup aborted.

ISAPI Filter 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error, see http://go.microsoft.com/fwlink/?LinkId=29349.

niemniej pytanie pozostaje – jak upewnić się jaka jest wersja biblioteki? pomocnym narzędziem będzie mały tool z VisualStudio – dumpbin

dumpbin /headers filename.dll

PE signature found
File Type: DLL
FILE HEADER VALUES
             14C machine (x86)  <<== I tu jest to cenne info z nagłówka pliku
               1 number of sections
        45499E0A time date stamp Thu Nov 02 03:28:10 2006
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
            2102 characteristics
                   Executable
                   32 bit word machine <<== I tu
                   DLL

teraz na 1oo% rozwiązaniem będzie: w IIS -> Application Pools -> [RMB] Advanced Settings -> Enable 32-Bit Application

eN.

 

 

 

 

 

Need Backup?

Chmura. Teraz wszystko w chmurze backup też. Pomijając kwestie że sam sprzedaje taki produkt, to jest drogie.

Było

Kilka tygodni temu wyszedł dropbox dla firm:
https://www.dropbox.com/business/pricing

Polecam sie zapoznac i w szczególności zwrócić uwagę na trzy opcje:

  • Nieograniczone odzyskiwanie plików
  • Nielimitowane historia wersji wszystkich plików
  • Miejsce: tyle ile potrzebujesz

Wygląda to na usługe BEZ LIMITU pojemności. za około 250 zł netto miesiecznie – to minimalna stawka: 15$ dla 5 użytkowników.
Co imho oznacza na chwile obecną zabicie rynku. Jeśli macie lepsze oferty. Kontrargumenty – jestem ciekaw.
Na chwilę obecną nie ma możliwości stania się reselerem w EU, pożyjemy, zobaczymy.

 

Postaw ptaszka

Od wersji Windows Server 2008 mamy dostępną w AD opcję „ProtectedFromAccidentalDeletion”. Generalnie nigdy bym nie pomyślał, żeby kiedykolwiek miało by sens używanie tej opcji, ale od niedawna dodaję ją jako wymaganą i  k_r_ y_t_y_c_z_n_ą  praktycznie w każdej mojej dokumentacji, która zawiera opis obiektów AD.

Generalnie nie ma większego problem gdy skasujemy obiekt komputera czy użytkownika. Nawet jeśli jest to konto serwisowe, po kilku minutach możemy sytuacje  naprawić. Ja jednak byłem świadkiem sytuacji w której jakiś durny program, lub admin … a generalnie admin nawet jak był to program …skasował obiekt serwisu klastra (hosta Cluster Service). To spowodowało, że przestała działać cała instancja SQL oparta na tym klastrze i inne usługi (np.. MSDTC). Obiekt nie jest prosty, więc od tak nie można go sobie stworzyć. Cały klaster SQL oparty na MSCS w zasadzie byłby do przeinstalowania a dokładniej każdy node musiał by być wyciągnięty z clustra, następnie trzeba by było usunąć wszystkie ślady po cluster service i poinstalować wszystko od początku. Roboty, przy kilku nodach na około 8 godzin (a produkcja leży!). Na szczęście jest na to myk .. Ale o tym w kolejnych wpisach.

Generalnie myślałem, że problem był wyjątkowy i że już nic gorszego się stać nie może. Środowisko bez  SPoF. Cały sprzęt nadmiarowy, urządzenia sieciowe dobrej klasy, load balancery, macierze itp. … Ale nie doceniłem adminów.

Po kilku dniach kolejna awaria. Ktoś dopatrzył że są 3 podobne do siebie nazwy komputerów… SuperProdDB1, SuperProdDB2 i SuperProdDB. Popingał, popatrzył na listy VMwareów i postanowił zrobić porządek. Skasował wpisy DNS SuperProdDB. Był to host name dla instancji klastra SQL  składającego się z w/w nodów.

Naprawa tego poszła już znacznie sprawniej.

Generalnie … postaw ptaszka!

Przyspieszyć IIS

Zabieram się do tego artykułu jak pies do jeża chyba więc prościej będzie wrzucać treść na raty…

Problem:
Zmieniam coś w konfiguracji lub podmieniam coś w aplikacji webowej. Wykonuję iisreset. Pierwsze użycie stronki trwa wieki. Nieważne czy jest to Sharepoint czy prosta witryna z gołą babą. Uruchamianie worker procesów, kompilowanie aplikacji, sprawdzenie certyfikatów a raczej CRLi … to wszystko zabiera nam cenne sekundy. Do tego Application poole mają swoje czasy uśpienia i recycling co powoduje, że przy braku użytkowników, strona znowu usypia… Przy rzadko odwiedzanych stronach generalnie mamy wrażenie że coś jest nie tak i za każdym razem musimy czekać nawet dwie minuty by zobaczyć efekt końcowy. Jak z tym walczyć? No jest kila trików, między innymi „warm up” skrypty w PS używane od lat przez Microsoft przy prezentacjach Sharepointów… Nie opisze tutaj wszystkich sztuczek a jedynie podam prosty sposób na  automatyczne wymuszenie uruchomienia application poola czyli uruchomienia worker procesu na IIS. Bez zaawansowanych skryptów i potrzeby wnikliwego analizowania swojej aplikacji.

Rozwiązanie:
Narzędzie stworzone do IIS 8 dostępne dla IIS 7.5 o nazwie Application Initialization
Użycie banalne, składające się z dwóch kroków.

  1. Instalacja Application Initialization
    1. Uruchom appwarmup_x64.msi
    2. Zrestartuj server
  1. Wybierz który application pool ma być zawsze uruchomiony
    1. Uruchom CMD jako Administrator
    1. Przejdź do lokalizacji c:\Windows\system32\inetsrv\
  1. Przykładowo dla DefaultAppPool uruchom
    appcmd.exe set apppool „DefaultAppPool” /startMode:AlwaysRunning

W ramach sprawdzenia możesz zrobić iisreset i zobaczyć że na liście Worker processów pojawi się DefaultAppPool pomimo braku wywołania strony.

Generalnie wypróbujcie to w domu, u mnie 120 sekund do przodu ;)

MS Message Analyzer

żeby nie uciekło, taki mały bookmark.

Od lat używam MS Network Monitora, głównie dlatego że potrafię go używać i fajnie grupuje ruch sieciowy. Do tego  jest gotowy do użycia zaraz po instalacji, co nie jest bez znaczenia gdy na obcym środowisku musimy coś szybko sprawdzić.

No i dzisiaj od MSa pojawiła się miła niespodzianka… Microsoft Message Analyzer.

Niby to samo a jednak ładniejsze … co do użyteczności jeszcze daleko mi do ostateczniej opinii .. ale dobrze jest się na co dzień otaczać ładnymi rzeczami ;)

Do ściągnięcia beta oraz, troche dokumentacji oraz prezentacja … zapowiada się dobrze.

https://connect.microsoft.com/site216/Downloads

„…you’ll have to join the Message Analyzer and Network Monitor program to see the downloads and access other parts of or our site…”

PowerShell jako główna konsola

PowerShell niestety nie może być traktowany jako główna konsola systemu. powód? w przypadq problemów z usługami [np. sieciowymi – taki błąd wygenerowałem] konsola zawisa. w tym samym czasie cmd odpala się bez problemu pozwalając na jakieś akcje/debugowanie problemu.

niestety należy traktować to jako dodatkowe narzędzie.

eN.