Differences between revisions 15 and 17 (spanning 2 versions)
Revision 15 as of 2013-01-03 02:31:21
Size: 26849
Editor: AndrasJako
Comment:
Revision 17 as of 2013-01-03 02:58:31
Size: 28627
Editor: AndrasJako
Comment:
Deletions are marked like this. Additions are marked like this.
Line 666: Line 666:
Ez utóbbi négy detail példány használható a naplózáshoz, a FreeRADIUS alapbeállításának koncepciója szerint mindegyik az authentikációs
folyamat más-más pontján naplózza a RADIUS csomagokat, mind külön file-okba.
Ez utóbbi négy detail példány használható az authentikáció naplózásához, a FreeRADIUS alapbeállításának koncepciója szerint mindegyik az authentikációs
folyamat más-más pontján naplózza a RADIUS csomagokat, és mind külön file-okba.

A RADIUS serverünkhöz beérkező auth csomagot a kérdéses virtuális server {{{authorize}}} szekciójában meghívott {{{auth_log}}} példány
naplózza. Ha ezt a csomagot továbbküldjük az eduroam RADIUS hierarchiában egy másik RADIUS servernek, akkor a kiküldött csomagot a
{{{pre-proxy}}} szekciójába felvett {{{pre_proxy_log}}} példány hívása naplózza. A szomszéd RADIUS servertől érkező választ ezután a
{{{post-proxy}}} szekció {{{post_proxy_log}}} hívása rögzíti. Végül a serverünk által az eredeti kérésre kimenő választ a {{{post-auth}}}
szekció {{{reply_log}}} hívása rögzíti.

Tipikus intézményi RADIUS esetén
 * a helyi WLAN access pointokat kiszolgáló virtuális serveren mind a négy detail példányt érdemes beállítani,
 * az {{{inner-tunnel}}} virtuális serveren a két {{{...-proxy}}} példány nem szükséges (hiszen innen nincs továbbküldés), csak az első és az utolsó,
 * a szomszédos RADIUS-ok kéréseit kiszolgáló virtuális serveren pedig szintén mind a négy példányt jó meghívni.

Az authentikációs kéréseket az {{{auth_log}}} és a {{{pre-proxy}}} naplózza, ezekben a csomagokban lehetnek jelszavak is, amit a naplókból
ki kell hagyni a kérdéses példányokon a következő beállítással:
{{{
detail auth_log {
        ...
        suppress {
                 User-Password
        }
}
detail pre_proxy_log {
        ...
        suppress {
                 User-Password
        }
}
}}}

Praktikus ezeken túl mind a négy detail példány {{{suppress}}} szekciójában megadni az {{{EAP-Message}}} mezőt is, hogy ez a hexadecimálisan
megjelenített TLS-kódolású adatsor se szerepeljen feleslegesen a naplókban.

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.

Authentikáció konfigurálása

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 {
}

FreeRADIUS virtuális szerverek

Az egyszerűség kedvéért ebben a példában text file felhasználói adatbázist használunk. Először elkészítjük a valós felhasználóink adatbázisát, majd ebből a virtuális szerverek által használt felhasználói adatbázisokat, és végül magukat a virtuális szervereket.

A valós felhasználóinkat tartalmazó wlan-user-list nevű file:

user1@staff.egyetem.hu        Cleartext-Password := "jelszo1"
        Fall-Through = No

user2@staff.egyetem.hu        Cleartext-Password := "jelszo2"
        Fall-Through = No

user3@student.egyetem.hu      Cleartext-Password := "jelszo3"
        Fall-Through = No

A wlan nevű virtuális szerver (amit a saját access pointjaink használnak) felhasználói adatbázisa egyezzen meg a valós felhasználók adatbázisával! Ezt tegyük a users-wlan file-ba:

$INCLUDE /usr/local/etc/raddb/wlan-user-list

Az eduroam nevű virtuális szerver (amit a hierarchiában velünk szomszédos RADIUS szerverek használnak) felhasználói adatbázisába pedig szintén tegyük bele a saját felhasználóinkat, és egy teszt felhasználót, amivel a RADIUS kapcsolatot ellenőrizni lehet! Ez kerüljön a users-eduroam file-ba:

#teszt uesr for debugging
debug@egyetem.hu   Cleartext-Password := "titkosjelszo"
        Reply-Message = "Hello, %u, debug usage only!",
        Fall-Through = no

$INCLUDE /usr/local/etc/raddb/wlan-user-list

Ezzel megvan a két szöveges RADIUS felhasználói adatbázisunk. A hagyományos users file helyett az eduroam virtuális szerver a users-eduroam, a wlan nevű virtuális szerver pedig a users-wlan nevű felhasználói adatbázist fogja használni. Hogy ezekre hivatkozni tudjunk a megfelelő virtuális szerverekben, fel kell vennünk őket a FreeRADIUS szöveges felhasználói adatbázisai közé, a modules/files nevű file-ba:

