Difference between revisions of "RADIUS"

From HoerupWiki
Jump to: navigation, search
(Noter)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
 +
se også http://www.smallnetbuilder.com/content/view/30213/98/
  
 
=Generic Radius=
 
=Generic Radius=
Line 33: Line 35:
  
 
=Howto=
 
=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
 
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)
  
 
#Opbyg noget Basic knowledge
 
#Opbyg noget Basic knowledge
Line 42: Line 48:
 
###Radius accounting står i RFC 2866
 
###Radius accounting står i RFC 2866
 
###RFC 2869 Beskriver nogle udvidelser til radius
 
###RFC 2869 Beskriver nogle udvidelser til radius
#Installér FreeRADIUS, note: std. debian pakker indeholder ikke EAP/TLS, EAP/TTLS, EAP/PEAP. En alm. recompile fra debian source kan også give [http://lists.cistron.nl/pipermail/freeradius-users/2004-December/038781.html problemer]. Brug evt. mine [http://t-hoerup.dk/debs/freeradius sarge pakker]
+
#Installér FreeRADIUS, note: std. debian pakker indeholder ikke EAP/TLS, EAP/TTLS, EAP/PEAP. En alm. recompile fra debian source kan også give [http://lists.cistron.nl/pipermail/freeradius-users/2004-December/038781.html problemer].
#Konfigurér freeradius f.eks. som i denne [http://www.tldp.org/HOWTO/8021X-HOWTO/ HOWTO] (howto'en bygger på EAP/PEAP: [http://en.wikipedia.org/wiki/MS-CHAPv2 ms-CHAPv2])
+
#Vælg et setup med EAP og krypterings-algoritme du vil bruge. Det er min erfaring at et WPA/EAP/PEAP/[http://en.wikipedia.org/wiki/MS-CHAPv2 ms-CHAPv2] over TKIP kan bruges på det bredeste udvalg af platforme.
 +
#Konfigurér freeradius f.eks. som i denne [http://www.tldp.org/HOWTO/8021X-HOWTO/ HOWTO] (howto'en bygger på EAP/PEAP/ms-chap-v2)
 
##husk at tilføje en statisk bruger i <code>/etc/freeradius/users</code> (bør fjernes når at test-fasen er overstået)
 
##husk at tilføje en statisk bruger i <code>/etc/freeradius/users</code> (bør fjernes når at test-fasen er overstået)
 +
##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
 
#start freeradius fra en shell med <code>freeradius -x</code> 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)
 
#start freeradius fra en shell med <code>freeradius -x</code> 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)
 
#afprøv konfig'en med f.eks. <code>radtest</code>. <code>radclient</code> eller <code>radeapclient</code> kan også bruges.
 
#afprøv konfig'en med f.eks. <code>radtest</code>. <code>radclient</code> eller <code>radeapclient</code> kan også bruges.
Line 53: Line 61:
 
#Nu er vi klar til at konfigurere sql backenden - følg [http://www.frontios.com/freeradius.html freeradius & mysql howto'en] fra sektionen "Setting up the RADIUS database in MySQL" og frem.
 
#Nu er vi klar til at konfigurere sql backenden - følg [http://www.frontios.com/freeradius.html freeradius & mysql howto'en] fra sektionen "Setting up the RADIUS database in MySQL" og frem.
 
##Du bør også læse sektionen om [http://wiki.freeradius.org/index.php/Rlm_sql rlm_sql] i freeradius' wiki
 
##Du bør også læse sektionen om [http://wiki.freeradius.org/index.php/Rlm_sql rlm_sql] i freeradius' wiki
#Sørg for at brugeren bliver tilknyttet "Auth-Type" ":=" "EAP" (enten i <code>radcheck</code> eller <code>radgroupcheck</code> tabellen)
+
#<strike>Sørg for at brugeren bliver tilknyttet "Auth-Type" ":=" "EAP" (enten i <code>radcheck</code> eller <code>radgroupcheck</code> tabellen)</strike> - Hvis at den samme radius account skal bruges med flere godkendelses typer, [http://lists.freeradius.org/pipermail/freeradius-users/2006-July/054564.html 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==
 
==Noter==
  
Line 92: Line 100:
 
</code>
 
</code>
  
Password eller identity+password kan udelades, men skal så indtastes via <code>wpa_cli</code> programmet eller <code>wpa_gui</code>
+
Password eller identity+password kan udelades, men skal så indtastes via <code>wpa_cli</code>  
 +
programmet eller <code>wpa_gui</code>. Hvis at en alm. bruger skal kunne håndtere wpa_cli/wpa_gui, kig da på
 +
<code>ctrl_interface_group</code>-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
 
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

Latest revision as of 06:50, 24 June 2009

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