Mam kilka komputerów w mieszkaniu, dwa z nich to laptopy, na których siłą rzeczy (mniejsze dyski) pewnych rzeczy nie przechowuję. Od czasu do czasu wypada również zrobić jakiś backup (który właśnie powinienem za chwilę uskutecznić)... W takim przypadku przydaje się duży, stacjonarny komputer z całkiem sporymi dyskami. Tylko ja jestem leniwy. W chwili, gdy łączę się do drugiego komputera, trzeba się zalogować... Tak, wiem, można się łączyć na gościa, łączyć bez hasła, ale na metody te spuścimy zasłonę milczenia. Za łatwo by to było. Wymyśliłem sobie coś innego...
O Kerberosie
Normalnie, w przypadku Windows, gdy komputerów jest za dużo, stawia się domenę, zakłada konta domenowe i problem z różnymi kontami na różnych komputerach ginie w mroku niepamięci. Tylko, że do postawienia domeny potrzebny jest system z rodziny serwerowej, a ja takowego nie posiadam. Inną opcją jest postawienie domeny na Sambie, ale obecnie w wersji 3 Samba jest funkcjonalnym odpowiednikiem domeny opartej na NT 4, co mi nie odpowiada. Nie chcę cofać sie w czasie. Gdy pojawi się Samba 4 poważnie zastanowię się nad migracją na nią właśnie. A na razie wykorzystałem inną funkcjonalność, o której zwykle się nie mówi, a może mało kto wie. Nazywa się to External Kerberos Realms i ogólnie rzecz biorąc polega na przekonaniu Windows do skorzystania z zewnętrznego KDC (Kerberos), a następnie na zmapowaniu użytkowników na lokalne konta w systemie Windows.
Jak to zrobić? Po pierwsze trzeba postawić jakiś serwer Kerberosa. Ja wykorzystałem coś, co się nazywa Heimdal. Wybór był bardzo świadomy, po prostu kerberosa z MIT nie do końca udało mi się skłonić do pożądanej współpracy.
Po zainstalowaniu KDC konieczne było jeszcze skonfigurowanie go. Kilka ważniejszych fragmentów plików (pliku tak naprawdę: krb5.conf) konfiguracyjnych poniżej.
[libdefaults] default_realm = REALM clockskew = 300 ticket_lifetime = 600 default_etypes = arcfour-hmac-md5 des-cbc-md5 default_etypes_des = des-cbc-md5
Bardzo ważne jest wykorzystanie właśnie arcfour-hmac-md5 ponieważ implementacja Kerberosa w Windows wykorzystuje algorytm RC4, którego "wolnym" odpowiednikiem jest właśnie arcfour.
[kdc] require-preauth = yes addresses = x.y.z.q check-ticket-addresses = no
Tutaj z kolei ważne są dwa ustawienia, require-preauth oraz świadome i odpowiednie ustawienie parametru check-ticket-address. U mnie jest on obecnie ustawiony na no ponieważ moje laptopy mogą być podłączone albo do WiFi, albo do sieci LAN, co siłą rzeczy powoduje, ze mogą mieć różne adresy IP. Gdyby KDC wykonywało sprawdzenie adresu IP w tickecie, to po przepięciu się, KDC nie wystawiłby już kolejnego ticketu dostępu do zasobu.
W KDC należy stworzyć kilka "kont", dla komputera oraz dla użytkownika. Czyli należy stworzyć coś takiego: host/host.domena dla komputera, cifs/host.domena dla komputera oferującego uługę CIFS (czyli udostępnianie plików), oraz normalne konta użytkowników.
W tej chwili właściwie strona serwerowa jest załatwiona. Następnym krokiem jest skonfigurowanie komputera z Windows. Należy to zrobić przy pomocy narzędzia ksetup. Należy wykonać następujące operacje:
- dodać komputer do realma kerberosowego (ksetup /SetRealm REALM)
- określić KDC w realmie (ksetup /AddKdc REALM kdc.domena
- określić hasło komputera (ksetup /SetComputerPassword password)
- zmapoważ użytkowników realma na konta lokalne (ksetup /MapUser )
Ja nie korzystam z serwisu kpasswd (zmiana haseł), robię to ręcznie, ale z konkretnego powodu. Po wykonaniu wymienionych wyżej operacji należy zrestartować komputer. Po restarcie w oknie logowania pojawi się możliwość logowania do realma kerberosowego, lub lokalnego komputera. Wybrać należy realma i... i mieć nadzieję, że zadziała. Jeśli nie, należy przeglądnąć logi KDC. W każdym razie SOA#1 "U mnie działa".
Nie wszystko jest jednak tak proste jak bym chciał. Mimo, że uwierzytelniam się do zewnętrznego KDC, to jednak "synchronizuję" sobie hasło lokalne z hasłem w KDC. Wynika to ze sposobu działania usługi DPAPI. Dodatkowo od pewnego czasu używam TrueCrypt i tcgina, przez co zmiana hasła dodatkowo jeszcze wiąże się ze zmianą hasła do szyfrowanego kontenera. No ale to tylko raz na miesiąc.