...

files {
        ...
        usersfile = ${confdir}/users
        ...
}

...

files files-wlan {
        usersfile = ${confdir}/users-wlan
        acctusersfile = ${confdir}/acct_users
        preproxy_usersfile = ${confdir}/preproxy_users
        compat = no
}

files files-eduroam {
        usersfile = ${confdir}/users-eduroam
        acctusersfile = ${confdir}/acct_users
        preproxy_usersfile = ${confdir}/preproxy_users
        compat = no
}

...

Ezáltal a files kulcsszó helyett alkalmazható lesz a konfigurációban a files-wlan ill. a files-eduroam, ami users file helyett a users-wlan ill. a users-eduroam szöveges adatbázist fogja használni.

Magát a virtuális szervert a raddb/sites-available könyvtárban a default file alapján hozhatunk létre. Készítsünk belőle itt egy másolatot a virtuális szerver nevén, és tegyük a teljes tartalmát server <név> alá! A használatba vételhez az új állományt a raddb/sites-enabled könyvtárba kell tenni, praktikusan egy szimbolikus link készítésével.

A wlan virtuális szerver a defaulttól két lényeges dologban tér el:

  • a users-eduroam felhasználói adatbázist használja
  • a más intézményhez tartozó felhasználók kéréseit a hierarchiában felfele továbbítja

Ez utóbbi, proxy funkció az authorize szakaszban nagyon egyszerűen megvalósítható egy unlang scripttel, ami a FreeRADIUS belső Proxy-To-Realm attribútumát teszi rá a kérésre, ezzel irányítva azt tovább a proxy.conf file-ban definiált UP realmhez.

A raddb/sites-available/wlan a fentieknek megfelelően így néz ki:

server wlan {
        authorize {
                ...

                if( User-Name =~ /\@/ ) {
                  if( User-Name !~ /[\@\.]egyetem.hu$/ ) {
                    update control {
                      Proxy-To-Realm := UP
                    }
                  }
                }

                files-wlan
                ...
        }
        authenticate {
                ...
        }
        preacct {
                ...
                files-wlan
        }
        accounting {
                ...
        }
        session {
                ...
        }
        post-auth {
                ...
        }
        pre-proxy {
                ...
        }
        post-proxy {
                ...
        }
}

A raddb/sites-available/eduroam hasonló, de itt egyrészt nincs proxyzás (hiszen az intézményünk a fastruktúra levele, azaz nem jöhet szomszédos RADIUS szervertől olyan kérés, amit továbbítanunk kellene), másrészt a teszt felhasználót is tartalmazó users-eduroam felhasználói adatbázist kell használni:

server eduroam {
        authorize {
                ...
                files-eduroam
                ...
        }
        authenticate {
                ...
        }
        preacct {
                ...
                files-eduroam
        }
        accounting {
                ...
        }
        session {
                ...
        }
        post-auth {
                ...
        }
        pre-proxy {
                ...
        }
        post-proxy {
                ...
        }
}

Naplózás konfigurálása

Authentikáció egyszerű naplózása

Első lépésként a radiusd.conf-ban kell beállítani az authentikáció naplózását:

log {
        destination = files
        file = ${logdir}/radius.niif.log
        stripped_names = no
        auth = yes
        auth_badpass = no
        auth_goodpass = no
}

Sikeres bejelentkezések

Ez sikeres authentikációkor pl. EAP-TTLS/PAP használata esetén a következő naplóbejegyzéseket generálja:

<idő> : Auth: Login OK: [felhasznalo@egyetem.hu] (from client <client-short-name> port 0 via TLS tunnel)
<idő> : Auth: Login OK: [anonymous@egyetem.hu] (from client <client-short-name> port 0 cli <client-MAC>)

<idő> : Auth: Login OK: [felhasznalo@egyetem.hu] (from client <client-short-name> port 0 via TLS tunnel)
<idő> : Auth: Login OK: [anonymous@niif.hu] (from client <client-short-name> port 0 cli <client-MAC>)

A fenti első két bejegyzés az intézmény felhasználójának otthoni hálózatában történő csatlakozásakor keletkezik, ezekben a <client-short-name> tehát a clients.conf-ban a helyi WLAN access pointnál megadott shortname. A második két bejegyzés az intézmény felhasználójának más intézményben történő sikeres bejelentkezése esetén keletkezik, ilyenkor a <client-short-name> a fenti példa beállításokat használva hu1 vagy hu2.

Vendég felhasználó sikeres bejelentkezésekor csak egy naplóbejegyzés készül, a külső azonosítóval, hiszen a belső azonosító a vendéglátó intézményben nem látszik.

