NetworkShop 2006  Határidős wifi accountok

Határidős accountok WiFi rendszerekhez

Pásztor György

pasztor@bibl.u-szeged.hu Szegedi Tudományegyetem - Egyetemi Könyvtár

—

Bán Attila István

miham@bibl.u-szeged.hu

Szegedi Tudományegyetem - Egyetemi Könyvtár

Az előadás szerkezeti áttekintése

– A probléma és a körülmények specifikálása – A probléma megoldásához használt eszközök – A eszközök felhasználásának hogyanja

A probléma I.

A probléma: Adjunk a könyvtár használói számára drótnélküli internetelérést

Elvárások a rendszertől

– Biztonságos legyen

– A felhasználó számára egyszerűen telepíthető legyen – Egyszerű legyen a hozzá kapcsolódó adminisztráció

– Illeszkedjen be a meglévő hálózati infrastruktúránkba – Többféle WiFi accountot képesek legyünk kezelni

A probléma II.

Biztonság

Biztonsággal kapcsolatos kérdések:

– A forgalmazott adatokat ne lehessen ”road-warrior” eszközökkel lehallgatni

– Az accountokat lehetőség szerint, ne tudják egymástól ”ellopni”

Felhasználóbarátság

– Lehetőleg ne kelljen külön szoftvert telepíteni a laptopokra

– Gyorsan és könnyen beállítható legyen

A probléma III.

Egyszerű adminisztráció

– A hálózat vagy avval kapcsolatos konfigurációba ne kelljene belenyúlnia, csak a hálózat üzemeltetőinek és ne az accountot kiadó nem-technikai munkatársaknak.

– ,,kaparós sorsjegy” ötlet: Az igényeknek megfelelően legyártunk előre accountokat, amelyek az első használattól lépnek életbe, és egy megadott ideig élnek csak.

A probléma IV.

Az eddigi körülmények

– Adott egy hálózat az épületben (3750-es Routerek, és 2950-es Switchek)

– A hálózat üzemeltetéséhez adott egy radius szerver

– Adott a helyszín, ahol működnie kell: leárnyékolt részek, több emelet,

stb.

Többféle account

– ,,Normál” lejárós accountok, korlátozott interneteléréssel

– ,,VIP” accountok, amelyek nem járnak le, korlátlan netelérésük van, stb.

Eszközök I.

Beléptetés 802.1X-el: – MD5 auth elvetve, mert a windowsos kliensek SP után nem engedik – kliens certificate elvetve, mert:

– túl sok adminisztráció kellene a certek előállításához

– a certificateket a laptopokra fel kell telepíteni, így nem kifejezetten felhasználóbarát

– nehezebben oldható meg a lejáratása (gyakorlatilag egy user/passw párosra kihegyezett infrastruktúrát így is üzembe kellene hozzá helyezzünk)

– PEAP+mschapv2 lett a nyerő: szinte minden supplicant ismeri

Eszközök II.

Már adott eszközök, amiket felhasználtunk, kiegészítettünk

A freeradius már adott volt, mint radius szerver(authenticator)

– plain text fájlról átálltunk sql backendre, így ha egy új bejegyzést tettünk, nem kellett a radius szervert újraindítani

– A freeradius saját sql sémáit módosítva létre tudunk hozni olyan táblákat, amelyekbe bizonyos adatok dinamikusan jellennek meg az accountok élettartamától függően

Eszközök III.

A többféle accountok problémaköre

– A különböző típusú accountok különböző vlanokba (802.1Q trunking)

– A radius válaszban pedig megmondjuk, hogy melyik vlan-ba kerüljön a kliens

Egy AP felé néző port konfigja:

interface FastEthernet0/2 switchport trunk native vlan 200 switchport trunk allowed vlan 200,210,211,607 switchport mode trunk no snmp trap link-status spanning-tree portfast

Eszközök IV.

A biztonság problémaköre

WPA, ill. legacy célokra dinamikus 128 bites WEP – Változó WEP kulcs

– Kliensenként változik a kulcs (radius szervert igényel!)

– Az idő elteltével a kliensekhez rendelt kulcs helyett is újat generál Részletek az AP konfigból:

interface Dot11Radio0 encryption vlan 607 mode ciphers tkip wep128 encryption vlan 211 mode ciphers tkip wep128 encryption vlan 210 mode ciphers tkip wep128 broadcast-key vlan 607 change 1200 broadcast-key vlan 211 change 1200 broadcast-key vlan 210 change 1200 ssid GUEST

vlan 210

authentication open eap eap˙ methods

authentication key-management wpa optional accounting acct˙ methods Részletek II.:

ssid SZTE-EK vlan 211 authentication open eap eap˙ methods authentication key-management wpa optional accounting acct˙ methods guest-mode

ssid SZTE-EK-VIP vlan 607 authentication open eap eap˙ methods authentication key-management wpa optional accounting acct˙ methods

dot1x reauth-period 1200

Megoldás I.

A ,,lejáró” accountok

