Niestety ze względu na nagły napływ (żeby nie powiedzieć powódź) spraw nie miałem czasu niczego jeszcze napisać/stworzyć. Wrzucam więc tylko to co mogę i będę odpowiadał na ewentualne pytania.
================
Po pierwsze zakładam, że ktoś kto chce wgrać WPA+RADIUS ma już zainstalowaną działającą kartę wifi. Hostapd działa nie tylko na madwifi, ale ja tylko tak testowałem więc inne karty się pewnie ustawia inaczej

patrz link do orginalnego pliku konfiguracyjnego:
http://strony.aster.pl/qmq/nnd/hostapd/hostapd.conf
Po drugie zakładam, że nikt nie będzie 'na pałę' robił tego co tu napisałem bez pomyślenia i bez jakieś wiedzy. Nie znam się na Linuxie specjalnie i nie ufałbym mi w tych sprawach

Wielu rzeczy, które wydawały się oczywiste nie mówiłem, ale liczę na inwencję użytkowników.
No więc po kolei to jest jakoś tak:
1. Hostapd + jego konfiguracja
2. FreeRADIUS + konfiguracja
3. Wygenerowanie certyfikatów i innych plików do RADIUSa
4. Stworzenie skryptów uruchomieniowych
Wszystko jest skonfigurowane i u mnie działa, więc teoretycznie nic nie trzeba zmieniać
1. Ściągamy sobie .tar stąd:
http://strony.aster.pl/qmq/nnd/hostapd.tar
Niestety nie zdąrzyłem zrobić paczki, ale po strukturze widać co i jak ma być.
Jak chcemy tylko WPA-PSK bez RADIUSa to zmieniamy nazwę /etc/hostapd.conf.wpa na /etc/hostapd.conf
a jak nie to nic nie robimy.
Otwieramy więc ten plik i patrzymy czy wszystko OK - jest obkomentowany jak zresztą wszystkie /etc/hostapd*
Tam gdzie dwa hasła się podaje podać dwa takie same i zapamiętać.
2. FreeRADIUS jest spaczkowany tutaj:
http://strony.aster.pl/qmq/nnd/freeradius/PKGBUILD
http://strony.aster.pl/qmq/nnd/freeradi ... pkg.tar.gz
http://strony.aster.pl/qmq/nnd/freeradi ... pkg.tar.gz
http://strony.aster.pl/qmq/nnd/freeradi ... pkg.tar.gz
No więc instalujemy sobie to to:
pacman -U http://strony.aster.pl/qmq/nnd/freeradius/freeradius-1.1.3-1nnd.pkg.tar.gz
i jak wszystko poszło OK to jest wgrany. Pliki konfiguracyjne są w /etc/raddb/ gdzie się udajemy. Możemy sobie ręcznie ustawiać albo ściągnać .tar:
http://strony.aster.pl/qmq/nnd/radcfg.tari przegrać te pliki do wspomnianego folderu.
radiusd.conf jest ok i go olewamy
clients.conf edytujemy, ustawiamy co trzeba, zwłaszcza to zapamiętane podwójne hasło z hostapd.conf
users edytujemy, na samym dole wedle wzoru robimy
eap.conf - od linii 204 nas interesuje. Tu będziemy podawać potem (a można już) parametry certyfikatów itp. Patrz pkt.3, następny
Domyślnie ustawione jest na PEAP z autoryzacją user/pass po pliku users. Ale opcji jest wiele - wszystkie opisane w orginalnym pliku eap.conf, który w tym momencie już zastąpiliśmy naszym.
PEAP działa trochę jak SSL w http - tworzy bezpieczny tunel w którym zachodzi autoryzacja i ewentualna wymiana kluczy WPA
Uwaga!Wbrew obiegowej opinii certyfikaty wymagane są tylko po stronie serwera - klienci niczego nie potrzebują, poza user/pass
Uwaga! (tak, kolejna)
U mnie w domu wystapiły problemy z autoryzowaniem się klienta z win XP używającego menadżera wifi wbudowanego. Nie wiem czy to tylko u mnie czy ogólnie, ale stawiałbym na to, że ten menadżer jest do dupy. Po wgraniu oprogramowania od karty bezprzewodowej wszystko zadziałało z miejsca.
3. Będziemy potrzebować certyfikaty:
certyfikat, klucz prywatny, plik CA - wszystkie .pem
(Można użyć tych z Apache podobno, ale ja robiłem nowe)
ORAZ
plik Diffie-Hellmana i random.
Powiem szczerze, że nie bardzo wiem jak się te certyfikaty robi - ja użyłem skryptów z FreeRADIUSa które macie tu:
http://strony.aster.pl/qmq/nnd/certs.tarNależy wyedytować pliki CA.all i CA.certs i powpisywać swoje dane oraz zmienić hasło blablabla na własne (w obu plikach!). Potem włączamy ./CA.certs i się modlimy. Jak pójdzie OK to mamy co trzeba. Kopiujemy cert-srv.pem oraz ./demoCA/cacert.pem do katalogu gdzie RADIUs ma szukać certyifikatów np. /etc/raddb/certs/

