Časově omezená hesla pro Wi-Fi

martin

Časově omezená hesla pro Wi-Fi
« kdy: 04. 01. 2014, 20:26:59 »
Ahoj,
rad bych mel WiFi sit pro vice uzivatelu, kde by se kazdy mohl pripojit pouze na predem danou dobu a pripojeni bylo maximalne jednoduche.
Captive portal nechci, nemam rad prihlasovani pres prohlizec (internet neni jen web).
WPA-Enterprise (802.1X s RADIUSem), kde by kazdy uzivatel mel jmeno a heslo pro jednoduchost pouzit nechci. Staci se podivat na par "jednoduchych" navodu na nastaveni eduroamu pod Windows.

Napadlo me mit jednu WiFi sit s vice hesly (WPA PSK). Hostapd to podporuje:
Citace
# Optionally, WPA PSKs can be read from a separate text file (containing list
# of (PSK,MAC address) pairs. This allows more than one PSK to be configured.
# Use absolute path name to make sure that the files can be read on SIGHUP
# configuration reloads.
#wpa_psk_file=/etc/hostapd.wpa_psk
Mnohem zajimaveji vypada spojeni PSK a RADIUSu:
Citace
# Optionally, WPA passphrase can be received from RADIUS authentication server
# This requires macaddr_acl to be set to 2 (RADIUS)
# 0 = disabled (default)
# 1 = optional; use default passphrase/psk if RADIUS server does not include
#   Tunnel-Password
# 2 = required; reject authentication if RADIUS server does not include
#   Tunnel-Password
#wpa_psk_radius=0
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=hostapd/hostapd.conf

Moje predstava: vygeneruju si 50 hesel s platnosti na 8 hodin a 100 hesel na 24 hodin. Uzivatel se pripoji k bezne WPA-PSK siti a pokud se jeho heslo najde v databazi, AP ho pusti. Zaroven si ulozi jeho MAC adresu a cas prvniho pripojeni. Po celou dobu platnosti se pujde s timto heslem pripojit, ale pouze z teto MAC adresy.

Neni to bezpecnostne nejlepsi (hlavne ty MAC adresy), ale v porovnani s captive portaly mnohem lepsi. A jednodussi nez pripojeni k siti s WPA-Enterprise. Navic treba muj Amazon Kindle 3 umi pouze WPA-PSK wifi (takze eduroam a podobne se nekona).

Nikde jsem na to poradne nic nenasel. Je to realne? Ve FreeRADIUSu by snad slo vyuzit modul expiration.

1) Slo by na AP pouzit Mikrotik a na server FreeRADIUS? Podle toho co jsem nasel, tak snad ano. Jen nevim, jestli stejne jako je moje predstava.
http://mum.mikrotik.com/presentations/PL12/daniel.pdf
http://forum.mikrotik.com/viewtopic.php?p=153346#p153346

2) Slo by na AP pouzit linux a hostapd a na server FreeRADIUS?

Dekuji za rady :-)
« Poslední změna: 05. 01. 2014, 20:47:26 od Petr Krčmář »


anonym

Re:Vice hesel pro jednu WiFi sit a jejich casova platnost
« Odpověď #1 kdy: 04. 01. 2014, 20:55:45 »
pro WPA-PSK se RADIUS nekona

pouzij WPA-EAP, nastaveni je cca o 3 kliky mysi delsi nez u WPA-PSK, v RADIUS serveru si pak muzes delat co chces (tedy nejakou tu databazi loginu a jejich expiration)

u te expiration si uvedom kdy se AP domlouva se serverem. prakticky to znamena ze pokud se uzivatel overi 1s pred expiration tak je pripojenej az do pristiho reauth, kterej nebude moc casto

jinak 1) i 2) ano, pokud budes mit WPA-EAP

pokud nejake zarizeni neumi WPA-EAP tak se obrat na vyrobce, myslim ze je to podminka pro "wifi certified"

Jenda

Re:Vice hesel pro jednu WiFi sit a jejich casova platnost
« Odpověď #2 kdy: 04. 01. 2014, 21:45:33 »
Protokol WPA-PSK umí dělat handshake na stejné síti s různými hesly a třeba na openwrt tuším jde nastavit víc hesel k síti. Zkusil bych to nějak obšlehnout a nastavit tímto způsobem vlastní hostapd. Expirace půjde v nejhorším udělat změnou konfigurace (odstraněním expirovaného hesla) + reloadem.

martin

