Věnujte prosím pozornost plánovanému ukončení provozu eduroam-simple.
Ne všichni uživatelé mají na svých počítačích možnost autentizace prostřednictvím protokolu 802.1x, tento protokol nemusí dostatečně podporovat buď operační sytém, nebo WiFi hardware. Pro takové uživatele je nutné vybudovat alternativní možnost, kterou je např. registrace prostřednictvím WWW rozhraní. Možností, jak toto rozhraní implementovat, je celá řada. Je možné buď využít hotových produktů, jako jsou např. ChillySpot, nebo jednodušší Tino a nebo vytvořit vlastní řešení. Touto cestou jsme se vydali v CESNETu a vytvořili tzv. eduroam-simple balíček, určený právě pro eduroam. Tento balíček je nyní volně k dispozici a jeho popisem se zabývá následující text.
Bránu do Internetu pro WiFi stanice tvoří firewall, který zároveň slouží jak pro ochranu stanic podporujících 802.1x (dále jen přístup eduroam), tak i jako ochrana a filtr pro stanice regisrované prostřednictvím WWW stránky (dále jen přístup eduroam-simple). Firewall má tři rozhraní, jedno externí a dvě interní - jedno pro přístup eduroam a jedno pro přístup eduroam-simple. Každé z obou rozhraní má vlastní VLAN, které je na přístupových bodech přiřazeno vlastní SSID, přičemž u eduroam je na přístupových bodech u odpovídajícího SSID zapnuta autentizace 802.1x a firewall umožňuje stanicím v této síti přístup do Internetu bez omezení, u eduroam-simple je naopak řízení přístupu ponecháno na firewallu.
Uživatel, který použije síť eduroam-simple, má na počátku uzavřený přístup k Internetu. Otevře-li si WWW prohlížeč, z jakékoliv stránky prohlížené jak protokolem HTTP, tak i HTTPS, bude přeměrován na registrační stránku firewallu. Zde musí vyplnit své eduroam kredenciále a po úspěšném ověření je mu přístup do sítě otevřen. Jedná-li se o testovacího uživatele, je pouze oznámeno úspěšné ověření, přístup do sítě však uživatel nezíská.
Obrázek: Ukázka registrace stanice přes rozhraní Scaa
Zaregistrovaná stanice musí být aktivní, pokud má její registrace zůstat platná. Její aktivita je periodicky každé tři minuty ověřována prostřednictvím ARP pingu a pokud se dvě po sobě následující ověření nepodaří od stanice získat odpověď, je její registrace zrušena a uživatel jí musí zopakovat. Stejně tak je expirován i záznam stanice, jejíž registrace je starší než den.
Balíček eduroam-simple se skládá ze skriptů implementujících WWW rozhraní a autorizaci proti radius serveru, dále ze systémových skriptů zajišťujících konfiguraci firewallových pravidel, expiraci registrací a nastavování směrování a nakonec ze sady konfiguračních souborů pro http a dhcp server. V binární podobě je zde též autentizační radiusová knihovna a bezpečný identd demon, který správně reaguje na auth dotazy serveru a pritom neumoznuje napadeni systemu z vnejsku. Pro snadnou instalaci je zde také instalační skript a skript, který je třeba spustit po každém zavedení systému.
Pro správnou funkci systému je vyžadována libovolná plnohodnotná distribuce Linuxu na intelovské platformě založená na GLibc verze alespoň 2.1. Tato distribuce by kromě běžných balíků měla obsahovat Apache verze 1.3.x, BIND verze 9, MySQL verze 3.20.x nebo vyšší, DHCPD verze 3.0 a dále také OpenSSL a PHP4.
Jak bylo řečeno výše, počítač pro firewall by měl mít nejméně tři
síťová rozhraní. U prvního z nich, eth0, se počítá s připojením směrem
ven, toto rozhraní by mělo mít veřejnou IP adresu a jak přímý, tak
i reverzní záznam v DNS. Jméno firewallu může být zvoleno libovolně,
musí však korespondovat vnitřní pojmenovaní stanice (nejčastěji uvedené
v /etc/HOSTNAME
) a jméno zavedené v DNS. Druhé rozhraní by mělo
být připojeno do VLAN pro přístup eduroam-simple a třetí do VLAN pro
přístup eduroam. Druhé a třetí rozhraní by mělo sdílet adresový prostor,
není tedy zapotřebí dvou IP rozsahů. Adresy jsou dynamicky přidělovány do
obou VLAN, směrování na rozhraní firewallu je řešeno rovněž dynamicky
přidáváním položek za běhu do směrovací tabulky jádra. IP rozsah
přidělený vnitřním sítím se předpokládá veřejný. Pro použití balíčku
eduroam-simple s překladem privátních adres je nutné jej upravit.
Po nainstalování Linuxu a zkonfigurování síťových rozhraní (eth1 by mělo mít první adresu z rozsahu interní sítě, eth2 druhou) je nutné zkonfigurovat firewall pro omezení přístupu z vnějšku. Ve většině případů pravděpodobně nebude zapotřebí na firewallu provozovat žádnou veřejnou službu (kromě DNS), takže firewall můžeme uzavřít např. příkazy
iptables -P INPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 --dport 53 -j ACCEPT iptables -P FORWARD DROP iptables -A FORWARD -i lo -j ACCEPT iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P OUTPUT ACCEPT
umístěnými ve vhodném startovacím skriptu. Některé distribuce Linuxu umožňují uložit aktuální stav iptables a při startu systému tuto uloženou konfiguraci samy načtou. O pravidla pro interní rozhraní není nutné se starat, vyřeší je eduroam-simple.
Další konfigurací, kterou je nutné před instalací balíčku eduroam-simple
provést, je nastavení služby DNS. Předpokládá se, že nameserver pro reverzní
doménu vnitřní sítě poběží na firewallu a že stanice ve vaší WiFi síti
budou ve jmenném prostoru subdomény roam
pod doménou vaší organizace,
tj. doménou, ve které se nalézá samotný firewall. Je-li tedy jméno firewallu
např. roamfw.organization.org
, pak stanice budou dynamicky vytvářeny
v doméně roam.organization.org
. I pro tuto doménu by měl být
primárním nameserverem firewall, aby mohly být nově připojené počítače
zaneseny DHCP serverem do DNS. Výše uvedené domény tedy nadefinujte
a zónové soubory ponechte buď prázdné, nebo do nich zaneste pouze rozhraní
firewallu.
Poslední konfigurací je zastavení zbytečných služeb a spuštění démonů
MySQLD a InetD. Zajistěte, aby se při startu systému pouštěly pouze tyto
dva démony, případně ještě démon SSHD pro vzdálenou administraci firewallu.
Apache se svou konfigurací spouští startovací skript rc.eduRoam
(viz. dále). V konfiguračním souboru /etc/inetd.conf
zakomentujte
zbytečné služby, tj. pravděpodobně vše. Démon je však potřeba ponechat
spuštěný, potřebné služby sem doplní instalační skript z balíčku
eduroam-simple.
Nyní si stáhněte balíček
eduroam-simple a rozbalte jej
v kořenovém adresáři firewallu. Vytvořený adresář eduRoam
již
zůstane na svém místě a nelze ho bez úprav balíčku přesunout jinam.
V dalším kroku si prohlédněte soubor /eduRoam/etc/eduRoam.cfg
a zkontrolujte v něm, zda cesty ke zde uvedeným programům odpovídají
jejich skutečnému umístění ve vašem systému. Pokud se některý program
nalézá např. v adresáři /usr/local/bin
a balíčkem je očekáván
v /usr/bin
, cestu opravte.
V souboru /eduRoam/www/etc/scaa.conf
nastavte správné
parametry pro spojení s vaším Radius serverem.
Nyní budete potřebovat svůj osobní certifikát, aby mohl být vytvořen
certifikát serverový. Pokud osobní certifikát nevlastníte, požádejte
o jeho vystavení svoji certifikační autoritu. Zároveň si obstarejte
potvrzení o tom, že můžete certifikační autoritu žádat o serverový
certifikát pro svůj firewall, nebo obecně pro jakýkoliv počítač ve
Vaší doméně. Osobní certifikát zkopírujte do souboru
/eduRoam/etc/ssl.crt/usercrt.pem
a jeho tajný klíč do souboru
/eduRoam/etc/ssl.key/userkey.pem
. Tyto soubory jsou zde potřeba
pouze dočasně a po dokončení instalace je možné (a doporučené) je
odstranit.
Hlavním krokem celé instalace je spuštění skriptu
/eduRoam/bin/eduRoam.install
. Proveďte to nyní. Na počátku budete
dotázáni na heslo, kterým je zajištěn Váš osobní tajný klíč, zadejte ho.
Po vygenerování žádosti o serverový certifikát skript provede několik
dalších kroků, o své činnosti Vás informuje v angličtině. Sledujte, zda
nedošlo k nějaké chybě a pokud ano, odstraňte její příčinu.
Vezměte žádost o serverový certifikát a odešlete ji Vaší certifikační
autoritě. Podepsanou žádost naleznete v souboru
/eduRoam/etc/ssl.req/serverreq.smi
. Po vydání certifikátu ho
uložte do souboru /eduRoam/etc/ssl.crt/serversrt.pem
a spusťte
Apache příkazem httpd -f /eduRoam/etc/apache/httpd.conf
.
Do konfigračního souboru BINDu vložte klíč vygenerovaný do souboru
/eduRoam/etc/dhcpd.conf.head
. Klíč pojmenujte DHCP_UPDATER
a přiřaďte ho ke všem doménám (viz. dokumentace k serveru BIND).
Restartujte BIND např. příkazem rndc restart
.
Na vhodné místo startovacích skriptů vložte volání skriptu
/eduRoam/bin/rc.eduRoam
. Termín "vhodné místo" zavisí na použité
distribuci Linuxu. Skript rc.local
není v řadě případů špatnou
volbou.
Do crontabulky vložte volání skriptu /eduRoam/bin/CRL-update
.
Skript stahuje seznam odvolání certifikátů a měl by se spustit alespoň
jednou denně. Seznam odvolání bude mít smysl zejména v dalších verzích,
kdy bude možná autorizace klientským certifikátem uloženým např.
v čipové bekontaktní kartě.
Tím je instalace ukončena, doporučujeme provést restart systému
a zkontrolovat, zda při spouštění rc.eduRoam
nedochází k chybám.
Adresář /eduRoam/etc
:
/apache/httpd.conf
/apache/virtuals.conf
/ssl.crl/ca-bundle.pem
CRL-update
z WWW stránky certifikační autority./ssl.crt/ca-bundle.pem
CRL-update
z WWW stránky certifikační autority./ssl.crt/servercrt.pem
/ssl.key/serverkey.pem
/ssl.req/serverreq.cfg
/ssl.req/serverreq.pem
/ssl.req/serverreq.smi
dhcpd.conf
dhcpd.conf.head
eduRoam.cfg
fwtab
nattab
Adresář /eduRoam/bin
:
CRL-update
arping
dumbidentd
eduRoam.install
in.recfg
rc.eduRoam
reconfig
rupdate
sniffler
Adresář /eduRoam/lib
:
radius.so
Adresář /eduRoam/www
:
/etc/scaa.conf
img
inc
index.php
Balíček eduroam-simple eduroam-simple-1.0.tar.bz2