FreeRADIUS
(→Általános bevezető) |
(→RADIUS protokoll) |
||
| 42. sor: | 42. sor: | ||
Protokoll futam:<br> |
Protokoll futam:<br> |
||
<center> |
<center> |
||
| − | [[Kép:radius2.gif]] |
||
<br><br> |
<br><br> |
||
[[Kép:radius.gif]] |
[[Kép:radius.gif]] |
||
| 96. sor: | 95. sor: | ||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
||
<br> |
<br> |
||
| + | |||
| + | Type: |
||
| + | 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 |
||
| + | |||
| + | Lenght: <br> |
||
| + | Atrributum teljes hosszát adja meg.<br> |
||
| + | Value:<br> |
||
| + | Mérete lehet nulla is. Vagy több byte is.<br> |
||
| + | Típusai:<br> |
||
| + | * text 1-253 byte<br> |
||
| + | * string 1*253 byte<br> |
||
| + | * address 32 bit<br> |
||
| + | * integer 32 bit<br> |
||
| + | * time 32 bit (unix time: 1970, január 1. UTC 00:00:00 óta eltelt másodpercek)<br> |
||
| + | <br> |
||
| + | |||
| + | |||
| + | |||
| + | [[Kép:radius2.gif]] |
||
== Beállítás == |
== Beállítás == |
||
A lap 2007. november 25., 15:21-kori változata
Tartalomjegyzék |
1 Általános bevezető
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.
FreeRADIUS hivatalos weboldala: http://www.freeradius.org/
Jelenlegi stabil verzió: 1.1.7 (2007.07.25)
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 FreeRADIUS által használt felhasználói adatok elérése:
- LDAP
- Kerberos
- SQl (MySQL, PostgreSQL, MSSQl, Oracle)
- /etc/passwd
- PAM
- fájl
- ProxyRadius
- DC (domain controller)
- program (perl, python)
Hitelesítési protokollok:
- PAP
- CHAP
- MSCHAP (v1, v2)
- SIP Digest (Cisco VoIP)
- EAP
2 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é?
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.
Vagy ki akarjuk használni a RADIUS adta lehetőségeket pl.: 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.).
3 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ábban a distribucióknál létezik belőlük 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.
4 RADIUS protokoll
Kliens-server architekurájú protokoll, ahol a kliens egy NAS (Network Access Server), ami küld egy kérést, és a server (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 hazsnálni. A TCP megbizható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.
RFC (2000): 2865, 2866
Protokoll futam:
RADIUS adat formá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
Identifier: Az összetartozó csomagokat azonosítja.
Length: Az egész csomag méretét adja meg. A minimum 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). 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+RequestAuth+Attributes+Secret).
Attributum:
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:
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
Lenght:
Atrributum teljes hosszát adja meg.
Value:
Mérete lehet nulla is. Vagy több byte is.
Típusai:
- text 1-253 byte
- 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)
5 Beállítás
Forrásból telepített FreeRADIUS könyvtár szerkezette:
bin etc include lib man sbin share var
A konfig fájlok alapértelmezésben a etc/raddb könyvtárban vannak. A konfig 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ó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.
Radiusd.conf fájlból részletek:
