RADIUS EAP/TLS

Dysponując serwerem RADIUS jesteśmy o krok od doskonałego zabezpieczenia sieci WiFi. Protokół EAP-TLS jest uważany za jedno z najlepszych dostępnych zabezpieczeń sieci, chociaż jego popularność jest stosunkowo nieduża ze względu na konieczność posiadania cyfrowych certyfikatów.
Zanim rozpoczniesz
Ten tekst zakłada, że wcześniej zapoznaliście się z wpisem Uruchamiamy SSL i posiadacie własny certyfikat CA, którym będziecie podpisywać wszystkie certyfikaty.
Certyfikat serwera RADIUS
Ponieważ protokół EAP-TLS pozwala na wzajemne sprawdzanie tożsamości stron, wasz serwer RADIUS będzie potrzebował własnego certyfikatu.
W paczce radius_certs.tar.gz są pliki, które wypakowujemy do katalogu /usr/lib/ssl/misc/ (oczywiście mając uprawnienia roota). Uruchamiamy skrypt cert_radsrv i podajemy wszystkie potrzebne dane (podobnie jak w Uruchamiamy SSL). W linii "Enter pass phrase for ./demoCA/private/cakey.pem:" podajemy oczywiście hasło CA, nie zaś certyfikatu serwera RADIUS. Utworzone zostaną trzy pliki radius_cert.pem radius_key.pem radius_req.pem. pliki "cert" i "key" oraz plik demoCA/cacert.pem kopiujemy do katalogu /usr/local/etc/raddb/certs/. Potrzebna jest jeszcze niewielka modyfikacja konfiguracji serwera RADIUS. W pliku /usr/local/etc/raddb/eap.conf modyfikujemy w sekcji TLS linie:
private_key_password = hasło_do_klucza
private_key_file = ${certdir}/radius_key.pem
certificate_file = ${certdir}/radius_cert.pem
CA_file = ${cadir}/cacert.pem
Po zapisaniu pliku, sprawdzamy w trybie debug (radiusd -X) czy RADIUS poprawnie się uruchomi. Jeżeli wszystko jest OK, generujemy certyfikaty dla użytkowników i konfigurujemy punkty dostępowe.
Certyfikaty użytkowników
Aby wygenerować certyfikat dla użytkownika modyfikujemy odpowiednio do naszych potrzeb skrypt wifi_general.sh i uruchamiamy go z odpowiednimi parametrami. W katalogu /usr/lib/ssl/misc/ został utworzony katalog certyfikaty w którym znalazł się katalog z wygenerowanym certyfikatem użytkownika. Dla komputerów z systemem Windows należy używać certyfikatów PKCS12, dodatkowo dobrze jest dodać certyfikat CA do katalogu Głównych zaufanych urzędów certyfikacji o czym pisałem wcześniej.
Procedura instalacji certyfikatu osobistego jest niezwykle prosta -
klikamy na pliku certyfikatu, podajemy hasło i klikamy "Dalej" kilka
razy.
Aby sprawdzić czy nasz certyfikat zainstalował się poprawnie (pod windows) - uruchamiamy aplet certmgr.msc i w gałęzi certyfikaty osobiste powinniśmy znaleźć prawidłowe informacje.
Konfiguracja sieci
Nie będę tutaj pisał o konfiguracji w sensie trzeciej warstwy, ale o
niezbędnych zmianach, dzięki którym wszystko będzie działać jak należy.
Po pierwsze nasz serwer RADIUS jeszcze nie wie, z jakimi klientami może rozmawiać. Dlatego w pliku /usr/local/etc/raddb/clients.conf dodajemy wpis podobny do poniższego
client 172.16.4.254{
secret = Dzielone_Hasło
}
Po restarcie serwera RADIUS będzie on mógł się komunikować z AP
mającym adres 172.16.4.254, pod warunkiem że poda on współdzielone hasło
"Dzielone_Hasło". Przykładowa konfiguracja AP wygląda następująco:
W polu "Shared secret" wpisujemy oczywiście współdzielone hasło.
Pozostaje jeszcze kwestia konfiguracji bazy użytkowników. Można to zrobić na kilka sposobów, ale najprostszy z nich polega na dodaniu następującego wpisu w pliku users
DEFAULT Auth-Type = EAP
Reply-Message = "Witaj w mojej sieci"
Niestety system Windows zupełnie ignoruje odpowiedź powitalną.
Po
tych zmianach uruchamiamy radiusa w trybie debug i czekamy na
połączenie pierwszego użytkownika, którego konfigurację za chwilę
przedstawię.
Konfiguracja połączenia
Pod Ubuntu należy uruchomić aplet network managera. Poza standardowymi informacjami, w zakładce Zabezpieczenia wybieramy opcje jak na poniższym obrazku

W systemie Windows XP sprawa jest podobnie prosta. Po wybraniu odpowiedniego typu zabezpieczenia w zakładce Uwierzytelnianie w polu Typ protokołu EPA wybieramy opcję Karta inteligentna lub inny certyfikat

Teraz łączymy się z siecią bezprzewodową i obserwujemy co pojawia się na ekranie serwera RADIUS - w razie jakichkolwiek błędów będzie wiadomo co poprawić. Jeżeli wszystko przebiegło prawidłowo użytkownik zostanie zaakceptowany i połączy się z siecią.