O ile dobrze pamiętam tam już coś jest, więc najlepiej chyba zrobić swój katalog i w nim trzymać nasze nowe certyfikaty dla pewności, że będzie używać naszych. Oczywiście trzeba go ustawić w eap.conf
Teraz potrzebujemy pliki DH i random, a więc udajemy się do katalogu gdzie składujemy certyfikaty i robimy:
dh:
openssl dhparam -check -text -5 512 -out dh
(chwilę zajmie...)
random:
dd if=/dev/urandom of=random count=2
Mamy już wszystkie certyfikaty i pliki pochodne - konfigurujemy eap.conf (podajemy hasło do certyfikatów, ustawiamy ścieżki...).
4. Czas na skrypt uruchomieniowy. Tutaj możliwości jest sporo i zależą od tego co kto ma i czego kto chce.
Ale skupmy się na samym hostapd i radius. Ja to załatwiłem tak:
#!/bin/bash
. /etc/rc.d/functions
case $1 in
start)
radiusd -s -A &
hostapd -B /etc/hostapd.conf
;;
stop)
killall hostapd
killall radiusd
;;
esac
Nie jest to może elegancko, ale działa. Jak widać po linijce "./etc/rc.d/functions" miałem dorobić wyświetlanie czy się udało czy nie, ale tego nie zrobiłem. Wystarcz rzucić okiem na inne pliki aby sie zorientować jak to zrobić.
Uwaga!
Hostapd sam podnosi interface oraz go wyłącza! Nie potrzeba ręcznie go podosić, tym bardziej, że po ręcznym podniesieniu będzie widoczna sieć niezabezpieczna i dopiero po włączeniu hostapa się zabezpieczy. Jak gdzieś mamy ifconfig ath0 up/down to możemy je wywalić - hostapd zrobi to sam.
I to tyle, piszę wszystko niestety z pamięci, ale winno być OK.
------
Źródełka:
Artykuł SirRomana:
http://bydgoszcz.wsinf.edu.pl/~sirroman/art2.htm
Trylogia Micka Bauera:
http://www.linuxjournal.com/article/8017
http://www.linuxjournal.com/article/8095
http://www.linuxjournal.com/article/8151
Dokumentacja madwifi:
http://madwifi.org/wiki/UserDocs/HostAP
Artykuł jbibe:
http://text.dslreports.com/forum/remark,9286052
------
Proponuję też najpierw włączyć ręcznie FreeRADIUS z parametrami '-s -X' żeby włączyć tryb debug i przekonać się czy RADIUS działa OK.
Podobnie HostAPd z parametrem '-ddd /etc/hostapd.conf' najlepiej gdy już RADIUS w trybie debug działa, bo inaczej będzie klops. Wtedy możemy patrzeć czy działa lub co nie działa
Jak jest OK to zapisujemy skrypt uruchomieniowy w /etc/rc.d pod jakąś nazwą i dopisujemy do rc.conf.
Przepraszam za tak okrojony opis, ale niestety czasu brak... Postaram się odpowiadać na wszystkie pytania. A jak o czymś zapomniałem to czekam na wypomnienia
