RADIUS

From HoerupWiki
Jump to: navigation, search

se også http://www.smallnetbuilder.com/content/view/30213/98/

Generic Radius

Diverse

FreeRADIUS

Radius attribute list

Freeradius artikler

Howto

Disse noter er baseret på freeradius 1.1.x på en debian 3.1 (Skrevet juni 2006)

Quick'n'dirty introduktion til opsætning af WPA-enterprise radius med mysql-backend

I denne context betyder NAS Network Access Server, dvs en enhed der kan give adngang til netværket (f.eks. access point eller vpn concentrator)

  1. Opbyg noget Basic knowledge
    1. Læs et par artikler om WPA-enterprise og sikre dig at du har styr på de forskellige EAP metoder -
    2. Det vil være en fordel hvis du læser RFC'erne bag RADIUS protokollen
      1. RFC 2865 specificerer RADIUS protokollen.
      2. Radius accounting står i RFC 2866
      3. RFC 2869 Beskriver nogle udvidelser til radius
  2. Installér FreeRADIUS, note: std. debian pakker indeholder ikke EAP/TLS, EAP/TTLS, EAP/PEAP. En alm. recompile fra debian source kan også give problemer.
  3. Vælg et setup med EAP og krypterings-algoritme du vil bruge. Det er min erfaring at et WPA/EAP/PEAP/ms-CHAPv2 over TKIP kan bruges på det bredeste udvalg af platforme.
  4. Konfigurér freeradius f.eks. som i denne HOWTO (howto'en bygger på EAP/PEAP/ms-chap-v2)
    1. husk at tilføje en statisk bruger i /etc/freeradius/users (bør fjernes når at test-fasen er overstået)
    2. Du behøver ikke at generere nøglerne som beskrevet i sektion 2, "Obtaining certificates" så længe at det kun er et til test - men det skal gøres inden at opsætningen sættes i drift, da det er alt for usikkert at bruge de pre-genererede nøgler der følger med freeradius
  5. start freeradius fra en shell med freeradius -x på den måde bliver al debug info skrevet til std-out og man kan følge med i authentikation processen. (Brug evt -X istedet, hvis du vil have ekstra debug info)
  6. afprøv konfig'en med f.eks. radtest. radclient eller radeapclient kan også bruges.
    1. Usage: radtest user passwd radius-server nas-port-number clientsecret
  7. konfigurér dit access point til at koble op i mod radius-serveren
  8. konfigurér en trådløs klient til wpa/radius med den korrekte godkendelsesprotokol(EAP) og med samme krypteringsalgoritme som du satte på accesspointet (TKIP vs AES/CCMP)
  9. afprøv klient-opsætningen med den statiske bruger
  10. Nu er vi klar til at konfigurere sql backenden - følg freeradius & mysql howto'en fra sektionen "Setting up the RADIUS database in MySQL" og frem.
    1. Du bør også læse sektionen om rlm_sql i freeradius' wiki
  11. Sørg for at brugeren bliver tilknyttet "Auth-Type" ":=" "EAP" (enten i radcheck eller radgroupcheck tabellen) - Hvis at den samme radius account skal bruges med flere godkendelses typer, bør man slet ikke sætte en Auth-Type, men derimod lade freeradius selv finde ud af det. Men man kan dog sætte værdien hvis at brugeren/gruppen kun skal kunne komme på med én godkendelses-type.

Noter

  1. hvis at du vil bruge freeradius-dialupadmin som webinterface bør du også oprette tabellerne, der er defineret i /usr/share/freeradius-dialupadmin/sql/*.sql
  2. Sådan sættes user expiration 2
  3. Password-Retry
  4. En account kan disables ved at sætte "Auth-Type" ":=" "Reject" (du kan evt. sætte en "Reply-Message" - men det er ikke sikkert at din NAS kan relay'e beskeden videre til brugeren - men man kan bruge den til at registrere hvorfor at accounten var disabled)
  5. Time limited accounts 1 2. Læs mere om Login-Time attributten i doc/README, sektion 3g
  6. Hvis du mangler hjælp, prøv på freeradius' mailing list eller søg i listens arkiv
    1. Der er også mange guldkorn i /usr/share/doc/freeradius/, men mange af dokumenterne er gzip'ed, så start med at lave en gunzip *, så man kan søge i dem med grep eller lign.

Accounting

RADIUS bruges kan også bruges til at registrerer hvor lang tid at brugeren har været logget på eller hvor meget data der er overført, men for at få dette til at virke kræver det at din NAS kan afsende RADIUS-accounting pakker - f.eks. kan mit Linksys WAP54G ikke afsende accounting pakker, men bruger udelukkende radius serveren til brugergodkendelse.

Expiration eksempel

SELECT * FROM radcheck WHERE UserName = 'guestuser35'
+----+-------------+-----------------------+----+----------------------+
| id | UserName    | Attribute             | op | Value                |
+----+-------------+-----------------------+----+----------------------+
| 35 | guestuser35 | Password              | := | test                 |
| 36 | guestuser35 | Expiration            | := | 24 May 2006 23:00:00 |
+----+-------------+-----------------------+----+----------------------+

Linux config : wpa_supplicant

Her er en en section til /etc/wpa_supplicant.conf på linux klienter:

network {
    ssid="mywireless"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="myuser"
    password="mypassword"
    phase2="auth=MSCHAPV2"
}

Password eller identity+password kan udelades, men skal så indtastes via wpa_cli programmet eller wpa_gui. Hvis at en alm. bruger skal kunne håndtere wpa_cli/wpa_gui, kig da på ctrl_interface_group-direktivet i conf'en

Som default vil wpa_supplicant prøve både TKIP og AES/CCMP som kryptering, så der er strengt taget ingen grund til at angive dette