<idő> : Auth: Login OK: [anonymous@masikintezmeny.hu] (from client <client-short-name> port 0 cli <client-MAC>)

Sikeres bejelentkezések

Sikertelen bejelentekzési kísérletkor több lehetőség van.

Ha az intézmény felhasználója a saját intézményében próbálkozik sikertelenül, akkor a sikereshez hasonlóan két naplóbejegyzés is keletkezhet, és a bejegyzés from client utáni azonosítójából látható, hogy helyben történt a próbálkozás:

<idő> : Auth: Login incorrect (rlm_pap: CLEAR TEXT password check failed): [felhasznalo@egyetem.hu] (from client wlan-ap port 0 via TLS tunnel)
<idő> : Auth: Login incorrect: [anonymous@egyetem.hu] (from client wlan-ap port 0 cli <client-MAC>)

Ha az intézmény felhasználója másik intézményben próbál bejelentkezni sikertelenül, de a külső azonosító megfelelő és az eduroam RADIUS proxyk jól működnek, akkor a fentihez hasonló bejegyzések keletkeznek (természetesen más from client résszel).

Ha az intézmény felhasználója másik intézményben sikertelenül próbál belépni, és a külső azonosító nem megfelelő, vagy a RADIUS proxy hierarchiában van probléma, akkor erről nem keletkezik naplóbejegyzés, hiszen az authentikációs kérés nem is jut el a saját intézményig.

Ha vendég felhasználó próbál sikertelenül bejelentkezni, és a kérést a saját intézménye (vagy út közben egy másik RADIUS) utasítja el, akkor az alábbi formájú naplóbejegyzés keletkezik:

<idő> : Auth: Login incorrect (Home Server says so): [anonymous@masikintezmeny.hu] (from client wlan-ap port 0 cli <client-MAC>)

Ha pedig a vendég felhasználó az otthoni RADIUS hibája, elérhetetlensége, vagy egy útba eső RADIUS proxy elérhetetlensége miatt nem tud bejelentkezni, akkor egy másik fajta hibaüzenet utal erre (az újraküldések miatt várhatóan néhány példányban, különböző azonosítókkal):

<idő> : Error: No response to status check <id> for home server <IP-address> port <UDP-port>

Authentikáció részletes naplózása

Az előző fejezetben leírtnál részletesebb naplózás a FreeRADIUS detail moduljával lehetséges. Ez a modul a RADIUS csomagok dekódolt formáját rögzíti ASCII állományokba. A standard FreeRADIUS beállítások közt szerepel az alap detail modul (modules/detail), ami a RADIUS accounting csomagok kiírására van beállítva. Az authentikációs csomagok rögzítésére a detail modul auth_log, pre_proxy_log, post_proxy_log, valamint reply_log példányai vannak beállítva (mind a modules/detail.log file-ban). Ez utóbbi négy detail példány használható az authentikáció naplózásához, a FreeRADIUS alapbeállításának koncepciója szerint mindegyik az authentikációs folyamat más-más pontján naplózza a RADIUS csomagokat, és mind külön file-okba.

A RADIUS serverünkhöz beérkező auth csomagot a kérdéses virtuális server authorize szekciójában meghívott auth_log példány naplózza. Ha ezt a csomagot továbbküldjük az eduroam RADIUS hierarchiában egy másik RADIUS servernek, akkor a kiküldött csomagot a pre-proxy szekciójába felvett pre_proxy_log példány hívása naplózza. A szomszéd RADIUS servertől érkező választ ezután a post-proxy szekció post_proxy_log hívása rögzíti. Végül a serverünk által az eredeti kérésre kimenő választ a post-auth szekció reply_log hívása rögzíti.

Tipikus intézményi RADIUS esetén

  • a helyi WLAN access pointokat kiszolgáló virtuális serveren mind a négy detail példányt érdemes beállítani,
  • az inner-tunnel virtuális serveren a két ...-proxy példány nem szükséges (hiszen innen nincs továbbküldés), csak az első és az utolsó,

  • a szomszédos RADIUS-ok kéréseit kiszolgáló virtuális serveren pedig szintén mind a négy példányt jó meghívni.

Az authentikációs kéréseket az auth_log és a pre-proxy naplózza, ezekben a csomagokban lehetnek jelszavak is, amit a naplókból ki kell hagyni a kérdéses példányokon a következő beállítással:

detail auth_log {
        ...
        suppress {
                 User-Password
        }
}
detail pre_proxy_log {
        ...
        suppress {
                 User-Password
        }
}

Praktikus ezeken túl mind a négy detail példány suppress szekciójában megadni az EAP-Message mezőt is, hogy ez a hexadecimálisan megjelenített TLS-kódolású adatsor se szerepeljen feleslegesen a naplókban.

Campus6: Wireless_Eduroam_FreeRadius (last edited 2013-01-03 02:58:31 by AndrasJako)