CREATE TABLE kvt˙ wifi˙ access ( username text, start˙ time timestamp without time zone DEFAULT

’1970-01-01 00:00:00’::timestamp without time zone, valid˙ period integer DEFAULT 0, expire˙ date timestamp without time zone DEFAULT

’1970-01-01 00:00:00’::timestamp without time zone, id integer DEFAULT

nextval(’public.static˙ radcheck˙ id˙ seq’::text) NOT NULL );

Megoldás II.

A lejáró accountok ellenőrzése

CREATE VIEW dynamic˙ radcheck AS

SELECT kwa.id, kwa.username, ’User-Password’::text AS attribute, ’==’::text AS op, ’guestwifi’::text AS value

FROM kvt˙ wifi˙ access kwa;

Radius konfigmod (freeradius/postgresql.conf):

postauth˙ query = ”UPDATE kvt˙ wifi˙ access SET start˙ time = ’now’, “ expire˙ date = now() + valid˙ period * interval ’1 second’ “ WHERE username = ’%User-Name’ “

AND start˙ time = ’1970-01-01’::timestamp;”

Megoldás III.

Minden radius attributum ellenőrzése

CREATE VIEW radcheck AS

SELECT dynamic˙ radcheck.id, dynamic˙ radcheck.username, dynamic˙ radcheck.attribute, dynamic˙ radcheck.op, dynamic˙ radcheck.value

FROM dynamic˙ radcheck UNION ALL SELECT static˙ radcheck.id, static˙ radcheck.username,

static˙ radcheck.attribute, static˙ radcheck.op, static˙ radcheck.value

FROM static˙ radcheck;

Megoldás IV.

A lejáró accountok csoportba sorolása

CREATE VIEW dynamic˙ usergroup AS

SELECT 0 AS id, kwa.username,

CASE WHEN ((kwa.expire˙ date = ’1970-01-01 00:00:00’::timestamp

without time zone)

OR ((kwa.expire˙ date)::timestamp with time zone ¿ now())) THEN ’wifi’::text ELSE ’cage’::text END AS groupname

FROM kvt˙ wifi˙ access kwa;

Megoldás V.

A csoportok összefésülése

CREATE VIEW usergroup AS

SELECT dynamic˙ usergroup.id, dynamic˙ usergroup.username,

dynamic˙ usergroup.groupname FROM dynamic˙ usergroup UNION ALL SELECT static˙ usergroup.id, static˙ usergroup.username,

static˙ usergroup.groupname FROM static˙ usergroup;

Megoldás VI.

Klasszikus radius adminisztráció

A klasszikus radius bejegyzések:

INSERT INTO static˙ radcheck (username, attribute, op, value)

VALUES (’pasztor’, ’Auth-Type’, ’:=’, ’Local’);

... VALUES (’pasztor’, ’User-Password’, ’==’, ’s3cr3t’); ... VALUES (’miham’, ’Auth-Type’, ’:=’, ’Local’); ... VALUES (’miham’, ’User-Password’, ’==’, ’s3cr3t2’); INSERT INTO radreply (username, attribute, op, value)

VALUES (’pasztor’, ’Service-Type’, ’=’, ’Login-User’);

... VALUES (’miham’, ’Service-Type’, ’=’, ’Login-User’);

Megoldás VII.

WiFi csoportok vsa attribútumai

wifi és vip csoport:

INSERT INTO radgroupreply (groupname, attribute, op, value)

VALUES (’wifi’, ’Service-Type’, ’=’, ’Framed-User’);

... VALUES (’wifi’, ’Tunnel-Type:1’, ’=’, ’13’); ... VALUES (’wifi’, ’Tunnel-Medium-Type:1’, ’=’, ’6’); ... VALUES (’wifi’, ’Tunnel-Private-Group-ID:1’, ’=’, ’210’);

... VALUES (’vip’, ’Service-Type’, ’=’, ’Framed-User’); ... VALUES (’vip’, ’Tunnel-Type’, ’=’, ’:1:13’); ... VALUES (’vip’, ’Tunnel-Medium-Type’, ’=’, ’:1:6’); ... VALUES (’vip’, ’Tunnel-Private-Group-ID’, ’=’, ’:1:607’);

Megoldás VIII.

vip&mac

eap.conf:

eap {

default˙ eap˙ type = peap

...

peap {

default˙ eap˙ type = mschapv2 copy˙ request˙ to˙ tunnel = yes

}

... }

Megoldás IX.

WiFi accountok managemntje

vip account:

INSERT INTO static˙ radcheck (username, attribute, op, value)

VALUES (’vip00’,’User-Password’,’==’,’vippw00’); ... VALUES (’vip00’,’Calling-Station-Id’,’==’,’0003.1b57.a443’); INSERT INTO static˙ usergroup (username, groupname)

VALUES (’vip00’,’vip’);

nem vip account:

INSERT INTO kvt˙ wifi˙ access (username, start˙ time,

valid˙ period, expire˙ date)

VALUES (’hSjZI1GLlmPU’, ’1970-01-01 00:00:00’, 345600, ’1970-01-01 00:00:00’); online cím:

http://www.bibl.u-szeged.hu/˜ pasztor/nws2k6/