250 likes | 486 Views
RADIUS. Mika Korkalainen. Remote Authentication Dial In User Service (RADIUS). Kehitetty Livingston-yhtiössä, erään asiakkaan toivomuksesta. Alkuperäinen käyttökohde sisäänsoittopalveluissa. RFC:t 2865, 2866, 2867, 2868, 2869, 2619, 2621, 1227. RADIUS. RFC-määritysten mukaan RADIUS:
E N D
RADIUS Mika Korkalainen
Remote Authentication Dial In User Service (RADIUS) • Kehitetty Livingston-yhtiössä, erään asiakkaan toivomuksesta. • Alkuperäinen käyttökohde sisäänsoittopalveluissa. • RFC:t 2865, 2866, 2867, 2868, 2869, 2619, 2621, 1227
RADIUS • RFC-määritysten mukaan RADIUS: • On UDP-protokollaa käyttävä yhteydetön protokolla • Käyttää hop-by-hop turvallisuusmallia • On tilaton • Tukee CHAP- ja PAP – protokollia • Käyttää MD5-hash algoritmia salasanan suojaukseen • Tukee AAA-mallia
Rajoitteet • Proxy-RADIUS-servereiden turvallisuuteen liittyviä puutteita. • Valtuutuksen jälkeen ei voida katkaista tai kieltää yhteyttä vaikka palvelu ei joissain tapauksissa olisikaan päällä. • Tilattomuus. RADIUS-protokolla ei pidä yllä tietoja edellisistä yhteyksistä. • Skaalautuvuusongelmia.
AAA • Accounting, Authorization, Accouting eli tunnistus, valtuutus ja tilastointi • Palvelut koostuvat kolmesta komponentista: • Asiakas • Liityntäpiste • AAA-palvelin
AAA • Autentikointi • Tunnistetaan käyttäjä • Tunnetuin menetelmä käyttäjätunnus ja salasana yhdistelmä • Valtuutus • Valtuutuksella annetaan käyttäjälle lupa käyttää tiettyjä palveluja. • Tilastointi • Tilastoinnilla pidetään kirjaa siitä mitä palveluja käyttäjä on käyttänyt yhteyden aikana.
RADIUS-protokollan toiminta • RADIUS-protokolla käyttää UDP-protokollaa viestien välittämiseen asiakkaalta palvelimelle.
RADIUS-protokollan toiminta • Tyyppi • Viestin tyyppinä voi olla mm. Access-Request, Access-Accept, Access-Reject ja Access-Challenge. • Tunnistekenttä • Tunnistetaan toisiinsa liittyvät paketit. • Arvona on satunnaisluku, jota käytetään palvelimen vastausten tunnistamiseen ja salasanojen salaamiseen. • Attribuutit • Kentällä ei ole kiinteää pituutta ja se voi sisältää pyyntöön liittyviä tietoja.
RADIUS-protokollan toiminta • Tunnistetieto • Tunnistetietokentän tietoja käytetään kahdessa tapauksessa. • Access-Request-viesteissä sitä pidetään pyynnön tunnistetietokenttänä, muissa vastauksen tunnistetietokenttänä.
RADIUS-protokollan toiminta • Käyttäjän kirjautuessa järjestelmään, liityntäpiste lähettää Access-Request-viestin palvelimelle. • Access-Request- viesti sisältää mm. käyttäjätunnuksen ja salasanan. • RADIUS-palvelin tarkistaa liityntäpisteen tiedot ja jos tiedot täsmäävät, pyyntö käsitellään.
RADIUS-protokollan toiminta • Ensimmäiseksi tarkistetaan tietokannasta käyttäjätunnusta vastaavat tiedot. • Tietokannasta löytyviin tietoihin on aina liitetty vaatimuksia, jotka käyttäjän on kyettävä täyttämään. • Aina salasana • Muitakin voi olla esim. porttinumero • Jos ehdot täyttyvät, palvelin voi joko hyväksyä yhteyden tai lähettää Access-Challenge-viestin.
RADIUS-protokollan toiminta • Access-Challenge-viesti lähetetään haaste/vastaus-tunnistamismenetelmässä. • Käyttäjälle lähetetään ennalta määräämätön satunnaisluku ja käyttäjä ”haastetaan” salaamaan se ja lähettämään takaisin. • Salatusta luvusta lasketaan tarkistussumma ja jos se täsmää, käyttäjä autentikoidaan. • Jos autentikoinnin jälkeen muutkin tiedot täsmäävät, käyttäjälle lähetetään Access-Accept-viesti.
RADIUS-protokollan toiminta • Jaetut Salaisuudet (Shared Secrets) • RADIUS käyttää turvallisuuden parantamiseen jaettuja salaisuuksia. • Jaettuja salaisuuksia käytetään kaikessa toiminnassa, jossa käsitellään piilotettua dataa tai kätkettyjä arvoja. • Jokaiselle asiakas-palvelin-parille on oma jaettu salaisuus.
FreeRADIUS • RADIUS-palvelin, joka on FreeRADIUS-sivuston mukaan maailmalla viiden eniten käytetyn RADIUS-palvelimen joukossa. • Skaalautuu pienistä sisäisistä järjestelmistä suuriin, miljoonien käyttäjien järjestelmiin. ??? • Valittiin, koska FreeRADIUS on yleinen ja siitä löytyi hyvin tietoja ja ohjeita.
Asennus • Tar.gz-paketti www.freeradius.org sivuilta. • tar –zxvf freeradius-1.0.2.tar.gz • Kääntäminen • ./configure –localstatedir=/var –sysconfig=/etc • –localstatedir=/var ja sysconfig=/etc ohjaavat kääntäjän käyttämään kyseisiä sijainteja automaattisesti. • make • make install
Konfigurointi • Aluksi yksinkertainen konfiguraation, jolla testattiin toiminta • Kaikki konfiguroitavat tiedostot ovat hakemistossa /etc/raddb. • Konfiguroitavat tiedostot: • clients.conf • radiusd.conf
clients.conf • Sisältää tiedot asiakkaista jotka ovat valtuutettuja ottamaan yhteyden FreeRADIUS-palvelimelle. • clients.conf-tiedostossa on jo valmiiksi joitain esimerkkiasiakkaita, kuten localhost ja joitain DEFAULT-määrityksiä.
radiusd.conf • Tiedosto sisältää lähes kaikki RADIUS-palvelimen perustoimintoihin liittyvät optiot ja toimintaohjeet. • RADIUS-palvelimen keskeisin konfigurointi-tiedosto ja muistuttaa Apachen httpd.conf-tiedostoa. • Tiedostossa on oletuksena kommentoitu pois käytöstä järjestelmän salasanojen sijainnit. FreeRADIUS tarvitsee näitä tiedostoja käynnistyksessä joten otettiin ne käyttöön poistamalla kommentointi kohdista: • passwd = etc/passwd • shadow = etc/shadow • group = etc/group
Testaus • Käynnistetään RADIUS-palvelin • radiusd • Palvelimen toiminta testattiin radtest-ohjelmalla • radtest root 6218lahiverkot localhost 0 6218lahiverkot, missä • root – käyttäjätunnus, • 6218lahiverkot – salasana, • localhost – testiä varten määritetty asiakas ja • 6218lahiverkot – jaettu salaisuus. • Vastauksena Access-Accept • Testattiin myös NTRadPing-ohjelmalla.
Muita konfiguroitavia tiedostoja • users • tiedostossa on kaikki tunnistukseen liittyvät turvallisuustiedot jokaiselle järjestelmään liittyvälle asiakkaalle. • jokaisella asiakkaalla on oma osio, jossa määritellään käyttäjänimi, tunnistukseen liittyviä muuttujia, kuten salasana ja porttinumero.
Muita konfiguroitavia tiedostoja • hints • tiedosto sisältää tiedot kuinka FreeRADIUS palvelee asiakasta käyttäjänimen perusteella. Jos esimerkiksi käyttäjänimi on user ja asiakas on määritetty käyttämään rlogin-yhteyttä voi käyttäjä kirjautua sisään esimerkiksi käyttäjänimellä Puser ja saada PPP-yhteyden. • huntgroups • tiedostossa on erilaisia joukkoja, jotka sisältävät tiedot eri porteista tai muista asiakkaan kommunikointikanavista. • Jos käyttäjällä on salasana johonkin huntgoupiin, hän voi saada esimerkiksi kiinteän IP-osoitteen.
WLAN-asiakkaiden tunnistaminen • Työn eräänä tavoitteena oli saada WLAN-käyttäjät tunnistettua RADIUS-palvelimen kautta. • Työpajan tukiasema ei kuitenkaan tue tällaista ominaisuutta, joten testattiin vain kuinka tukiasema keskustelee palvelimen kanssa.
RadiusTest • Tehtiin lisäksi muutama yksinkertainen testi RadiusTest-ohjelmalla. • Ohjelmalla saadaan lähetettyä erilaisia viestejä erilaisilla sisällöillä palvelimelle.
Ylläpito ja seuranta • RADIUS-palvelimille on kehitetty erilaisia työkaluja ylläpitoa ja seurantaa varten. • FreeRADIUS-ohjelman mukana tulee dialupadmin, jolla pystytään hallitsemaan palvelinta graafisen käyttöliittymän kautta. • Lisäksi on joitakin muita suositeltuja ohjelmia ja tietenkin palvelimen omat loki-tiedostot
Lähteet • www.freeradius.org • Hassell, J. 2002. RADIUS. O’Reilly & Associates.