FreeRADIUS
 (→Beállítási példa)  | 
			|||
| (2 szerkesztő 49 közbeeső változata nincs mutatva) | |||
| 2. sor: | 2. sor: | ||
| − | A FreeRADIUS egy free open source RADIUS szerver. RADIUS (Remote Authentication Dial In User Service) egy authentication (hitelesítés), authorization (engedélyezés) and accounting  (naplózás) kliens-szerver protokoll. Az authentication, authorization és accounting hármast csak AAA-nak szokás rövidíteni.  | 
  + | A FreeRADIUS egy free open source RADIUS-szerver. A RADIUS (Remote Authentication Dial In User Service) egy olyan kliens-szerver protokoll, amely a következő feladatok ellátásához nyújt segítséget:  | 
| + | * authentication (hitelesítés),  | 
||
| + | * authorization (engedélyezés),  | 
||
| + | * and accounting (naplózás, számlázás).  | 
||
| − | FreeRADIUS hivatalos weboldala: http://www.freeradius.org/  | 
  + | Az authentication, authorization és accounting hármast csak AAA-nak szokás rövidíteni.  | 
| − | Jelenlegi stabil verzió: 1.1.7 (2007.07.25)  | 
  + | A FreeRADIUS hivatalos weboldala: [http://www.freeradius.org/ http://www.freeradius.org/].  | 
| − | Ez egy moduláris, gyors, gazdag protokoll készletű RADIUS szerver, és lehetőséget biztosít külső, így saját modulok használatára is.  | 
  + | A cikk írásakor (2007. december 2.) az aktuális stabil verzió az 1.1.7 (2007.07.25-én jelent meg).  | 
| + | |||
| + | A FreeRADIUS egy moduláris, gyors, gazdag protokollkészletű RADIUS-szerver, amely lehetőséget biztosít külső, így saját modulok használatára is.  | 
||
| + | |||
| + | A FreeRADIUS a felhasználói adatokat a következő forrásokból tudja kiolvasni:  | 
||
| − | A FreeRADIUS által használt felhasználói adatok elérése:  | 
  ||
* LDAP  | 
  * LDAP  | 
||
* Kerberos  | 
  * Kerberos  | 
||
| − | * SQl (MySQL, PostgreSQL, MSSQl, Oracle)  | 
  + | * SQL (MySQL, PostgreSQL, MSSQL, Oracle)  | 
| − | * /etc/passwd  | 
  + | * <tt>/etc/passwd</tt>  | 
* PAM  | 
  * PAM  | 
||
| − | * fájl  | 
  + | * sima szövegfájl  | 
* ProxyRadius  | 
  * ProxyRadius  | 
||
| − | * DC (domain controller)  | 
  + | * DC (Windows domain controller)  | 
| − | * program (perl, python)  | 
  + | * külső program (perl, python)  | 
| + | |||
| + | Támogatott hitelesítési protokollok:  | 
||
| − | Hitelesítési protokollok:  | 
  ||
* PAP  | 
  * PAP  | 
||
* CHAP  | 
  * CHAP  | 
||
* MSCHAP (v1, v2)  | 
  * MSCHAP (v1, v2)  | 
||
* SIP Digest (Cisco VoIP)  | 
  * SIP Digest (Cisco VoIP)  | 
||
| − | * EAP  | 
  + | * EAP, PEAP  | 
== Mikor használják? ==  | 
  == Mikor használják? ==  | 
||
| − | Felmerülhet a kérdés, hogy ha van pl.: egy LDAP szerverünk, akkor miért teszünk meg egy szervert (RADIUS) a hálózati erőforrás és az LDAP közé?  | 
  + | Felmerülhet a kérdés, hogy ha van pl. egy LDAP-szerverünk, akkor miért teszünk még egy szervert (RADIUSt) a hálózati erőforrás és az LDAP közé?  | 
| − | Biztonsági megfontolásból pl.: az adott alkalmazást feltörik, akkor nem tudnak közvetlenül hozzá férni az LDAP-hoz, ilyenkor a RADIUS szerver bástya hostként (Bastion host) viselkedik.  | 
  + | * Biztonsági megfontolásból.  | 
| − | Vagy ki akarjuk használni a RADIUS adta lehetőségeket: központi felhasználó és jogosultság kezelés, és naplózás.  | 
  + | ** Pl. ha az adott alkalmazást feltörik, akkor nem tudnak közvetlenül hozzáférni az LDAP-hoz, ilyenkor a RADIUS-szerver egyfajta bástyahostként (Bastion host) viselkedik.  | 
| + | * Vagy: ki akarjuk használni a RADIUS adta lehetőségeket:  | 
||
| + | ** központi felhasználó-  | 
||
| + | ** és jogosultságkezelés,  | 
||
| + | ** naplózás.  | 
||
| − | Viszont a leggyakoribb alkalmazási területe, azoknál a hálózati erőforrásoknál használják, ahol nincsen lehetőség, vagy mód a fent felsorolt azonosítási protokollok implementálására pl.: hálózati eszközök (routerek, switchek, AP-k, stb.).  | 
  + | Leggyakoribb alkalmazási területe: azoknál a hálózati erőforrásoknál, ahol nincs lehetőség vagy mód a fent felsorolt azonosítási protokollok implementálására. Pl. hálózati eszközök (routerek, switchek, AP-k, stb.).  | 
== Hogy lehet beszerezni? ==  | 
  == Hogy lehet beszerezni? ==  | 
||
| − | A letölthető a forrása a http://www.freeradius.org weboldalról és utána szokásos modon telepíthető (./configure, make, make install), vagy általában a distribucióknál létezik belőlük csomag (pl.: Debian, Fedora, SUSE, stb).  | 
  + | A letölthető a forrása a [http://www.freeradius.org/ http://www.freeradius.org/] weboldalról, és utána a szokásos modon telepíthető (<tt>./configure, make, make install</tt>), de általában a disztribúciókhoz is létezik belőle csomag (pl. Debian, Fedora, SUSE stb).  | 
| − | Létezik belőle Windows-os verzió is, csak azt FreeRADIUS.net néven terjesztik, ami letölthető a http://www.freeradius.net weboldalról.   | 
  + | Létezik belőle Windows-os verzió is, csak azt FreeRADIUS.net néven terjesztik, és a [http://www.freeradius.net/ http://www.freeradius.net/] weboldalról tölthető le.  | 
| − | == RADIUS protokoll ==  | 
  + | == A RADIUS-protokoll ==  | 
| − | Kliens-szerver architekurájú protokoll, ahol a kliens egy NAS (Network Access Server), ami küld egy kérést, és a szerver (RADIUS) válaszol kérésre. A RADIUS protokoll UDP-t használ. A kliens-szerver között átlagban egy kérés és válasz zajlik le, így fölösleges lenne TCP-t használni. A TCP megbízhatóbb, de nagyon lassítaná csak a protokoll válasz idejét. A protokoll 2 portot használ. A 1812-es porton az auth (authentication, authorization) folyamatokra használja, és a 1813-as portot meg a naplózáshoz (accounting) használja.  | 
  + | Kliens-szerver architekurájú protokoll, ahol:  | 
| + | * a kliens egy NAS (Network Access Server),  | 
||
| + | * a szerver pedig a RADIUS-szerver.  | 
||
| − | RFC (2000): [http://www.ietf.org/rfc/rfc2865.txt?number=2865 2865], [http://www.ietf.org/rfc/rfc2866.txt?number=2866 2866]  | 
  + | A RADIUS-protokoll UDP-t használ. A kliens és a szerver között egy-egy tranzakcióval kapcsolatban mindkét irányban csak egy-egy csomag megy át, így fölösleges lenne TCP-t használni.  | 
| + | A TCP ugyan megbízhatóbb, de megnövelné a protokoll válaszidejét.  | 
||
| − | '''Protokoll futam:'''  | 
  + | A protokoll két portot használ:  | 
| + | * 1812: auth (authentication, authorization) folyamatok;  | 
||
| + | * 1813: naplózás, számlázás (accounting).  | 
||
| − | <center>  | 
  + | Két RFC foglalkozik vele:  | 
| + | * [http://www.ietf.org/rfc/rfc2865.txt?number=2865 RFC2865],  | 
||
| + | * [http://www.ietf.org/rfc/rfc2866.txt?number=2866 RFC2866]  | 
||
| + | '''Protokollfutam:'''  | 
||
| − | [[Kép:radius.gif]]  | 
  + | [[Kép:radius.gif||center]]  | 
| + | [[Kép:Client.gif||center]]  | 
||
| − | [[Kép:Client.gif]]  | 
  + | A RADIUS csomagformátuma:  | 
| − | </center>  | 
  ||
| − | + | <pre>  | 
|
| − | |||
| − | "RADIUS adat formátuma (mind a két esetben):"  | 
  ||
    0                   1                   2                   3  | 
      0                   1                   2                   3  | 
||
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  | 
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  | 
||
| 73. sor: | 73. sor: | ||
   |  Attributes ...  | 
     |  Attributes ...  | 
||
   +-+-+-+-+-+-+-+-+-+-+-+-+-  | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-  | 
||
| − | + | </pre>  | 
|
'''RADIUS Codes (decimal) értékei:'''  | 
  '''RADIUS Codes (decimal) értékei:'''  | 
||
| + | <pre>  | 
||
        1       Access-Request  | 
          1       Access-Request  | 
||
        2       Access-Accept  | 
          2       Access-Accept  | 
||
| 85. sor: | 86. sor: | ||
       13       Status-Client (experimental)  | 
         13       Status-Client (experimental)  | 
||
      255       Reserved  | 
        255       Reserved  | 
||
| + | </pre>  | 
||
| − | Mivel az UDP-ben nincsen nyugtázás, ezért a protokollba beépítették. Erre csak a naplózásnál (accounting) van szükség, ilyenkor a RADIUS nyugtázza, hogy megkapta a napló (accounting) csomagot.  | 
  + | Mivel az UDP-ben nincs nyugtázás, ezért a protokollba beépítették. Erre csak a naplózásnál (accounting) van szükség, ilyenkor a RADIUS-szerver nyugtázza, hogy megkapta a napló (accounting) csomagot.  | 
'''Identifier:'''  | 
  '''Identifier:'''  | 
||
| − | |||
Az összetartozó csomagokat azonosítja.  | 
  Az összetartozó csomagokat azonosítja.  | 
||
'''Length:'''  | 
  '''Length:'''  | 
||
| − | Az egész csomag méretét adja meg. A minimum méret 20, míg a maximális 4096 byte.  | 
  + | Az egész csomag méretét adja meg. A minimális méret 20, míg a maximális 4096 byte.  | 
'''Authenticator:'''  | 
  '''Authenticator:'''  | 
||
| − | A NAS és a RADIUS rendelkezik egy közös kulccsal (secret vagy key).  | 
  + | A NAS és a RADIUS rendelkezik egy közös kulccsal ("secret" vagy "key").  | 
| − | Auth esetben:  | 
  ||
| − | A kliens generál egy random számot, amit elküld a kérésben. Majd a szerver a válasz csomagban a következő algoritmust használja fel, hogy hitelesítse magát: ResponseAuth = MD5(Code,ID,Length,NASAuth,Attributes,Secret).  | 
  + | Auth esetén:  | 
| − | Acc esetében:  | 
  + | # A kliens generál egy véletlenszámot, amit elküld a kérésben (NAS Authenticator).  | 
| + | # A szerver a válaszcsomagban a következő algoritmust használja fel, hogy hitelesítse magát:  | 
||
| + | #* Response Authenticator = MD5(Code,ID,Length,NASAuthenticator,Attributes,Secret).  | 
||
| − | A kliens (NAS) a következő algoritmus szerint generálja:  | 
  + | Acc esetén:  | 
| − | Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)  | 
  + | # A kliens (NAS) a következő algoritmus szerint generálja:  | 
| + | #* Request Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)  | 
||
| + | # A RADIUS a válasza:  | 
||
| + | #* Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)  | 
||
| − | A RADIUS a válasz csomagban Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)  | 
  + | '''Attribútum felépítése:'''  | 
| − | + | <pre>  | 
|
| − | |||
| − | |||
| − | '''Attributum:'''  | 
  ||
| − |  felépítése:  | 
  ||
    0                   1                   2  | 
      0                   1                   2  | 
||
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0  | 
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0  | 
||
| 113. sor: | 114. sor: | ||
   |     Type      |    Length     |  Value ...  | 
     |     Type      |    Length     |  Value ...  | 
||
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-  | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-  | 
||
| − | + | </pre>  | 
|
'''Type:'''  | 
  '''Type:'''  | 
||
| − |  Auth esetén:  | 
  ||
| − |           1      User-Name  | 
  ||
| − |           2      User-Password  | 
  ||
| − |           3      CHAP-Password  | 
  ||
| − |           4      NAS-IP-Address  | 
  ||
| − |           5      NAS-Port  | 
  ||
| − |           6      Service-Type  | 
  ||
| − |           7      Framed-Protocol  | 
  ||
| − |           8      Framed-IP-Address  | 
  ||
| − |           9      Framed-IP-Netmask  | 
  ||
| − |          10      Framed-Routing  | 
  ||
| − |          11      Filter-Id  | 
  ||
| − |          12      Framed-MTU  | 
  ||
| − |          13      Framed-Compression  | 
  ||
| − |          14      Login-IP-Host  | 
  ||
| − |          15      Login-Service  | 
  ||
| − |          16      Login-TCP-Port  | 
  ||
| − |          17      (unassigned)  | 
  ||
| − |          18      Reply-Message  | 
  ||
| − |          19      Callback-Number  | 
  ||
| − |          20      Callback-Id  | 
  ||
| − |          21      (unassigned)  | 
  ||
| − |          22      Framed-Route  | 
  ||
| − |          23      Framed-IPX-Network  | 
  ||
| − |          24      State  | 
  ||
| − |          25      Class  | 
  ||
| − |          26      Vendor-Specific  | 
  ||
| − |          27      Session-Timeout  | 
  ||
| − |          28      Idle-Timeout  | 
  ||
| − |          29      Termination-Action  | 
  ||
| − |          30      Called-Station-Id  | 
  ||
| − |          31      Calling-Station-Id  | 
  ||
| − |          32      NAS-Identifier  | 
  ||
| − |          33      Proxy-State  | 
  ||
| − |          34      Login-LAT-Service  | 
  ||
| − |          35      Login-LAT-Node  | 
  ||
| − |          36      Login-LAT-Group  | 
  ||
| − |          37      Framed-AppleTalk-Link  | 
  ||
| − |          38      Framed-AppleTalk-Network  | 
  ||
| − |          39      Framed-AppleTalk-Zone  | 
  ||
| − |          40-59   (reserved for accounting)  | 
  ||
| − |          60      CHAP-Challenge  | 
  ||
| − |          61      NAS-Port-Type  | 
  ||
| − |          62      Port-Limit  | 
  ||
| − |          63      Login-LAT-Port  | 
  ||
| − |  Accountig esetén:  | 
  ||
| − |          40      Acct-Status-Type  | 
  ||
| − |          41      Acct-Delay-Time  | 
  ||
| − |          42      Acct-Input-Octets  | 
  ||
| − |          43      Acct-Output-Octets  | 
  ||
| − |          44      Acct-Session-Id  | 
  ||
| − |          45      Acct-Authentic  | 
  ||
| − |          46      Acct-Session-Time  | 
  ||
| − |          47      Acct-Input-Packets  | 
  ||
| − |          48      Acct-Output-Packets  | 
  ||
| − |          49      Acct-Terminate-Cause  | 
  ||
| − |          50      Acct-Multi-Session-Id  | 
  ||
| − |          51      Acct-Link-Count  | 
  ||
| − | '''Lenght:'''  | 
  + | '''Length:'''  | 
| − | Atrributum teljes hosszát adja meg.  | 
  + | Atrribútum teljes hosszát adja meg.  | 
'''Value:'''  | 
  '''Value:'''  | 
||
| − | Mérete lehet nulla is. Vagy több byte is.  | 
  + | |
| + | Nulla vagy több byte, az attribútum értékét tartalmazza.  | 
||
Típusai:  | 
  Típusai:  | 
||
| − | * text 1-253 byte<br>  | 
  + | * text 1-253 byte (UTF8 kodolt string)<br>  | 
* string 1-253 byte<br>  | 
  * string 1-253 byte<br>  | 
||
* address 32 bit<br>  | 
  * address 32 bit<br>  | 
||
| 190. sor: | 133. sor: | ||
* time 32 bit (unix time: 1970. január 1. UTC 00:00:00 óta eltelt másodpercek)  | 
  * time 32 bit (unix time: 1970. január 1. UTC 00:00:00 óta eltelt másodpercek)  | 
||
| + | === RADIUS hitelesítés lépései ===  | 
||
| − | '''RADIUS hitelesítés lépései:'''  | 
  + | [[Kép:radius2.gif||center]]  | 
| − | <center>  | 
  ||
| − | [[Kép:radius2.gif]]  | 
  ||
| − | </center>  | 
  ||
| − | '''Lépések:'''  | 
  + | # NAS - Access-Request  | 
| + | #* Code=Access-Request  | 
||
| + | #* NAS Authenticator=NAS által generált random szám  | 
||
| + | #* Attribútumok: User-Name, User-Password  | 
||
| + | #** Password titkosítva=MD5(NAS Authenticator,Secret) XOR Password  | 
||
| + | # RADIUS - Access-Accept vagy Access-Reject  | 
||
| + | #* Code= Access-Accept vagy Access-Reject  | 
||
| + | #* Authenticator=MD5(Code,ID,Length,NAS Authenticator,Attributes,Secret)  | 
||
| + | #* Attribútomok (pl.: jogok, protokoll, stb) (opcionális)  | 
||
| − | '''1.''' NAS - Access-Request  | 
  + | === RADIUS naplózás lépései ===  | 
| − | * Code=Access-Request  | 
  ||
| − | * Authenticator=NAS által generált random szám  | 
  ||
| − | * Attributumok: User-Name, User-Password  | 
  ||
| − | Password titkosítva=MD5(NASAuth,Secret) XOR Password  | 
  ||
| − | '''2.''' RADIUS - Access-Accept vagy Access-Reject  | 
  + | # NAS - Accounting-Request  | 
| − | * Code= Access-Accept vagy Access-Reject  | 
  + | #* Code=Accounting-Request  | 
| − | * Authenticator=MD5(Code,ID,Length,NASAuth,Attributes,Secret)  | 
  + | #* Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)  | 
| − | * Attributomok (pl.: jogok, protokoll, stb) (opcionális)  | 
  + | #* Attribútumok  | 
| − | + | # RADIUS - Accounting-Response  | 
|
| − | '''RADIUS naplózás lépései:'''  | 
  + | #* Code=Accounting-Response  | 
| − | + | #* Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)  | 
|
| − | '''1.''' NAS - Accounting-Request  | 
  ||
| − | * Code=Accounting-Request  | 
  ||
| − | * Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)  | 
  ||
| − | * Attributumok  | 
  ||
| − | |||
| − | '''2.''' RADIUS - Accounting-Response  | 
  ||
| − | * Code=Accounting-Response  | 
  ||
| − | * Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)  | 
  ||
== Beállítás ==  | 
  == Beállítás ==  | 
||
| − | Forrásból telepített FreeRADIUS könyvtár szerkezete:  | 
  + | Forrásból telepített FreeRADIUS könyvtár alkönyvtárai:  | 
| − |  bin  | 
  + | <pre>  | 
| − |  etc  | 
  + |  bin/  | 
| − |  include  | 
  + |  etc/  | 
| − |  lib  | 
  + |  include/  | 
| − |  man  | 
  + |  lib/  | 
| − |  sbin  | 
  + |  man/  | 
| − |  share  | 
  + |  sbin/  | 
| − |  var  | 
  + |  share/  | 
| − | + |  var/  | 
|
| + | </pre>  | 
||
| − | A konfig fájlok alapértelmezésben a etc/raddb könyvtárban vannak. A konfig fájlok listája:  | 
  + | A konfigurációs fájlok alapértelmezés szerint az <tt>etc/raddb</tt> könyvtárban vannak. A fájlok listája:  | 
| + | <pre>  | 
||
 acct_users  | 
   acct_users  | 
||
 attrs  | 
   attrs  | 
||
| 251. sor: | 195. sor: | ||
 sqlippool.conf  | 
   sqlippool.conf  | 
||
 users  | 
   users  | 
||
| + | </pre>  | 
||
| − | A listából is látszik, hogy mennyire moduláris a konfigurációja. A fő konfigurációs fájl a radiusd.conf, ez töltődik be alapból, és tölti be a szükséges többi konfigurációs fájlt.  | 
  + | A listából is látszik, hogy mennyire moduláris a konfiguráció. A fő konfigurációs fájl a <tt>radiusd.conf</tt>; ez töltődik be alapból, és tölti be a szükséges többi konfigurációs fájlt.  | 
| − | Radiusd.conf fájlból részletek:  | 
  + | radiusd.conf felépítése:  | 
| + |     először általános beállítások  | 
||
| + |          pl.: IP cím, maximum kiszolgálható konkurens kliensek száma, stb.  | 
||
| + |     modulok megadása  | 
||
| + |          modulnév {  | 
||
| + |               modul beéllításai, paraméterei (opcionális)  | 
||
| + |               $INCLUDE "fájl"  (opcionális)  | 
||
| + |          }  | 
||
| + |     AAA methodus (itt megadott modulokat sorban dolgozza fel, kivéve, ha Auth-Type van megadva a modulnál,   | 
||
| + |                   mert akkor csak azt használja, és nem megy a következőhöz)  | 
||
| + |           authorize {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + |           authenticate {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + |           preacct {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + |           accounting {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + |           post-auth {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }         | 
||
| + |           pre-proxy {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + |           post-proxy {  | 
||
| + |              modulnév  | 
||
| + |              .   | 
||
| + |              .  | 
||
| + |           }  | 
||
| + | |||
| + | '''Néhány <tt>radiusd.conf</tt>-részlet:'''  | 
||
| + | <pre>  | 
||
| + | #általános rész:  | 
||
 prefix = /usr/local/freeradius-1.1.7  | 
   prefix = /usr/local/freeradius-1.1.7  | 
||
 exec_prefix = ${prefix}  | 
   exec_prefix = ${prefix}  | 
||
| 269. sor: | 262. sor: | ||
 pidfile = ${run_dir}/radiusd.pid  | 
   pidfile = ${run_dir}/radiusd.pid  | 
||
| − | Amivel futni fog a RADIUS szerver.  | 
  + | #ilyen userként és groupként fog futni:  | 
 user = nobody  | 
   user = nobody  | 
||
 group = nobody  | 
   group = nobody  | 
||
| − | IP címe a szervernek:  | 
  + | #melyik IP-n figyeljen:  | 
| − |  bind_address = 152.66.208.218  | 
  + |  bind_address = 152.66.x.y  | 
| − | |||
| − | Modulok beállítása következik.  | 
  ||
| − | Proxy:  | 
  + | #proxy: ("igen",ha használni akarjuk a RADIUS proxy szolgáltatását, különben "nem")  | 
| + | #Ha proxy szolgáltatást választjuk, akkor a AAA methodusnál a RADIUS szerverünk, csak "átjátszóként" fog viselkedni,  | 
||
| + | #és egy másik RADIUS-hoz továbbítja a NAS-tól kapott csomagokat, és fordítva is.)  | 
||
 proxy_requests  = yes  | 
   proxy_requests  = yes  | 
||
 $INCLUDE  ${confdir}/proxy.conf  | 
   $INCLUDE  ${confdir}/proxy.conf  | 
||
| − | kliensek:  | 
  + | #kliensek (NAS-ok):  | 
 $INCLUDE  ${confdir}/clients.conf  | 
   $INCLUDE  ${confdir}/clients.conf  | 
||
| − | Unix /etc/passwd alapú hitelesítés:  | 
  + | #Modulok megadása, beállítása:  | 
| + | #Unix /etc/passwd alapú hitelesítés:  | 
||
 unix {  | 
   unix {  | 
||
   passwd = /etc/passwd  | 
     passwd = /etc/passwd  | 
||
 }  | 
   }  | 
||
| − | AAA metódus előtt elvégzett műveletek pl.: IP cím ellenőrzés  | 
  + | #AAA metódus előtt elvégzett műveletek pl.: IP cím-ellenőrzés  | 
    preprocess {  | 
      preprocess {  | 
||
          huntgroups = ${confdir}/huntgroups  | 
            huntgroups = ${confdir}/huntgroups  | 
||
| 294. sor: | 287. sor: | ||
    }  | 
      }  | 
||
| − | LDAP:  | 
  + | #LDAP:  | 
  ldap {  | 
    ldap {  | 
||
     server = "ldap.your.domain"  | 
       server = "ldap.your.domain"  | 
||
| 311. sor: | 304. sor: | ||
   }  | 
     }  | 
||
| − | felhasználók megadása:  | 
  + | #felhasználók megadása:  | 
  files {  | 
    files {  | 
||
     usersfile = ${confdir}/users  | 
       usersfile = ${confdir}/users  | 
||
| 318. sor: | 311. sor: | ||
  }  | 
    }  | 
||
| − | Naplózás:  | 
  + | #Naplózás:  | 
  detail {  | 
    detail {  | 
||
     detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d  | 
       detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d  | 
||
| 348. sor: | 341. sor: | ||
                '%{reply:Packet-Type}', '%S');"  | 
                  '%{reply:Packet-Type}', '%S');"  | 
||
       }  | 
         }  | 
||
| − | + | #AAA methodus  | 
|
| − | A már megismert AAA metódus kerül megint elő. Egyenként tudjuk megadni, hogy melyik modult akarjuk használni.  | 
  ||
| − | Az Auth-Type beállításnál csak az ott megadott modult használja, és nem próbálja meg a többi felsorolt modult használni.  | 
  ||
| − | |||
 authorize {  | 
   authorize {  | 
||
| − |      file  | 
  + |      preprocess  | 
| + |      files  | 
||
     ldap  | 
       ldap  | 
||
     eap  | 
       eap  | 
||
| 385. sor: | 378. sor: | ||
        post_proxy_log  | 
          post_proxy_log  | 
||
    }  | 
      }  | 
||
| + | </pre>  | 
||
| − | A preacct a naplózás előtt elvégzendő műveletek pl.: egyedi kulcsot generál a felhasználónak key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"  | 
  + | Az Auth-Type beállításnál csak az ott megadott modult használja, és nem próbálja meg a többi felsorolt modult használni.  | 
| − | A post-auth az eredményesen hitelesített felhasználók utólagos műveleteit tartalmazza pl.: IP cím osztás. Vagy a nem eredményesen hitelesített felhasználók a "Post-Auth-Type REJECT" magadott modullal mégpróbálkozik hitelsíteni a RADIUS.  | 
  + | A authorize-nál megadott modulok segítségével a RADIUS eldönti, hogy engedélyezi-e a felhasználó hitelesítését.  | 
| + | A preprocess (előfeladatok) a hints, huntgroup és a realm modulok alapján végez ellenőrzést.  | 
||
| − | A pre-proxy és post-proxy a RADIUS-Proxy előtt és után elvégzett modulokat lehet megadni.  | 
  + | A preacct a naplózás előtt elvégzendő műveletek  | 
| + | -egyedi kulcsot generál a felhasználónak, amit a sql naplózásnál használnak acct_unique = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"  | 
||
| + | -preprocess: a naplózás előtt elvégezendő műveleteket adhatunk meg pl.: IP cím ellenörzés  | 
||
| + | |||
| + | A post-auth az eredményesen hitelesített felhasználók utólagos műveleteit tartalmazza pl.: IPcím-osztás. Vagy a nem eredményesen hitelesített felhasználókat a "Post-Auth-Type REJECT"-nél megadott modullal még megpróbálja hitelsíteni a RADIUS.  | 
||
| + | |||
| + | A pre-proxynál és post-proxynál a RADIUS-Proxy előtt és után elvégzett modulokat lehet megadni.  | 
||
| − | Azonosításnál mindenképpen használt modulok: clients, realms, huntgroups, users.   | 
  ||
'''clients'''  | 
  '''clients'''  | 
||
| 398. sor: | 391. sor: | ||
A NAS beállításait lehet megadni: IP, secret, nastype.   | 
  A NAS beállításait lehet megadni: IP, secret, nastype.   | 
||
| − | Támogatott nastype:  | 
  + | Támogatott NAS-típusok:  | 
| − |                cisco  | 
  + | * cisco  | 
| − |                computone  | 
  + | * computone  | 
| − |                livingston  | 
  + | * livingston  | 
| − |                max40xx  | 
  + | * max40xx  | 
| − |                multitech  | 
  + | * multitech  | 
| − |                netserver  | 
  + | * netserver  | 
| − |                pathras  | 
  + | * pathras  | 
| − |                patton  | 
  + | * patton  | 
| − |                portslave  | 
  + | * portslave  | 
| − |                tc  | 
  + | * tc  | 
| − |                usrhiper  | 
  + | * usrhiper  | 
| − |                other       | 
  + | * other       | 
| + | |||
| + | <pre>  | 
||
| + | általános forma:  | 
||
| + | client IP {  | 
||
| + |         secret = key  | 
||
| + |         shortname = megnevezés  | 
||
| + |         nastype = NAS type  | 
||
| + | }  | 
||
| + | </pre>  | 
||
'''realms'''  | 
  '''realms'''  | 
||
A felhasználónév@realm formátumban megadott felhasználóneveknél használatos.  | 
  A felhasználónév@realm formátumban megadott felhasználóneveknél használatos.  | 
||
| + | Felhasználói csoportokat hozz hatunk létre, és különböző jogosultságokat, beállításokat adhatunk a csoportoknak.  | 
||
'''huntgroups'''  | 
  '''huntgroups'''  | 
||
| − | A NAS-hoz kapcsolódó felhasználók "paramétereit" adhatjuk meg pl.: IP  | 
  + | A NAS-kat csoportokba szervezhetjük, és a kapcsolatot kezdeményezhető IP címeket, vagy felhazsnálóneveket adhatjuk meg.  | 
| + | Itt tudjuk szabályozni, hogy milyen felhasználónévvel és IP címmel, milyen NAS-okhoz lehet kapcsolodni.  | 
||
| + | Általános forma:  | 
||
| + | <pre>  | 
||
| + | csoportnév  NAS-IP-Address == IP1, Calling-Station-Id == IP2  | 
||
| + |             User-Name = felhasznaélónév1,  User-Name = felhasználónév1, ...  | 
||
| + | </pre>  | 
||
'''users'''  | 
  '''users'''  | 
||
| − | Itt lehet összefogni, az előbb tárgyalt hármast (clients, realm, huntgroups).  | 
  + | A felhasználók hitelesítési beállításait adhatjuk meg, ezenkívül a felhasználónévhez tartozó jelszót is megadhatjuk.  | 
| − | '''Egyébb modulok'''  | 
  + | A kezdhetjük a felhasználónévvel, vagy DEFAULT kulcsszó megadással. A DEFAULT joker bejegyzésként viselkedik, és minden felhasználónévre illesszkedik.  | 
| − | A modulok beállításait, ha a radiusd.conf-ban nem lehet megtenni, akkor a modullal azonos nevű fájlban tudjuk megtenni.  | 
  + | Általános forma:  | 
| + | |||
| + | Felhasználónév (DEFAULT mindenre illeszkedik)  utána az Attributtumokat kell megadni veszővel elválasztva.  | 
||
| + | |||
| + | Az attributumok megadásánál a következő [http://wiki.freeradius.org/Operators operátorok] használhatók: =,==.:=.+=,<,>,<=,>=,!=,=~,=*,!~,!*  | 
||
| + | |||
| + | A FreeRADIUS-ban használt attributumok: [http://www.freeradius.org/rfc/attributes.html attributes]  | 
||
| + | |||
| + | |||
| + | {| border="1"  | 
||
| + | |+ Leggyakrabban használt attributumok  | 
||
| + | |-  | 
||
| + | !attributtum név !!leírás !!érték !!példa  | 
||
| + | |-  | 
||
| + | |Auth-Type || authentikáció típusa || Accept, Reject, Local, EAP || Auth-Type == Local  | 
||
| + | |-  | 
||
| + | |User-Password || jelszó megadása || sztring || User-Password == "jelszo"  | 
||
| + | |-  | 
||
| + | |Service-Type || szolgáltatás típusa || Login, Outbound-User, Framed-User || Service-Type == Login  | 
||
| + | |-  | 
||
| + | |Huntgroup-Name || csoport megadás || sztrinh ||  Huntgroup-Name == "csoport név"  | 
||
| + | |-  | 
||
| + | |Simultaneous-Use || max kunkurens kapcsolatok szama || integer || Simultaneous-Use :=5  | 
||
| + | |-  | 
||
| + | |}  | 
||
Példa:  | 
  Példa:  | 
||
| + | <pre>  | 
||
| + | JohnDoe     Auth-Type := Local, User-Password == "hello"  | 
||
| + | </pre>  | 
||
| + | |||
| + | '''Egyéb modulok'''  | 
||
| + | |||
| + | A modulok beállításait, ha a radiusd.conf-ban nem lehet, vagy nem akarjuk megtenni, akkor általábban a modullal azonos nevű fájlban tudjuk megtenni. Ilyenkor a fájlt includolni kell a radiusd.conf-ban.  | 
||
| + | |||
| + | Példa:   | 
||
| + |   $INCLUDE  ${confdir}/fájlnév  | 
||
| + | |||
| + | |||
'''SQL:'''  | 
  '''SQL:'''  | 
||
| − | A radiusd.confban meg kell adni, hogy milyen sql-t szeretne használni. Támogatott: PostgreSQL, MySQL, MSSQL, Oracle.  | 
  + | A radiusd.conf-ban meg kell adni, hogy milyen sql-t szeretnénk használni. Támogatott: PostgreSQL, MySQL, MSSQL, Oracle.  | 
| − | Például, ha postgresql-t szeretnénk használni, akkor a postgresql.conf-ot kell betölteni.  | 
  + | Például, ha postgresql-t szeretnénk használni, akkor a postgresql.conf-ba az alábbi sort kell megadni:  | 
| + |  $INCLUDE  ${confdir}/postgresql.conf  | 
||
A fájlban kell megadni a postgreSQL szerver beállításait pl.: hostnév, felhasználó, jelszó, adatbázis, stb..  | 
  A fájlban kell megadni a postgreSQL szerver beállításait pl.: hostnév, felhasználó, jelszó, adatbázis, stb..  | 
||
| 439. sor: | 445. sor: | ||
Az adatbázis séma elérési útja a fájl elején található pl.: doc/examples/postgresql.sql  | 
  Az adatbázis séma elérési útja a fájl elején található pl.: doc/examples/postgresql.sql  | 
||
| − | Részlet a postgresql.conf-ból:  | 
  + | A postgresql.conf az alábbi módon épül fel:  | 
| + | <pre>  | 
||
  sql {  | 
    sql {  | 
||
| + | |||
        driver = "rlm_sql_postgresql"  | 
          driver = "rlm_sql_postgresql"  | 
||
        server = "localhost"  | 
          server = "localhost"  | 
||
        login = "postgres"  | 
          login = "postgres"  | 
||
| − |         password = ""  | 
  + |         password = "diddgozs!!"  | 
        radius_db = "radius"  | 
          radius_db = "radius"  | 
||
| − |      [...]  | 
  + | |
| + | |||
| + | </pre>  | 
||
Majd az AAA metódusnál megismert események SQL műveletei vannak:  | 
  Majd az AAA metódusnál megismert események SQL műveletei vannak:  | 
||
| − |  Egy kapcsolat felépítésének a naplózása:  | 
  + | Egy kapcsolat felépítésének a naplózása:  | 
| + | <pre>  | 
||
 accounting_start_query = "INSERT into ${acct_table1} \  | 
   accounting_start_query = "INSERT into ${acct_table1} \  | 
||
    AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctAuthentic, \  | 
      AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctAuthentic, \  | 
||
| 459. sor: | 467. sor: | ||
    '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', \  | 
      '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', \  | 
||
     NULLIF('%{Framed-IP-Address}', '')::inet, 0, '%{X-Ascend-Session-Svr-Key}')"  | 
       NULLIF('%{Framed-IP-Address}', '')::inet, 0, '%{X-Ascend-Session-Svr-Key}')"  | 
||
| + | </pre>  | 
||
| − | == Példa beállítás ==  | 
  + | Eyg sor a PostgreSQL-ból:  | 
| + | <pre>  | 
||
| + |  radacctid |  acctsessionid   | acctuniqueid | username | realm |  nasipaddress  | nasportid | nasporttype |     acctstarttime      |      acctstoptime      | acctsessiontime | acctauthentic | connectinfo_start | connectinfo_stop | acctinputoctets | acctoutputoctets | calledstationid | callingstationid | acctterminatecause |   servicetype   | framedprotocol | framedipaddress | acctstartdelay | acctstopdelay  | 
||
| + | -----------+------------------+--------------+----------+-------+----------------+-----------+-------------+------------------------+------------------------+-----------------+---------------+-------------------+------------------+-----------------+------------------+-----------------+------------------+--------------------+-----------------+----------------+-----------------+----------------+---------------  | 
||
| + |          1 | 0400000000000055 |              | farki    |       | 152.66.209.185 |         0 | Virtual     | 2006-07-29 14:55:59+02 | 2006-07-29 14:56:01+02 |               1 | RADIUS        |                   |                  |               0 |                0 |                 | 152.66.213.10    | User-Request       | NAS-Prompt-User |                |                 |              0 |             0  | 
||
| + | (1 sor)  | 
||
| + | </pre>  | 
||
| + | |||
| + | == Beállítási példa ==  | 
||
A példában a következőket valósítjuk meg:  | 
  A példában a következőket valósítjuk meg:  | 
||
| − | Adott néhány Cisco hálózati eszköz (switch, router, VPN Concentrátor), és néhány gép amiről ezeket szeretnék SSH-n keresztül konfigurálni. A felhasználókat fájlban tároljuk. A kapcsolatokat naplózni szeretnénk fájlba és sql-be is. Ezenkívül a VPN Concetrátornál szeretnénk, ha a VPN felhasználók azonosítása LDAP-ból történe, és ők ne tudjanak SSH-n keresztül belépni a hálózati eszközökre. A naplózás itt is követelmény.  | 
  + | * Adott  | 
| − | + | ** néhány Cisco hálózati eszköz (switch, router, VPN-koncentrátor)  | 
|
| + | ** néhány gép, amikről ezeket szeretnék SSH-n keresztül konfigurálni.  | 
||
| + | * A felhasználónév-jelszó párt fájlban tároljuk.  | 
||
| + | * A kapcsolatokat naplózni szeretnénk fájlba és sql-be is.  | 
||
| + | * A VPN-koncetrátornál szeretnénk, ha  | 
||
| + | ** a VPN-felhasználók azonosítása LDAP-ból történe, és  | 
||
| + | ** ők ne tudjanak SSH-n keresztül belépni a hálózati eszközökre.  | 
||
| + | ** A naplózás itt is követelmény.  | 
||
Cisco IOS konfig:  | 
  Cisco IOS konfig:  | 
||
| + | <pre>  | 
||
 aaa authentication login default group radius local  | 
   aaa authentication login default group radius local  | 
||
 aaa authorization exec default group radius local  | 
   aaa authorization exec default group radius local  | 
||
 aaa accounting exec default start-stop group radius  | 
   aaa accounting exec default start-stop group radius  | 
||
| − |  radius-server 152.66.208.218 auth-port 1812 acct-port 1813 key xxxxx  | 
  + |  radius-server 152.66.x.y auth-port 1812 acct-port 1813 key neduddmi!  | 
 radius-server timeout 10  | 
   radius-server timeout 10  | 
||
 radius-server retry 3  | 
   radius-server retry 3  | 
||
| + | </pre>  | 
||
| + | radiusd.conf:  | 
||
| − | radiusd.conf  | 
  + | <pre>  | 
| − | + |   #ldap szerver beállítása  | 
|
  ldap {  | 
    ldap {  | 
||
      server = "ldaps://ldap.sch.bme.hu"  | 
        server = "ldaps://ldap.sch.bme.hu"  | 
||
| 492. sor: | 504. sor: | ||
      timeout = 20  | 
        timeout = 20  | 
||
     }  | 
       }  | 
||
| + |   #felhasználónév-jelszó pár  | 
||
  files {  | 
    files {  | 
||
       usersfile = ${confdir}/users  | 
         usersfile = ${confdir}/users  | 
||
     }  | 
       }  | 
||
| + |   #log (fájl)  | 
||
  detail {  | 
    detail {  | 
||
       detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d  | 
         detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d  | 
||
| 513. sor: | 527. sor: | ||
  }  | 
    }  | 
||
  authorize {  | 
    authorize {  | 
||
| + |        preprocess  | 
||
       auth_log  | 
         auth_log  | 
||
       files  | 
         files  | 
||
| 530. sor: | 545. sor: | ||
        sql  | 
          sql  | 
||
    }  | 
      }  | 
||
| + | </pre>  | 
||
clients.conf:  | 
  clients.conf:  | 
||
| − | + | #NAS beállításai  | 
|
| + | <pre>  | 
||
 client 152.66.208.141 {  | 
   client 152.66.208.141 {  | 
||
| − |         secret = xxxx  | 
  + |         secret = neduddmi!  | 
        shortname = router-1  | 
          shortname = router-1  | 
||
        nastype = cisco  | 
          nastype = cisco  | 
||
 }  | 
   }  | 
||
 client 152.66.208.146 {  | 
   client 152.66.208.146 {  | 
||
| − |         secret = xxxx  | 
  + |         secret = neduddmi!  | 
        shortname = router-1  | 
          shortname = router-1  | 
||
        nastype = cisco  | 
          nastype = cisco  | 
||
 }  | 
   }  | 
||
| − |  A többi hálózati eszközt, hasonló módon felsoroljuk.  | 
  + | </pre>  | 
| + | |||
| + | A többi hálózati eszközt hasonló módon felsoroljuk.  | 
||
huntgroups:  | 
  huntgroups:  | 
||
| + | <pre>  | 
||
 (group név, IP):  | 
   (group név, IP):  | 
||
    ssh           Calling-Station-Id == 152.66.208.218  | 
      ssh           Calling-Station-Id == 152.66.208.218  | 
||
| − |   a többi IP cím felsorolása, ahhonan engedni akarjuk az ssh kapcsolatot  | 
  + | #  a többi IP cím felsorolása, ahhonan engedni akarjuk az ssh kapcsolatot  | 
| + | </pre>  | 
||
| − | postgresql.conf  | 
  + | postgresql.conf:  | 
A beállításoknál említett séma létrehozása, majd a fájl elején meg kell adni az SQL eléréséhez szükséges adatokat. Mást nem kell változtatni.  | 
  A beállításoknál említett séma létrehozása, majd a fájl elején meg kell adni az SQL eléréséhez szükséges adatokat. Mást nem kell változtatni.  | 
||
| − | |||
users:  | 
  users:  | 
||
| − |   '''SSH normál felhasználó fájlból:'''  | 
  + | '''SSH normál felhasználó fájlból:'''  | 
| − |     felhasználó1  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"  | 
  ||
| − |                   Service-Type = Login,  | 
  ||
| − |                   cisco-avpair="shell:priv-lvl=0"  | 
  ||
| − |   '''SSH admin felhasználó fájlból:'''  | 
  + | <pre>  | 
| − |     felhasználó2  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"  | 
  + |     felhasználónév1  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"  | 
| − |                   Service-Type = Login,  | 
  + |                      Service-Type = Login,  | 
| − |                   cisco-avpair="shell:priv-lvl=15"  | 
  + |                      cisco-avpair="shell:priv-lvl=0"  | 
| + | </pre>  | 
||
| − |   '''VPN felhasználó fájlból:'''  | 
  + | '''SSH admin felhasználó fájlból:'''  | 
| − |     felhasználó3  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 2  | 
  ||
| − |                   Service-Type = Outbound-User  | 
  ||
| − |   '''VPN felhasználó LDAP-ból:'''  | 
  + | <pre>  | 
| + |     felhasználónév2  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"  | 
||
| + |                      Service-Type = Login,  | 
||
| + |                      cisco-avpair="shell:priv-lvl=15"  | 
||
| + | </pre>  | 
||
| + | |||
| + | '''VPN felhasználó fájlból:'''  | 
||
| + | <pre>  | 
||
| + |     felhasználónév3  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 2  | 
||
| + |                      Service-Type = Outbound-User  | 
||
| + | </pre>  | 
||
| + | |||
| + | '''VPN felhasználó LDAP-ból:'''  | 
||
| + | <pre>  | 
||
    DEFAULT       Simultaneous-Use := 100, Auth-Type := LDAP  | 
      DEFAULT       Simultaneous-Use := 100, Auth-Type := LDAP  | 
||
                  Service-Type = Outbound-User  | 
                    Service-Type = Outbound-User  | 
||
| − | + | </pre>  | 
|
'''Logok:'''  | 
  '''Logok:'''  | 
||
'''fájl:'''  | 
  '''fájl:'''  | 
||
| − | * auth-detail-20071130  | 
  + | * auth-detail-20071130:  | 
| + | <pre>  | 
||
 Packet-Type = Access-Request   | 
   Packet-Type = Access-Request   | 
||
 Fri Nov 30 02:09:00 2007  | 
   Fri Nov 30 02:09:00 2007  | 
||
| 586. sor: | 602. sor: | ||
        Client-IP-Address = 152.66.208.141  | 
          Client-IP-Address = 152.66.208.141  | 
||
        Huntgroup-Name = "ssh"  | 
          Huntgroup-Name = "ssh"  | 
||
| − | + | </pre>  | 
|
| − | * detail-20071130  | 
  + | * detail-20071130:  | 
| − | + | <pre>  | 
|
 Fri Nov 30 02:09:00 2007  | 
   Fri Nov 30 02:09:00 2007  | 
||
        Acct-Session-Id = "0002F391"  | 
          Acct-Session-Id = "0002F391"  | 
||
| 620. sor: | 636. sor: | ||
        Client-IP-Address = 152.66.208.141  | 
          Client-IP-Address = 152.66.208.141  | 
||
        Timestamp = 1196385425  | 
          Timestamp = 1196385425  | 
||
| + | </pre>  | 
||
| + | |||
| + | --[[User:Farkas|Farkas]] (farkas_pont_jozsef_kukac_sch_pont_bme_pont_hu)  | 
||
A lap jelenlegi, 2008. január 30., 00:45-kori változata
Tartalomjegyzék | 
[szerkesztés] 1 Általános bevezető
A FreeRADIUS egy free open source RADIUS-szerver. A RADIUS (Remote Authentication Dial In User Service) egy olyan kliens-szerver protokoll, amely a következő feladatok ellátásához nyújt segítséget:
- authentication (hitelesítés),
 - authorization (engedélyezés),
 - and accounting (naplózás, számlázás).
 
Az authentication, authorization és accounting hármast csak AAA-nak szokás rövidíteni.
A FreeRADIUS hivatalos weboldala: http://www.freeradius.org/.
A cikk írásakor (2007. december 2.) az aktuális stabil verzió az 1.1.7 (2007.07.25-én jelent meg).
A FreeRADIUS egy moduláris, gyors, gazdag protokollkészletű RADIUS-szerver, amely lehetőséget biztosít külső, így saját modulok használatára is.
A FreeRADIUS a felhasználói adatokat a következő forrásokból tudja kiolvasni:
- LDAP
 - Kerberos
 - SQL (MySQL, PostgreSQL, MSSQL, Oracle)
 - /etc/passwd
 - PAM
 - sima szövegfájl
 - ProxyRadius
 - DC (Windows domain controller)
 - külső program (perl, python)
 
Támogatott hitelesítési protokollok:
- PAP
 - CHAP
 - MSCHAP (v1, v2)
 - SIP Digest (Cisco VoIP)
 - EAP, PEAP
 
[szerkesztés] 2 Mikor használják?
Felmerülhet a kérdés, hogy ha van pl. egy LDAP-szerverünk, akkor miért teszünk még egy szervert (RADIUSt) a hálózati erőforrás és az LDAP közé?
-  Biztonsági megfontolásból.
- Pl. ha az adott alkalmazást feltörik, akkor nem tudnak közvetlenül hozzáférni az LDAP-hoz, ilyenkor a RADIUS-szerver egyfajta bástyahostként (Bastion host) viselkedik.
 
 -  Vagy: ki akarjuk használni a RADIUS adta lehetőségeket:
- központi felhasználó-
 - és jogosultságkezelés,
 - naplózás.
 
 
Leggyakoribb alkalmazási területe: azoknál a hálózati erőforrásoknál, ahol nincs lehetőség vagy mód a fent felsorolt azonosítási protokollok implementálására. Pl. hálózati eszközök (routerek, switchek, AP-k, stb.).
[szerkesztés] 3 Hogy lehet beszerezni?
A letölthető a forrása a http://www.freeradius.org/ weboldalról, és utána a szokásos modon telepíthető (./configure, make, make install), de általában a disztribúciókhoz is létezik belőle csomag (pl. Debian, Fedora, SUSE stb).
Létezik belőle Windows-os verzió is, csak azt FreeRADIUS.net néven terjesztik, és a http://www.freeradius.net/ weboldalról tölthető le.
[szerkesztés] 4 A RADIUS-protokoll
Kliens-szerver architekurájú protokoll, ahol:
- a kliens egy NAS (Network Access Server),
 - a szerver pedig a RADIUS-szerver.
 
A RADIUS-protokoll UDP-t használ. A kliens és a szerver között egy-egy tranzakcióval kapcsolatban mindkét irányban csak egy-egy csomag megy át, így fölösleges lenne TCP-t használni. A TCP ugyan megbízhatóbb, de megnövelné a protokoll válaszidejét.
A protokoll két portot használ:
- 1812: auth (authentication, authorization) folyamatok;
 - 1813: naplózás, számlázás (accounting).
 
Két RFC foglalkozik vele:
Protokollfutam:
A RADIUS csomagformátuma:
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         Authenticator                         |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Attributes ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-
RADIUS Codes (decimal) értékei:
        1       Access-Request
        2       Access-Accept
        3       Access-Reject
        4       Accounting-Request
        5       Accounting-Response
       11       Access-Challenge
       12       Status-Server (experimental)
       13       Status-Client (experimental)
      255       Reserved
Mivel az UDP-ben nincs nyugtázás, ezért a protokollba beépítették. Erre csak a naplózásnál (accounting) van szükség, ilyenkor a RADIUS-szerver nyugtázza, hogy megkapta a napló (accounting) csomagot.
Identifier: Az összetartozó csomagokat azonosítja.
Length: Az egész csomag méretét adja meg. A minimális méret 20, míg a maximális 4096 byte.
Authenticator: A NAS és a RADIUS rendelkezik egy közös kulccsal ("secret" vagy "key").
Auth esetén:
- A kliens generál egy véletlenszámot, amit elküld a kérésben (NAS Authenticator).
 -  A szerver a válaszcsomagban a következő algoritmust használja fel, hogy hitelesítse magát:
- Response Authenticator = MD5(Code,ID,Length,NASAuthenticator,Attributes,Secret).
 
 
Acc esetén:
-  A kliens (NAS) a következő algoritmus szerint generálja:
- Request Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)
 
 -  A RADIUS a válasza:
- Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)
 
 
Attribútum felépítése:
    0                   1                   2
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
   |     Type      |    Length     |  Value ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Type:
Length:
Atrribútum teljes hosszát adja meg.
Value:
Nulla vagy több byte, az attribútum értékét tartalmazza.
Típusai:
-  text 1-253 byte (UTF8 kodolt string)
 -  string 1-253 byte
 -  address 32 bit
 -  integer 32 bit
 - time 32 bit (unix time: 1970. január 1. UTC 00:00:00 óta eltelt másodpercek)
 
[szerkesztés] 4.1 RADIUS hitelesítés lépései
-  NAS - Access-Request
- Code=Access-Request
 - NAS Authenticator=NAS által generált random szám
 -  Attribútumok: User-Name, User-Password
- Password titkosítva=MD5(NAS Authenticator,Secret) XOR Password
 
 
 -  RADIUS - Access-Accept vagy Access-Reject
- Code= Access-Accept vagy Access-Reject
 - Authenticator=MD5(Code,ID,Length,NAS Authenticator,Attributes,Secret)
 - Attribútomok (pl.: jogok, protokoll, stb) (opcionális)
 
 
[szerkesztés] 4.2 RADIUS naplózás lépései
-  NAS - Accounting-Request
- Code=Accounting-Request
 - Authenticator=MD5(Code,Identifier,Length,16 zero octets,request attributes,shared secret)
 - Attribútumok
 
 
-  RADIUS - Accounting-Response
- Code=Accounting-Response
 - Authenticator=MD5(Code,Identifier,Length,Request Authenticator,Secret)
 
 
[szerkesztés] 5 Beállítás
Forrásból telepített FreeRADIUS könyvtár alkönyvtárai:
bin/ etc/ include/ lib/ man/ sbin/ share/ var/
A konfigurációs fájlok alapértelmezés szerint az etc/raddb könyvtárban vannak. A fájlok listája:
acct_users attrs certs clients clients.conf db.ipindex db.ippool dictionary eap.conf error2 example.pl experimental.conf hints huntgroups ldap.attrmap mssql.conf naslist naspasswd oraclesql.conf otp.conf otppasswd.sample postgresql.conf preproxy_users proxy.conf radiusd.conf realms services snmp.conf sql.conf sqlippool.conf users
A listából is látszik, hogy mennyire moduláris a konfiguráció. A fő konfigurációs fájl a radiusd.conf; ez töltődik be alapból, és tölti be a szükséges többi konfigurációs fájlt.
radiusd.conf felépítése:
   először általános beállítások
        pl.: IP cím, maximum kiszolgálható konkurens kliensek száma, stb.
   modulok megadása
        modulnév {
             modul beéllításai, paraméterei (opcionális)
             $INCLUDE "fájl"  (opcionális)
        }
   AAA methodus (itt megadott modulokat sorban dolgozza fel, kivéve, ha Auth-Type van megadva a modulnál, 
                 mert akkor csak azt használja, és nem megy a következőhöz)
         authorize {
            modulnév
            . 
            .
         }
         authenticate {
            modulnév
            . 
            .
         }
         preacct {
            modulnév
            . 
            .
         }
         accounting {
            modulnév
            . 
            .
         }
         post-auth {
            modulnév
            . 
            .
         }       
         pre-proxy {
            modulnév
            . 
            .
         }
         post-proxy {
            modulnév
            . 
            .
         }
Néhány radiusd.conf-részlet:
#általános rész:
 prefix = /usr/local/freeradius-1.1.7
 exec_prefix = ${prefix}
 sysconfdir = ${prefix}/etc
 localstatedir = ${prefix}/var
 sbindir = ${exec_prefix}/sbin
 logdir = ${localstatedir}/log/radius
 raddbdir = ${sysconfdir}/raddb
 radacctdir = ${logdir}/radacct
 confdir = ${raddbdir}
 run_dir = ${localstatedir}/run/radiusd
 log_file = ${logdir}/radius.log
 pidfile = ${run_dir}/radiusd.pid
#ilyen userként és groupként fog futni:
 user = nobody
 group = nobody
#melyik IP-n figyeljen:
 bind_address = 152.66.x.y
#proxy: ("igen",ha használni akarjuk a RADIUS proxy szolgáltatását, különben "nem")
#Ha proxy szolgáltatást választjuk, akkor a AAA methodusnál a RADIUS szerverünk, csak "átjátszóként" fog viselkedni,
#és egy másik RADIUS-hoz továbbítja a NAS-tól kapott csomagokat, és fordítva is.)
 proxy_requests  = yes
 $INCLUDE  ${confdir}/proxy.conf
#kliensek (NAS-ok):
 $INCLUDE  ${confdir}/clients.conf
#Modulok megadása, beállítása:
#Unix /etc/passwd alapú hitelesítés:
 unix {
   passwd = /etc/passwd
 }
#AAA metódus előtt elvégzett műveletek pl.: IP cím-ellenőrzés
    preprocess {
          huntgroups = ${confdir}/huntgroups
          hints = ${confdir}/hints
    }
#LDAP:
  ldap {
     server = "ldap.your.domain"
     identity = "cn=admin,o=My Org,c=UA"
     basedn = "o=My Org,c=UA"
     filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
     base_filter = "(objectclass=radiusprofile)"
     start_tls = no
     tls_cacertfile        = /path/to/cacert.pem
     tls_cacertdir         = /path/to/ca/dir/
     tls_certfile          = /path/to/radius.crt
     tls_keyfile           = /path/to/radius.key
     tls_randfile          = /path/to/rnd
     tls_require_cert      = "demand"
     ldap_connections_number = 5
   }
#felhasználók megadása:
  files {
     usersfile = ${confdir}/users
     acctusersfile = ${confdir}/acct_users
     preproxy_usersfile = ${confdir}/preproxy_users
  }
#Naplózás:
  detail {
     detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
     detailperm = 0600
  }
  sql_log {
               path = ${radacctdir}/sql-relay
               acct_table = "radacct"
               postauth_table = "radpostauth"
               Start = "INSERT INTO ${acct_table} (AcctSessionId, UserName, \
                NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
                AcctSessionTime, AcctTerminateCause) VALUES                 \
                ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
                '%{Framed-IP-Address}', '%S', '0', '0', '');"
               Stop = "INSERT INTO ${acct_table} (AcctSessionId, UserName,  \
                NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
                AcctSessionTime, AcctTerminateCause) VALUES                 \
                ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
                '%{Framed-IP-Address}', '0', '%S', '%{Acct-Session-Time}',  \
                '%{Acct-Terminate-Cause}');"
               Alive = "INSERT INTO ${acct_table} (AcctSessionId, UserName, \
                NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
                AcctSessionTime, AcctTerminateCause) VALUES                 \
                ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
                '%{Framed-IP-Address}', '0', '0', '%{Acct-Session-Time}','');"
               Post-Auth = "INSERT INTO ${postauth_table}                   \
                (user, pass, reply, date) VALUES                            \
                ('%{User-Name}', '%{User-Password:-Chap-Password}',         \
                '%{reply:Packet-Type}', '%S');"
       }
