PKI – a nie mówiłem…?

ROTFLMAO – tak można podsumować wtopę, jaką zaliczył eMeS w ten weekend. a w zasadzie od piątq. cała chmura Azure wyparowała. dosłownie *cała*. od usług komercyjnych, darmowych, xbox… a wszystko przez… nieodświeżony certyfikat!

o tym, że PKI jest sztuką zanikającą i dla większości wdrożeń nazwa “PKI” jest mocno na wyrost, pisałem całkiem niedawno. ale to co się wydarzyło ciężko nawet komentować, więc zamiast się nabijać kilka wniosqw dla nas wszystkich:

  • CERTYFIKATY SĄ WAŻNE. jak widać – jeden zły cert i cała wielka machina może zdechnąć.
  • to, że nie dzieje się tak w innych firmach wynika z faktu, że każdy zna trywialim “bezpieczeństwo jest bardzo ważne/najważniejsze” ale środowisko konfiguruje się przeciwnie. ponieważ niewiele osób certyfikaty rozumie, aby sobie nie utrudniać życia, wszystko konfiguruje się tak, żeby “niewadziły”. czyli używa się self-signów, wyłącza się weryfikację CRL, pozwala się na połączenia pomimo braku poprawnej walidacji itd. czyli jakiś cert jest, jakieś szyfrowanie jest i wszyscy skaczą szczęśliwi że mają PKI i super bezpieczeństwo.
  • w Windows od zawsze brakowało automatu, przypominającego o wygasającym certyfikacie. taka funkcjonalność została dodana – AFAIR w Vista, jednak trzeba się lokalnie zalogować na serwer/stację, aby komunikat zobaczyć. tam, gdzie PKI jest istotne – jak np. główny cert firmy czy jakiejś aplikacji Web – admin powinien od razu wrzucić jakieś przypomnienie do kalendarza…

zamiast ustawiać przypomnienia na konkretne daty, co jest mało elastyczne z 1ooo powodów, warto byłoby zrobić coś bardziej uniwersalnego. na szybko – skrypt, który sprawdza wszystkie certy w computerMY i jeśli data jest powżej 6o% czasu życia, wysyła maila z informacją. skrypt można by wrzucić do do schedulera na serwerach. trzeba będzie nad tym pomyśleć…

eN.

powershell – kiedy będzie standardem?

globalnie – nie prędko. z jednej strony możliwości PS się zwiększają z każdą wersją systemu, z drugiej strony – pozostają bez zmian dla wersji starych. potworny dualizm – jest wiele zapowiedzi, że będzie wycofane wsparcie konfiguracji TCP/IP z netsh, wmic – z drugiej strony po uruchomieniu w12 w wersji core nadal jesteśmy witani CMD – co jest zresztą dla mnie zupełnie niezrozumiałe /: . taki oto scenariusz, na który często trafiam:

trzeba coś zautomatyzować/zmienić u klienta. wersje serwerów – od W2k3R2 po w12. jakie mamy środowisko do tego?:

  • na w2k3R2 powershella nie ma w ogóle
  • na w2k8 jest, ale dla tej wersji była bardzo ograniczona liczna cmdletów
  • na w2k8R2 cmdletów jest więcej ale nadal są ograczniczone
  • na w12 jest ich na prawdę dużo, ale część operacji i tak trzeba wykonywać via stare commandlineowe toole.

i tak wybór jest pomiędzy:

  • zainstalować na wszystkich maszynach powershell. zadanie nietrywialne bo nie wszędzie jest v3, trzeba spełnic szereg wymagań, być może dograć jakieś moduły. sporo zachodu ale jeśli jest się adminem sieci to można się pobawić. jednak dla konsultanta – osoby z zewnątrz – jest to nieopłacalne.
  • być uniwersalnym – korzystać z VBS + CMD

finalnie – jeśli ma być uniwersalnie to trzeba sięgnąć do VBSa, co jest bolesne. po wygodzie i mozliwościach, jakie daje PS, grzebanie się w basicu jest ciężkim doznaniem.

niezrozumiałe dla mnie pozostaje:

  • czemu default shell w core to cmd
  • czemu PS nie jest poprawką obligatoryjną/sugerowaną dodatkową – w końcu to podstawowe środowisko zarządzania! na stronie opisującej WMF 3.o jest informacja iż nie jest kompatybilny z <tu całkiem spora lista>. niewątpliwie odpowiada to bezpośrednio na pytanie ‘czemu nie jest poprawką obligatoryjną’ ale rodzi pytanie – skąd te niekompatybilności?
  • czemu nie ma oficjalnych update’ów modułów do PS?

w efekcie, pomimo ostrego parcia w kierunq PS nie można mu zaufać – skrypty napisane na jeden system mogą nie działać na innym. brak jest spójności i jednego, porządnego środowiska.

Powershell basics mini-FAQ

  • jak sprawdzić wersję powershell:

$host.version

  • czy da się zupgradeować powershell do wersji 3 na wszystkich systemach?

po pierwsze to nie tylko PowerShell ale ‘Windows Management Framework’. na cały framework składa się kilka komponentów, wykorzystywanych na końcu łańcucha przez PS: BITS, WinRM i kilka innych komponentów, +oczywiście .NET framework. na staszych systemach trzeba więc zupdateować i pozostałe komponenty.

dla w2k8, w2k8R2 i w7 da się – można zaciągnąć z download center
dla wersji 2k3/XP SP3 jest tylko v2 i nowszej nie będzie

  • jak sprawdzić dostępne moduły

get-module –listAvailable

