Difference between revisions of "RADIUS"

From HoerupWiki
Jump to: navigation, search
(Generic Radius)
 
(41 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=
  
*http://www.wi-fiplanet.com/tutorials/article.php/3114511
+
 
*http://www.frontios.com/freeradius.html
 
 
*http://www.ietf.org/rfc/rfc2865.txt
 
*http://www.ietf.org/rfc/rfc2865.txt
 
*http://www.untruth.org/~josh/security/radius/radius-auth.html
 
*http://www.untruth.org/~josh/security/radius/radius-auth.html
Line 9: Line 10:
  
 
=Diverse=
 
=Diverse=
*[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant]
+
*[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant] - WPA supplicant til linux
 +
*[http://www.freeradius.org/pam_radius_auth/ pam_radius_auth] - RADIUS plugin til PAM
 +
*[http://www.freeradius.org/mod_auth_radius/ mod_auth_radius] - radius authentication plugin til [http://httpd.apache.org apache]
 +
*[http://dk.php.net/manual/en/ref.radius.php PHP radius]
 +
*[http://www.phpradmin.org/ phpRADmin] - alternativ admin front-end til freeradius
 +
*[http://freshmeat.net/search/?q=radius&section=projects freshmeat.net søgning på "radius"]
  
 
=FreeRADIUS=
 
=FreeRADIUS=
Line 29: 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
 +
 +
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
 
##Læs et par artikler om WPA-enterprise og sikre dig at du har styr på de forskellige EAP metoder -  
 
##Læs et par artikler om WPA-enterprise og sikre dig at du har styr på de forskellige EAP metoder -  
Line 35: 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
##Hvis du vil bruge en MySQL (eller lign) som backend bør du også læse sektionen om [http://wiki.freeradius.org/index.php/Rlm_sql rlm_sql] i freeradius' wiki
+
#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].
#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]
+
#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-chapv2)
+
#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>
+
##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.
 
##<code>Usage: radtest user passwd radius-server nas-port-number clientsecret</code>
 
##<code>Usage: radtest user passwd radius-server nas-port-number clientsecret</code>
 
#konfigurér dit access point til at koble op i mod radius-serveren
 
#konfigurér dit access point til at koble op i mod radius-serveren
#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)
+
#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)
 
#afprøv klient-opsætningen med den statiske bruger
 
#afprøv klient-opsætningen med den statiske bruger
 
#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.
#Sørg for at brugeren bliver tilknyttet "Auth-Type" ":=" "EAP" (enten i <code>radcheck</code> eller <code>radgroupcheck</code> tabellen)
+
##Du bør også læse sektionen om [http://wiki.freeradius.org/index.php/Rlm_sql rlm_sql] i freeradius' wiki
 +
#<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 52: Line 67:
 
#Sådan sættes [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg26652.html user expiration] [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg23031.html 2]
 
#Sådan sættes [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg26652.html user expiration] [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg23031.html 2]
 
#[http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg21257.html Password-Retry]
 
#[http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg21257.html Password-Retry]
#En account kan disables ved at sætte "Auth-Type" ":=" "Reject" (du kan evt. sætte en "Reply-Message" - men hverken wpa_supplicant eller IBM access connections viser beskedet, så det er mere for selv at holde øje med hvorfor at den er disabled)
+
#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)
#Time limited accounts [http://www.mail-archive.com/freeradius-users%40lists.freeradius.org/msg18865.html 1] [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg18868.html 2]. Læs mere om Login-Time attributten i [http://www.freeradius.org/radiusd/doc/README doc/README].
+
#Time limited accounts [http://www.mail-archive.com/freeradius-users%40lists.freeradius.org/msg18865.html 1] [http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg18868.html 2]. Læs mere om Login-Time attributten i [http://www.freeradius.org/radiusd/doc/README doc/README], sektion 3g
 
#Hvis du mangler hjælp, prøv på freeradius' [http://www.freeradius.org/list/users.html mailing list] eller søg i listens arkiv
 
#Hvis du mangler hjælp, prøv på freeradius' [http://www.freeradius.org/list/users.html mailing list] eller søg i listens arkiv
 +
##Der er også mange guldkorn i <code>/usr/share/doc/freeradius/</code>, men mange af dokumenterne er gzip'ed, så start med at lave en <code>gunzip *</code>, så man kan søge i dem med grep eller lign.
  
 
==Accounting==
 
==Accounting==
Line 69: Line 85:
 
  +----+-------------+-----------------------+----+----------------------+
 
  +----+-------------+-----------------------+----+----------------------+
 
</code>
 
</code>
 +
 +
==Linux config : wpa_supplicant==
 +
 +
Her er en en section til <code>/etc/wpa_supplicant.conf</code> på linux klienter:
 +
<code>
 +
network {
 +
    ssid="mywireless"
 +
    key_mgmt=WPA-EAP
 +
    eap=PEAP
 +
    identity="myuser"
 +
    password="mypassword"
 +
    phase2="auth=MSCHAPV2"
 +
}
 +
</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

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