#AAA methodus
 authorize {
     preprocess
     files
     ldap
     eap
     sql
   }
 authenticate {
        Auth-Type CHAP {
                chap
        }
        pam
        unix
    }
 preacct {
        preprocess
        acct_unique
    }
 accounting {
        detail
        sql
        sql_log
    }
 post-auth {
        main_pool
        sqlippool
        Post-Auth-Type REJECT {
               insert-module-name-here
        }
    }
 pre-proxy {
        files
        pre_proxy_log
    }
 post-proxy {
        post_proxy_log
    }
Az Auth-Type beállításnál csak az ott megadott modult használja, és nem próbálja meg a többi felsorolt modult használni.
A authorize-nál megadott modulok segítségével a RADIUS eldönti, hogy engedélyezi-e a felhasználó hitelesítését. A preprocess (előfeladatok) a hints, huntgroup és a realm modulok alapján végez ellenőrzést.
A preacct a naplózás előtt elvégzendő műveletek -egyedi kulcsot generál a felhasználónak, amit a sql naplózásnál használnak acct_unique = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port" -preprocess: a naplózás előtt elvégezendő műveleteket adhatunk meg pl.: IP cím ellenörzés
A post-auth az eredményesen hitelesített felhasználók utólagos műveleteit tartalmazza pl.: IPcím-osztás. Vagy a nem eredményesen hitelesített felhasználókat a "Post-Auth-Type REJECT"-nél megadott modullal még megpróbálja hitelsíteni a RADIUS.
A pre-proxynál és post-proxynál a RADIUS-Proxy előtt és után elvégzett modulokat lehet megadni.
clients
A NAS beállításait lehet megadni: IP, secret, nastype.
Támogatott NAS-típusok:
- cisco
 - computone
 - livingston
 - max40xx
 - multitech
 - netserver
 - pathras
 - patton
 - portslave
 - tc
 - usrhiper
 - other
 