użytkownika: userdocumentswindowspowershellmodulesmymodule
systemowe: windowssystem32windowspowershellV1.0modulesmymodule

  • skąd wziąć moduły?

sporo jest na codeplexie. jedno z fajniejszych repozytoriów jest na technetowym wiki.

eN.

export/import maszyn wirtualnych hyper-v

takie proste… ale jak ja do czegoś siadam od razu staje się jakieś takie trudne… należę do grupy opisanej przez paradoks Wittgensteina na temat reguł ograniczonych. należę do tych, dla których najbardziej oczywiste rozwiązania wcale nie są najbardziej oczywiste…

jaki jest problem: nie ma SCVMM i trzeba sobie radzić narzedziami systemowymi. do wyboru mamy: Powershell [yeah!] i hyper-v manager. okazuje się, że export/import z HVmgmt działa zupełnie inaczej niż ten z PS. nie da się wexportować maszyny z GUI a zaimportować z PS – w każdym razie nie w prost. różnice:

GUI PS
EXPORT z GUI export-vm
generuje plik ‘config.xml’ znajdujący się w root katalogu exportu generuje plik <GUID>.xml znajdujący sie w katalogu Virtual Machines
plik xml zawiera tylko kilka podstawowych informacji. plik ma <1Kb plik xml zawiera pełny opis ma 33KB+
IMPORT z GUI import-vm
opcja ‘copy’ zostawia pliki w tym samym miejscu i generuje nowy ID opcja ‘-copy’ kopiuje pliki. standardowo zawsze zachowywany jest oryginalny GUID. aby wygenerować nowy trzeba dodać ‘-generateNewID’.
  nie da się użyć tych samych plików i zostawić GUID. operacja –register –generateNewId generuje błąd. nowy ID wymaga użycia opcji -copy
ładnie zakłda nowy katalog o nazwie maszyny wrzuca pliki do root katalogu maszyn wirtualnych

to tak w skrócie. ciekawostek jest jeszcze kilka – np. jak już się zaimportuje maszynę i przypadkiem zapomni się zmienić GUID to pupa. nie ma [bezpośredniej] mozliwości zmiany GUID – trzeba wywalić i zaimportować jeszcze raz. być może są jakies hardcore’owe możliwości z grzebaniem się w xml’kach ale to na pewno nie jest coś co zrobienia na szybko.

eMeSy chyba próbują zmusić ludzi do korzystania z SCVMM – nawet strona na technecie czy help dla poleceń systemowych hyper-v praktycznie nie istnieje. są parametry ale nie ma opisów jak je stosować i co robią ):

eN.

removed or deprecated in 2o12

tak sobie czytam co się szczegółowo pozmieniało w w2o12. zazwyczaj mówi się o tym, co nowego się pojawiło, ale warto zerknąć również co zniknęło – bo można się nieźle zdziwić.

pracując z w12 mam nieodparte wrażenie, że system został upośledzony – przez ten obsrany interfejs i niedołężnego server managera. pomijając drobiazgi – jedna z najważniejszych rzeczy, która została usunięta [i nie ma tego na oficjalnej stronie!] to RDC Shadowing. w ogóle RDS zostało upośledzone – to taki obecny trend w zarządzaniu systemami Windows. jeśli ktoś planuje wdrożenie RDS na w12 to należy koniecznie zapoznać się z tym wątkiem.

natomiast w 'przestarzałych’ opcjach – czyli tych, które mają być wycofane, jest całkiem sporo interesujących rzeczy, wymagających bliższego zbadania, ponieważ będą miały [w niedalekiej?] przyszłości wpływ na wiele skryptów i monitorowanie:

  • SMTP: SMTP and the associated management tools are deprecated. Though the functionality is still available in Windows Server 2012, you should begin using System.Net.Smtp. With this API, you will not be able to insert a message into a file for pickup; instead configure Web applications to connect on port 25 to another server using SMTP.
  • SNMP: SNMP is deprecated. Instead, use the Common Information Model (CIM), which is supported by the WS-Management web services protocol and implemented as Windows Remote Management.
  • WMI providers: […] The WMI provider for Active Directory is deprecated. Manage Active Directory with PowerShell cmdlets.
    The WMI command-line tool (Wmic) is deprecated. Use PowerShell cmdlets instead.

WMIC IS DEPRECATED? SMTP? SNMP? hmmm… jeśli ktoś ma jeszcze obiekcje co do przerzucenia się na powershell no niech lepiej je zarzuci i bierze się za naukę…

eN.

Ghost in the wires

w listopadzie 2o12 pojawiała się autobiografia Kevina Mitnicka. pomimo tego, że jak się chwali był na kursie literackim, i pomimo współpracy z Simonem Williamsem styl całej opowieści nie jest porywający. nie ma też tragedii – książka nie jest zbyt nudna [może trochę, pod koniec…], jest w miarę nieźle zredagowana i poukładana [w miarę] chronologicznie. moim podstawowym zarzutem jest target – książka jest zbyt lamerska dla geeka zbyt trudna dla lamera. nie lubię też kiedy na początq historii od razu jest wrzuta w stylu 'ale dwa lata później to skończy się w-ten-a-ten sposób’.
co by jednak nie powiedzieć – Mitnick jest postacią wielką, w niedługiej historii IT niewątpliwie znajduje się na liście VIP i książkę trzeba przeczytać. i koniec.

no może nie koniec – dodam jeszcze, że autor dodaje zabawę – na początq każdego rozdziału jest zaszyfrowana motka (: taki bonus.

beletrystyka
eN.