Tania i bezpieczna sieć bezprzewodowa z 802.1x
- Patryk Królikowski,
- 07.01.2008
Dodajemy więc kolejne źródło, czyli winbind, do następujących linii: passwd, shadow, group, protocols, services, netgroup oraz automount (np. passwd: files winbind). Do wykonania pozostaje jeszcze jedna czynność związana z tą usługą. Winbind podczas wykonywania swoich zadań korzysta z katalogu "/var/cache/samba/winbindd_privileged" oraz znajdującego się tam podkatalogu "pipe". Domyślnie uprawnienia do korzystania z tych katalogów ma tylko i wyłącznie konto oraz grupa "root". Jeżeli tych uprawnień nie zmienimy, wówczas, wybiegając nieco w przyszłość, FreeRADIUS nie będzie mógł prawidłowo funkcjonować, będąc uruchamianym w kontekście użytkownika "radiusd". W takiej sytuacji musielibyśmy zmienić kontekst na "roota", a jest to ostatnia rzecz, którą chcielibyśmy zrobić. Nie mamy więc wyboru. Trzeba zmienić uprawnienia na obydwu katalogach tak, aby grupa "radiusd" miała do nich dostęp:
[root@radius ~]# chgrp -R radiusd /var/cache/samba/winbindd_privileged
Po tej operacji możemy dodać demony Samby smbd i nmbd oraz usługę winbind do listy usług uruchamianych podczas startu systemu. Dzięki takiemu narzędziu jak ntvsys, przeprowadzenie tej czynności w CentOS jest niezwykle proste - Ekran 1.
Zrestartujmy teraz serwer i sprawdźmy, czy wszystkie, wskazane przez nas usługi, są aktywne. Łatwo to zrobić:
[root@radius ~]# /etc/init.d/smb status
[root@radius ~]# /etc/init.d/wibind status
Koniecznie trzeba przy okazji zadbać o synchronizację czasu naszego serwera z jakimś miarodajnym źródłem, np. serwerem czasu wystawianym przez Centrum Badań Kosmicznych PAN. Czas jest o tyle ważny, że usługa winbind nie wystartuje, jeżeli rozbieżność pomiędzy kontrolerem domeny a naszym serwerem będzie zbyt duża. Żeby tej czynności nie powtarzać, ręcznie skorzystamy ze starego dobrego crona. Wywołujemy zatem:[root@radius ~]# crontab -e
Następnie ustawiamy:
0-59/10 * * * * /usr/sbin/ntpdate vega.cbk.poznan.pl | logger -t NTP
W ten sposób co 10 minut będziemy synchronizować nasz serwer Radius z serwerem NTP (vega.cbk.poznan.pl), a następnie przesyłać komunikat o tym fakcie do sysloga (plik /var/log/messages). Żeby łatwo było rozeznać się w gąszczu logów, zdarzenie synchronizacji czasu poprzedzimy tagiem "NTP".
Jeżeli wszystko poszło zgodnie z planem, powinniśmy teraz móc podpiąć nasz serwer do domeny:
[root@radius ~]# net join -U Administrator
Podajemy hasło i czekamy na potwierdzenie:
Using short domain name - VM
Joined ‘RADIUS' to realm ‘VM.TEST.PL'
Sukces! Po podpięciu do domeny zobaczmy, czy demon winbind prawidłowo przekazuje informacje o użytkowniku:
[root@radius ~]# wbinfo -a patryk%qazwsx
Powinniśmy otrzymać komunikat o błędzie, będący paradoksalnie znakiem prawidłowego działania demona:
plaintext password authentication failed
error code was NT_STATUS_NO_SUCH_USER (0xc0000064)
error message was: No such user
Could not authenticate user patryk%qazwsx with plaintext password
challenge/response password authentication succeededNajważniejsza jest ostatnia linia. Mówi ona, że proces uwierzytelniania w trybie challenge/response zakończył się powodzeniem. Jeżeli demon winbind nie może uwierzytelnić użytkownika za pomocą niezaszyfrowanego hasła, wówczas próbuje właśnie tego trybu. Jak na razie, wszystko idzie zgodnie z planem. Pora na chrzest bojowy. Zobaczmy, jak wypadnie uwierzytelnianie poprzez NTLM. Właśnie ten mechanizm będzie wykorzystywany przez FreeRADIUS-a.
[root@radius ~]# ntlm_auth —request-nt-key —domain=VM —username=patryk
password: [podajemy hasło]
NT_STATUS_OK: Success (0x0)
No i znowu pełne zwycięstwo.