általános forma:
client IP {
        secret = key
        shortname = megnevezés
        nastype = NAS type
}
realms
A felhasználónév@realm formátumban megadott felhasználóneveknél használatos. Felhasználói csoportokat hozz hatunk létre, és különböző jogosultságokat, beállításokat adhatunk a csoportoknak.
huntgroups
A NAS-kat csoportokba szervezhetjük, és a kapcsolatot kezdeményezhető IP címeket, vagy felhazsnálóneveket adhatjuk meg. Itt tudjuk szabályozni, hogy milyen felhasználónévvel és IP címmel, milyen NAS-okhoz lehet kapcsolodni. Általános forma:
csoportnév  NAS-IP-Address == IP1, Calling-Station-Id == IP2
            User-Name = felhasznaélónév1,  User-Name = felhasználónév1, ...
users
A felhasználók hitelesítési beállításait adhatjuk meg, ezenkívül a felhasználónévhez tartozó jelszót is megadhatjuk.
A kezdhetjük a felhasználónévvel, vagy DEFAULT kulcsszó megadással. A DEFAULT joker bejegyzésként viselkedik, és minden felhasználónévre illesszkedik.
Általános forma:
Felhasználónév (DEFAULT mindenre illeszkedik) utána az Attributtumokat kell megadni veszővel elválasztva.
Az attributumok megadásánál a következő operátorok használhatók: =,==.:=.+=,<,>,<=,>=,!=,=~,=*,!~,!*
A FreeRADIUS-ban használt attributumok: attributes
| attributtum név | leírás | érték | példa | 
|---|---|---|---|
| Auth-Type | authentikáció típusa | Accept, Reject, Local, EAP | Auth-Type == Local | 
| User-Password | jelszó megadása | sztring | User-Password == "jelszo" | 
| Service-Type | szolgáltatás típusa | Login, Outbound-User, Framed-User | Service-Type == Login | 
| Huntgroup-Name | csoport megadás | sztrinh | Huntgroup-Name == "csoport név" | 
| Simultaneous-Use | max kunkurens kapcsolatok szama | integer | Simultaneous-Use :=5 | 
Példa:
JohnDoe Auth-Type := Local, User-Password == "hello"
Egyéb modulok
A modulok beállításait, ha a radiusd.conf-ban nem lehet, vagy nem akarjuk megtenni, akkor általábban a modullal azonos nevű fájlban tudjuk megtenni. Ilyenkor a fájlt includolni kell a radiusd.conf-ban.
Példa:
 $INCLUDE  ${confdir}/fájlnév