Re:Vice hesel pro jednu WiFi sit a jejich casova platnost
« Odpověď #3 kdy: 04. 01. 2014, 22:56:47 »
Protokol WPA-PSK umí dělat handshake na stejné síti s různými hesly

Presne to jsem myslel. V nastaveni hostapd jsou na to volby:
Kód: [Vybrat]
#wpa_psk_file=/etc/hostapd.wpa_psk

macaddr_acl=2 # use external RADIUS server (accept/deny lists are searched first)
#wpa_psk_radius=2 # required; reject authentication if RADIUS server does not include Tunnel-Password
Tedy textovy soubor se seznamem, nebo RADIUS. RADIUS pak ale slouzi pouze jako jednoducha databaze hesel (aspon to tak chapu).

Uvazoval jsem o wpa_psk_file jenze musi mit radky ve tvaru "PSK,MAC address" a ja MAC adresu zjistim az po prvnim pripojeni klienta.
Soubor bych mohl generovat nejakym skriptem a treba jednou za 10 minut udelat reload hostapd. Donutim tak udelat klienty reauth (jak resil nekdo v komentari vyse), nebo se rozpadne spojeni?
U freeradiusu mam mnohem lepsi moznosti na manipulaci s mac adresami, nez u textoveho souboru co pouziva hostapd.

U hostapd se pise:
Citace
This allows per-device PSK to be configured for WPA-Personal using a
RADIUS authentication server. This uses RADIUS-based MAC address ACL
(macaddr_acl=2), i.e., Access-Request uses the MAC address of the
station as the User-Name and User-Password. The WPA passphrase is
returned in Tunnel-Password attribute in Access-Accept. This
functionality can be enabled with the new hostapd.conf parameter,
wpa_psk_radius.
Takze jestli chapu dobre: klient se pripoji k hostapd. Hostapd zna jeho MAC adresu a PSK co dostal od klienta. Hostpad vezme MAC adresu a jako jmeno a heslo ji posle radiusu. Radius koukne jestli ma MAC adresu v databazi a kdyz ano tak vrati PSK co zna. Hostapd porovna PSK od klieta a od radiusu a kdyz se shoduji, pusti klienta do wifi.

Podle http://lists.shmoo.com/pipermail/hostap/2011-December/024859.html by to jit mohlo.

Zasadni problem: podle konfigu umi hostapd tahat PSK z radiusu, ale nikde jsem nenasel jak na to nastavit radius :-(

ynezz

Re:Vice hesel pro jednu WiFi sit a jejich casova platnost
« Odpověď #4 kdy: 05. 01. 2014, 12:04:16 »
Ten radius tam mas popsany. Proste hostapd ti posle v Access-Request pozadavku v atributech User-Name a User-Password MAC toho klienta a ty musis v Access-Accept odpovedi pridat Tunnel-Password attribut, ktery bude obsahovat to PSK pro hostapd.

Pro ten Mikrotik pak misto Tunnel-Password musis PSK vracet v Mikrotik-Wireless-PSK atributu (moc jsem to necetl).


martin

Re:Časově omezená hesla pro Wi-Fi
« Odpověď #5 kdy: 06. 01. 2014, 03:10:00 »
Proad se nedari. Radius stale vraci access-reject. Problem je u hostpad i u testovani pres radclienta.
Na konci /etc/freeradius/users  mam:
Kód: [Vybrat]
00:03:8f:05:b0:ca Auth-Type := Accept
Tunnel-Password := "tajneheslo"
a po poslani zadosti vrai radius:
Kód: [Vybrat]
rad_recv: Access-Request packet from host 192.168.1.86 port 58937, id=0, length=143
User-Name = "00038f05b0ca"
User-Password = "00038f05b0ca"
Called-Station-Id = "00-10-D1-8D-2A-9D:TEST"
NAS-Port-Type = Wireless-802.11
Calling-Station-Id = "00-03-8F-05-B0-CA"
Connect-Info = "CONNECT 11Mbps 802.11b"
Message-Authenticator = 0x48e85ef50155f0c07b80e1f150cbb82f
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "00038f05b0ca", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING! No "known good" password found for the user.  Authentication may fail because of this.
++[pap] returns noop
ERROR: No authenticate method (Auth-Type) found for the request: Rejecting the user
Failed to authenticate the user.
Using Post-Auth-Type Reject
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject] expand: %{User-Name} -> 00038f05b0ca
 attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 0 to 192.168.1.86 port 58937
Waking up in 4.9 seconds.
Cleaning up request 0 ID 0 with timestamp +36
Ready to process requests.
Jak jinak mam povolit MAC adresu klienta? Co delam spatne?