Size: 15313
Comment:
|
Size: 16838
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 363: | Line 363: |
secret = <a secret password> | secret = <shared secret with HU radius server> |
Line 368: | Line 368: |
secret = <a secret password> | secret = <shared secret with HU radius server> |
Line 373: | Line 373: |
=== EAP mód konfiguráció === Lásd fent, FreeRADIUS 1.x-nél. === Proxy konfiguráció === A {{{proxy.conf}}} fájlban csak a hierarchikus fastruktúrában lévő szomszéd csomópontokba tartozó RADIUS szervereket kell megadnunk, ill. az egyes csoportokon belüli szerverek kezelését. Azt, hogy az egyes RADIUS kérések továbbítása, proxyzása hova történjen, nem itt adjuk meg, hanem majd más beállításoknál hivatkozunk az itt definiált csoportokra. Magyarországi eduroam tagintézmény esetén jellemzően egy szomszédja van a fában az intézménynek, ez pedig a {{{hu}}} csomópont, amibe a két fent említett RADIUS szerver tartozik. Ezt a szomszédot nevezzük el {{{UP}}} realmnek (a hierarchia teteje irányában lévő szomszédunk)! A {{{proxy.conf}}} fájlba a következöket kell beírni: {{{ proxy server { default_fallback = no } home_server hu1 { type = auth+acct ipaddr = 195.111.98.4 port = 1812 secret = <shared secret with HU radius server> status_check = none } home_server hu2 { type = auth+acct ipaddr = 195.111.98.12 port = 1812 secret = <shared secret with HU radius server> status_check = none } home_server_pool eduroam_up_pool { type = fail-over home_server = hu1 home_server = hu2 } realm UP { pool = eduroam_up_pool nostrip } realm LOCAL { } }}} |
Contents
Freeradius 1.x konfigurálás
FreeRadius installáció
Installáljuk fel a kiszemelt Radius gépre a FreeRadius csomagot.
Access point konfiguráció
Feltételezve, hogy az Eduroamhoz használt access point IP címe a.b.c.d akkor a clients.conf fájlba a következőket kell írni:
client a.b.c.d { secret = <a secret password> shortname = <a name for your wireless AP> }
A secret password-nak meg kell egyeznie a secret password-el amit a wireless access point-on konfiguráltunk ehhez a radius szerverhez.
EAP mód konfiguráció
EAP/TTLS konfiguráció
Az eap.conf fájlba a következőket kell beírni:
eap { default_eap_type = tls timer_expire = 60 ignore_unknown_eap_types = no tls { private_key_file = <path to a private key for your Radius server> certificate_file = <path to the corresponding certificate file for the Radius server> CA_file = <path to the file containing the certificate of the Certificate Authority> dh_file = ${raddbdir}/certs/dh random_file = /dev/urandom fragment_size = 1024 include_length = yes copy_request_to_tunnel = no use_tunneled_reply = no } ttls { default_eap_type = md5 copy_request_to_tunnel = no use_tunneled_reply = no } }
Tanusítványt ugyanúgy lehet szerezni pl. az NIIF CA-tól mint EAP/TTLS esetében. Az, hogy az NIIF CA-tól legyen tanusítvány nem követelmény, mivel ezt a tanusítványt csak helyi felhasználók authentikációjakor fogja a rendszer használni a TLS tunnnel kiépítésekor. NIIF CA-tól beszerzett tanusítvány ajánlott, mert az együttmüködési tesztek könnyebben mennek és a felhasználóknak csak 1 gyökér tanusítványt kell telpíteniük.
Az TLS szekció pontos kitöltése nagyon fontos, különben nem fog müködni az authentikáció, mivel a TTLS a TLS helyes müködésére épít.
Az EAP-MD5 authentikáció alkalmazása nem ajánlott alapesetben, de mivel az authentikáció WPA/WPA2 segítségével és TLS tunnelben történik ezért elég megbizhatónak számít. Az egyéb lehetséges beállítások: CHAP, MSCHAPv2 ebben az esetben az authentikációs adatbázisban nyíltan kell tárolni a jelszavakat.
PEAP konfiguráció
Az eap.conf fájlba a következőket kell beírni:
eap { default_eap_type = tls timer_expire = 60 ignore_unknown_eap_types = no tls { private_key_file = <path to a private key for your Radius server> certificate_file = <path to the corresponding certificate file for the Radius server> CA_file = <path to the file containing the certificate of the Certificate Authority> dh_file = ${raddbdir}/certs/dh random_file = /dev/urandom fragment_size = 1024 include_length = yes copy_request_to_tunnel = no use_tunneled_reply = no } # The PEAP module needs the TLS module to be installed # and configured, in order to use the TLS tunnel # inside of the EAP packet. You will still need to # configure the TLS module, even if you do not want # to deploy EAP-TLS in your network. Users will not # be able to request EAP-TLS, as it requires them to # have a client certificate. EAP-PEAP does not # require a client certificate. # peap { # The tunneled EAP session needs a default # EAP type which is separate from the one for # the non-tunneled EAP module. Inside of the # PEAP tunnel, we recommend using MS-CHAPv2, # as that is the default type supported by # Windows clients. default_eap_type = mschapv2 } }
Tanusítványt ugyanúgy lehet szerezni pl. az NIIF CA-tól mint EAP/TTLS esetében. Az, hogy az NIIF CA-tól legyen tanusítvány nem követelmény, mivel ezt a tanusítványt csak helyi felhasználók authentikációjakor fogja a rendszer használni a TLS tunnnel kiépítésekor. NIIF CA-tól beszerzett tanusítvány ajánlott, mert az együttmüködési tesztek könnyebben mennek és a felhasználóknak csak 1 gyökér tanusítványt kell telpíteniük.
Az TLS szekció pontos kitöltése nagyon fontos, különben nem fog müködni az authentikáció, mivel a PEAP a TLS helyes müködésére épít.
A Tunnelen belül MSCHAPv2 authentikációt alkalmazzunk, mert így a Windows XP felhassználóknak nem kell újabb supplicant-et telpíteniük. MSCHAPv2 esetében az authentikációs adatbázisban nyíltan kell tárolni a jelszavakat.
Proxy konfiguráció
A proxy.conf fájlba a következöket kell beírni:
realm UP { type = radius authhost = radius1.eduroam.hu:1812 accthost = radius1.eduroam.hu:1813 secret = <shared secret with HU radius server> nostrip } realm UP { type = radius authhost = radius2.eduroam.hu:1812 accthost = radius2.eduroam.hu:1813 secret = <shared secret with HU radius server> nostrip }
Illetve a clients.conf fájlba:
client 195.111.98.4 { secret = <shared secret with HU radius server> shortname = radius1.eduroam.hu } client 195.111.98.12 { secret = <shared secret with HU radius server> shortname = radius2.eduroam.hu }
Freeradius modul és authentikáció konfiguráció
LDAP authentikációs adatbázis esetén
A radiusd.conf fájlban a következő modulok helyesen legyenek konfigurálva
modules { ... ldap { server = <"myldap.domain.hu"> identity = <"cn=admin,dc=domain,dc=hu"> password = <admin bind password> basedn = <"ou=people,dc=domain, dc=hu”> filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" # If your LDAP server supports TLS you should use it start_tls = yes tls_cacertfile = <path to the certificate of the CA of your LDAP server certificate> tls_randfile = /dev/urandom # Itt szabályozható, hogy kinek van Eduroam hozzáférése access_attr = "dialupAccess" dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 5 # Itt tároljuk a jelszavakat password_attribute = userPassword } ..... $INCLUDE ${confdir}/eap.conf ..... } .... authorize { preprocess auth_log eap files ldap } ... authenticate { Auth-Type PAP { pap } Auth-Type LDAP { ldap } eap }
password authentikációs adatbázis esetén
modules { # unix { # # # Define the locations of the normal passwd, shadow, and # group files. # To force the module to use the system password functions, # instead of reading the files, leave the following entries # commented out. # # This is required for some systems. # # passwd = /etc/passwd # shadow = /etc/shadow # group = /etc/group # radwtmp = ${logdir}/radwtmp } passwd etc_group { filename = /etc/group format = "=Group-Name:::*,User-Name" hashsize = 50 ignorenislike = yes allowmultiplekeys = yes delimiter = ":" } authenticate { Auth-Type PAP { pap } eap }
mySQL authentikációs adatbázis esetén
modules { ... $INCLUDE ${confdir}/sql.conf ... } .... authorize { preprocess auth_log eap sql files } ... authenticate { Auth-Type PAP { pap } eap } ...
Az sql.conf fájlban, amennyiben a Postfilter csomagra és annak az autentikációs adatbázisára támaszkodunk, a következő beállításokat használjuk:
sql { driver = "rlm_sql_mysql" server = "mysql-server-host" login = "sql-user" password = "sql-user-password" radius_db = "postfilter" # vagy postfilter_replicated adatbázis replikált mySQL szerver esetében ... authcheck_table = "user" authreply_table = "user" ... sql_user_name = "%{User-Name}" ... authorize_check_query = "SELECT _userid, _address, \ 'Password', _passwd, '==' \ FROM ${authcheck_table} \ WHERE _address = '%{SQL-User-Name}' \ AND _passwd != '' \ ORDER BY _userid" authorize_reply_query = "SELECT _userid, _address, \ 'foo', 'foo', '==' \ FROM ${authcheck_table} \ WHERE _address = '__never_ever_match__'" authorize_group_check_query = "SELECT _userid, _address, \ 'foo', 'foo', '==' \ FROM ${authcheck_table} \ WHERE _address = '__never_ever_match__'" authorize_group_reply_query = "SELECT _userid, _address, \ 'foo', 'foo', '==' \ FROM ${authcheck_table} \ WHERE _address = '__never_ever_match__'" ... }
Azonosítók feldolgozása
A users fájlban kell feldolgozni a bejövő kéréskeket és a szétdobálni a megfelelő radius proxy-knak: Minden userre illeszkedő szabályokat DEFAULT szabályokkal lehet csinálni:
pl. ha a felhasználó benne van a noradius group-ban (passwordos authentikáció) akkor nem használhatja a radius authentikációt:
DEFAULT Group == "noradius", Auth-Type := Reject Reply-Message = "Your account has been disabled."
pl. minden ami nem illeszkedik a domain1.hu-ra vagy domain2.hu ra el kell küldeni a felsőbb szintű proxynak, és ne is probálkozzon tovább a defualt bejegyzésekkel:
DEFAULT User-Name =~ "@", User-Name !~ "[\@\.]domain1.hu$|[\@\.]domain2.hu$", Proxy-To-Realm:= UP Fall-Through = No
Debughoz hozzunk létre egy felhasználót:
#teszt uesr for debugging debug User-Password == "nagyon titkos jelszo" Reply-Message = "Hello, %u, debug usage only!", Fall-Through = no
Az összes többi felhasználót helyileg authentikáljuk - suffix kezelést helyesen be kell állítani!!!:
DEFAULT Auth-Type = System Fall-Through = 1
FreeRADIUS 2.x konfigurálás
FreeRADIUS telepítés
Installáljuk fel a kiszemelt gépre a FreeRADIUS csomagot.
RADIUS kliensek felvétele
Feltételezve, hogy az eduroamhoz használt access point IP címe a.b.c.d, a clients.conf fájlba a következőket kell írni:
client a.b.c.d { secret = <a secret password> shortname = <a name for your wireless AP> virtual_server = wlan }
A secret password beállításnak meg kell egyeznie a wireless access pointon konfigurált RADIUS jelszóval.
A virtual_server beállítás használata tisztábbá teszi a FreeRADIUS konfigurációt. Segítségével elkülönítve kezelhetjük a RADIUS szerverben az adott klienseket a RADIUS szerver többi kliensétől, azaz pl. a WLAN access pointoktól érkező és mondjuk egy webes alkalmazástól érkező RADIUS kérésekre vonatkozó beállítások külön adhatók meg. Egyik kliens csoport beállításainál sem kell felkészülni a másik csoporttól érkező kérésekre, mert azok a FreeRADIUS-on belül külön virtuális szerverre vagy site-ra érkeznek, így pl. külön users file használható mindegyik virtuális szerveren, amiben már nem kell a RADIUS kliens IP címe alapján dönteni a küldendő válaszról.
Több access point esetén, ha azok egy IP subnetben vannak, ugyanazt a RADIUS jelszót használják, és az adott IP subnetben nincs ennek a RADIUS szervernek más kliense, egyszerűsíthető a konfiguráció. Ilyenkor a fenti beállításokat nem kell access pointonként megismételni, hanem elegendő subnetenként, a subnet prefixet megadva:
client a.b.c.d/m { secret = <a secret password> shortname = <a name for your wireless AP group> virtual_server = wlan }
Mivel az eduroamban RADIUS kliensként jelennek meg az autentikációs hierarchia fastruktúrájában velünk szomszédos RADIUS szerverek is, azokat is fel kell venni a kliensek közé. Az eduroam RADIUS szomszédoktól érkező kéréseket jellemzően másképp kezeljük, mint a saját WLAN access pointjainktól érkezőket. (Pl. a fa gyökere felől érkező kéréseket soha sem proxyzzuk vissza a fa gyökere felé, míg az access pointoktól érkezőket lehet, hogy a fa gyökere felé küldjük tovább.) Ezért praktikus a RADIUS szomszédokat egy külön virtuális szerverbe tenni.
A fenti példákat folytatva legyen tehát az access pointjaink virtuális szervere a wlan nevű, az eduroam RADIUS szomszédoké pedig az eduroam. Magyaroszági eduroam tagintézményként ezek a szomszédok a hu RADIUS szerverei lesznek:
client 195.111.98.4 { secret = <shared secret with HU radius server> shortname = hu1 virtual_server = eduroam } client 195.111.98.12 { secret = <shared secret with HU radius server> shortname = hu2 virtual_server = eduroam }
EAP mód konfiguráció
Lásd fent, FreeRADIUS 1.x-nél.
Proxy konfiguráció
A proxy.conf fájlban csak a hierarchikus fastruktúrában lévő szomszéd csomópontokba tartozó RADIUS szervereket kell megadnunk, ill. az egyes csoportokon belüli szerverek kezelését. Azt, hogy az egyes RADIUS kérések továbbítása, proxyzása hova történjen, nem itt adjuk meg, hanem majd más beállításoknál hivatkozunk az itt definiált csoportokra.
Magyarországi eduroam tagintézmény esetén jellemzően egy szomszédja van a fában az intézménynek, ez pedig a hu csomópont, amibe a két fent említett RADIUS szerver tartozik. Ezt a szomszédot nevezzük el UP realmnek (a hierarchia teteje irányában lévő szomszédunk)!
A proxy.conf fájlba a következöket kell beírni:
proxy server { default_fallback = no } home_server hu1 { type = auth+acct ipaddr = 195.111.98.4 port = 1812 secret = <shared secret with HU radius server> status_check = none } home_server hu2 { type = auth+acct ipaddr = 195.111.98.12 port = 1812 secret = <shared secret with HU radius server> status_check = none } home_server_pool eduroam_up_pool { type = fail-over home_server = hu1 home_server = hu2 } realm UP { pool = eduroam_up_pool nostrip } realm LOCAL { }