SQL:
A radiusd.conf-ban meg kell adni, hogy milyen sql-t szeretnénk használni. Támogatott: PostgreSQL, MySQL, MSSQL, Oracle.
Például, ha postgresql-t szeretnénk használni, akkor a postgresql.conf-ba az alábbi sort kell megadni:
$INCLUDE  ${confdir}/postgresql.conf
A fájlban kell megadni a postgreSQL szerver beállításait pl.: hostnév, felhasználó, jelszó, adatbázis, stb..
Az adatbázis séma elérési útja a fájl elején található pl.: doc/examples/postgresql.sql
A postgresql.conf az alábbi módon épül fel:
  sql {
        
        driver = "rlm_sql_postgresql"
        server = "localhost"
        login = "postgres"
        password = "diddgozs!!"
        radius_db = "radius"
     
Majd az AAA metódusnál megismert események SQL műveletei vannak:
Egy kapcsolat felépítésének a naplózása:
 accounting_start_query = "INSERT into ${acct_table1} \
    AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctAuthentic, \
    ConnectInfo_start, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AscendSessionSvrKey) \
    values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', \
    '%{NAS-Port}', '%{NAS-Port-Type}', ('%S'::timestamp - '%{Acct-Delay-Time:-0}'::interval), '%{Acct-Authentic}', '%{Connect-Info}', \
    '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', \
     NULLIF('%{Framed-IP-Address}', '')::inet, 0, '%{X-Ascend-Session-Svr-Key}')"
Eyg sor a PostgreSQL-ból:
 radacctid |  acctsessionid   | acctuniqueid | username | realm |  nasipaddress  | nasportid | nasporttype |     acctstarttime      |      acctstoptime      | acctsessiontime | acctauthentic | connectinfo_start | connectinfo_stop | acctinputoctets | acctoutputoctets | calledstationid | callingstationid | acctterminatecause |   servicetype   | framedprotocol | framedipaddress | acctstartdelay | acctstopdelay
-----------+------------------+--------------+----------+-------+----------------+-----------+-------------+------------------------+------------------------+-----------------+---------------+-------------------+------------------+-----------------+------------------+-----------------+------------------+--------------------+-----------------+----------------+-----------------+----------------+---------------
         1 | 0400000000000055 |              | farki    |       | 152.66.209.185 |         0 | Virtual     | 2006-07-29 14:55:59+02 | 2006-07-29 14:56:01+02 |               1 | RADIUS        |                   |                  |               0 |                0 |                 | 152.66.213.10    | User-Request       | NAS-Prompt-User |                |                 |              0 |             0
(1 sor)
[szerkesztés] 6 Beállítási példa
A példában a következőket valósítjuk meg:
-  Adott
- néhány Cisco hálózati eszköz (switch, router, VPN-koncentrátor)
 - néhány gép, amikről ezeket szeretnék SSH-n keresztül konfigurálni.
 
 - A felhasználónév-jelszó párt fájlban tároljuk.
 - A kapcsolatokat naplózni szeretnénk fájlba és sql-be is.
 -  A VPN-koncetrátornál szeretnénk, ha
- a VPN-felhasználók azonosítása LDAP-ból történe, és
 - ők ne tudjanak SSH-n keresztül belépni a hálózati eszközökre.
 - A naplózás itt is követelmény.
 
 
Cisco IOS konfig:
aaa authentication login default group radius local aaa authorization exec default group radius local aaa accounting exec default start-stop group radius radius-server 152.66.x.y auth-port 1812 acct-port 1813 key neduddmi! radius-server timeout 10 radius-server retry 3
radiusd.conf:
  #ldap szerver beállítása
  ldap {
      server = "ldaps://ldap.sch.bme.hu"
      basedn = "dc=sch,dc=bme,dc=hu"
      port =636
      tls_mode = yes
      tls_cacertfile        = ca-cert path
      tls_certfile          = host-cert path
      tls_keyfile           = host-key path
      authtype = ldap
      ldap_connections_number = 20
      set_auth_type = yes
      timeout = 20
     }
  #felhasználónév-jelszó pár
  files {
       usersfile = ${confdir}/users
     }
  #log (fájl)
  detail {
       detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
       detailperm = 0600
     }
  detail auth_log {
       detailfile = ${radacctdir}/%{Client-IP-Address}/auth-detail-%Y%m%d
       detailperm = 0600
     }
  acct_unique {
       key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"
     }
  $INCLUDE  ${confdir}/clients.conf
  $INCLUDE  ${confdir}/postgresql.conf
  preprocess {
      huntgroups = ${confdir}/huntgroups
      hints = ${confdir}/hints
  }
  authorize {
       preprocess
       auth_log
       files
       ldap
    }
  authenticate {
       Auth-Type LDAP  {
               ldap
       }
    }
  preacct {
        preprocess
        acct_unique
    }
  accounting {
        detail
        sql
    }
clients.conf:
- NAS beállításai
 
 client 152.66.208.141 {
        secret = neduddmi!
        shortname = router-1
        nastype = cisco
 }
 client 152.66.208.146 {
        secret = neduddmi!
        shortname = router-1
        nastype = cisco
 }
A többi hálózati eszközt hasonló módon felsoroljuk.
huntgroups:
 (group név, IP):
    ssh           Calling-Station-Id == 152.66.208.218
#  a többi IP cím felsorolása, ahhonan engedni akarjuk az ssh kapcsolatot
postgresql.conf:
A beállításoknál említett séma létrehozása, majd a fájl elején meg kell adni az SQL eléréséhez szükséges adatokat. Mást nem kell változtatni.
users:
SSH normál felhasználó fájlból:
    felhasználónév1  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"
                     Service-Type = Login,
                     cisco-avpair="shell:priv-lvl=0"
SSH admin felhasználó fájlból:
    felhasználónév2  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 10, Huntgroup-Name == "aclip"
                     Service-Type = Login,
                     cisco-avpair="shell:priv-lvl=15"
VPN felhasználó fájlból:
    felhasználónév3  Auth-Type := Local, User-Password == "xxxxx", Simultaneous-Use := 2
                     Service-Type = Outbound-User
VPN felhasználó LDAP-ból:
    DEFAULT       Simultaneous-Use := 100, Auth-Type := LDAP
                  Service-Type = Outbound-User
Logok:
fájl:
- auth-detail-20071130:
 
 Packet-Type = Access-Request 
 Fri Nov 30 02:09:00 2007
        User-Name = "guest"
        Reply-Message = "Password: "
        NAS-Port = 194
        NAS-Port-Id = "tty194"
        NAS-Port-Type = Virtual
        Calling-Station-Id = "152.66.208.218"
        NAS-IP-Address = 152.66.208.141
        Client-IP-Address = 152.66.208.141
        Huntgroup-Name = "ssh"
- detail-20071130:
 
 Fri Nov 30 02:09:00 2007
        Acct-Session-Id = "0002F391"
        User-Name = "guest"
        Acct-Authentic = RADIUS
        Acct-Status-Type = Start
        NAS-Port = 194
        NAS-Port-Id = "tty194"
        NAS-Port-Type = Virtual
        Calling-Station-Id = "152.66.208.218"
        Service-Type = NAS-Prompt-User
        NAS-IP-Address = 152.66.208.141
        Acct-Delay-Time = 0
        Client-IP-Address = 152.66.208.141
        Timestamp = 1196384940
 Fri Nov 30 02:17:05 2007
        Acct-Session-Id = "0002F391"
        User-Name = "guest"
        Acct-Authentic = RADIUS
        Acct-Terminate-Cause = User-Request
        Acct-Session-Time = 485
        Acct-Status-Type = Stop
        NAS-Port = 194
        NAS-Port-Id = "tty194"
        NAS-Port-Type = Virtual
        Calling-Station-Id = "152.66.208.218"
        Service-Type = NAS-Prompt-User
        NAS-IP-Address = 152.66.208.141
        Acct-Delay-Time = 0
        Client-IP-Address = 152.66.208.141
        Timestamp = 1196385425
--Farkas (farkas_pont_jozsef_kukac_sch_pont_bme_pont_hu)
