2016. február 25.

Autentikációs rendszerek az fps-nél

10 perc olvasási idő

Autentikációs rendszerek az fps-nél

Az fps-nél a projektek fejlesztéséhez számos különböző nyílt forráskódú rendszert használunk, melyekhez fejlesztői és teszt környezetek kialakítására van szükség. Ezen rendszerekhez biztonságos és személyre szabott hozzáférést kell biztosítani a csapattagok részére, nem csak irodán belülről, hanem akár távolról is.

Gyakorlatban ez azt jeleni, hogy egy munkatárs érkezése vagy távozása mindig biztonsági kockázatot jelent, és számos terhet tud róni az üzemeltetésre, mely szemmel tartja, ki és mihez fér hozzá. Két fontos fogalmat tisztázni kell ebben a témakörben, amit gyakran összekevernek.

Mi is az az autentikáció?

Az autentikáció, más néven hitelesítés, egy olyan folyamat, amely során egy adat vagy entitás bizonyítja a róla állított tulajdonságok valódiságát.

Az autentikációnak 3 típusa van:

  • Tudás – valamilyen egyedi információ van a felhasználónál
  • Tulajdonlás – valamilyen egyedi eszköze van a felhasználónak
  • Tulajdonság – valamilyen egyedi tulajdonsággal bír a felhasználó

Mi is az autorizáció?

ábra az autorizáció folyamatáról

Az autorizáció folyamata eltér az autentikáció folyamatától. Amíg az autentikáció egy adott személy vagy tárgy hitelességének ellenőrzésére szolgál, addig az autorizáció egy engedélyezési folyamat, melynek során a felhasználó engedélyt kap bizonyos feladatok elvégzésére. Tehát az autorizáció feltétele az autentikáció.

Honnan is indult ez az egész az fps-nél?

Eleinte volt egy Linuxos fejlesztői szerver, volt hozzá egy Redmine. Ezt követte néhány ügyfél számára hosting szolgáltatás szerverteremben. Mindezekből kifolyólag újabb szerverek kerültek üzembe helyezésre, az ország több pontján is. Ezzel párhuzamosan több fejlesztést és menedzsmentet segítő szolgáltatás került bevezetésre, melyek szintén megkövetelték a felhasználók megfelelő azonosítását.

A legjelentősebb problémát az okozta, hogy az általunk használt rendszerek és szolgáltatások saját, belső azonosítási rendszert alkalmaztak, mely nagyban megnehezítette a felhasználók kezelését. Legszembetűnőbb példa erre az volt, hogy több felhasználónak is több különböző rendszerhez kellett hozzáférnie, vagy amikor változás állt be a csapattársak létszámában. Ilyen esetekben hosszú időt és a jelszavak többszöri megadását vették igénybe a rendszerek.

Számos kutatás és alternatíva keresést követően egyre inkább körvonalazódott, hogy valamilyen LDAP alapú implementáció lesz a megfelelő megoldás az fps számára, mint egy központosított jelszótároló rendszer, opcionálisan kiegészítve Kerberos alap autentikációval.

Az LDAP (Lightweight Directory Access Protocol) egy fa struktúrában tároló kliens szerver címtár protokol, ahol minden elemet egyértelműen meg lehet határozni a hozzá vezető bejárási útvonal segítségével. A Kerberos egy kifejezetten hálózati hitelesítési protokoll, melynek elsődleges célja egy kliens-szerver modell kialakítása volt, ahol mind a kliens, mind a szerver kölcsönös azonosítást biztosít egymás személyazonosságának megállapítására. A Kerberos működési elvét tekintve egy „jegy-alapú” rendszer, amely a felhasználók és a szolgáltatások azonosítását szolgálja.

LDAP alapú implementációk közül 3 megoldás került tesztelésre:

  • OpenLDAP: az első és eredeti LDAP megvalósítás.
    Nehézkes adminisztráció és telepítés, valamint a nem túl stabil multi-master replikáció miatt nem került bevezetésre
  • 389 Directory Server: Red Hat és Fedora égisze alatt fejlesztett megoldás
    Már könnyebb adminisztrációs lehetőségekkel rendelkezik és multi-master replikációval, viszont nem biztosít egyéb integrált megoldást (pl. Kerberos)
  • FreeIPA: 389 DS-en alapuló integrált megoldás
    integrált megoldás, LDAP és Kerberos megvalósítással

FreeIPA server és kapcsolódásai

Végül a FreeIPA szoftver csomag került bevezetésre a különböző autentikációs megoldásai, illetve a könnyű telepítés és adminisztráció miatt. Ezzel a szoftvercsomaggal az összes fps által használt szolgáltatás jelszókezelését központosítani lehetett 1 dedikált rendszerrel. Modern webes felületen és hagyományos parancssorból is lehet kezelni, a hálózati számítógépek számára DNS szolgáltatást, tanúsítványkezelést biztosít, emellett FreeOTP alkalmazásokon keresztül, a 2 faktoros autentikációt is támogatja.

Az integrálás első lépéseként a Linux szerverek felhasználó-kezelése került migrálásra a rendszerbe, mely ezt követően ssh kapcsolódáskor Kerberos kulcsokkal azonosította a felhasználókat. Ezt követően a második lépcsőben, miután már minden felhasználó adatai elérhetőek voltak LDAP fa struktúrában, a használt webes szolgáltatásokat (Redmine, Gitlab) könnyű volt illeszteni a rendszerhez. Az LDAP protokol miatt, a jövőben is az ezen szabványt támogató rendszerek integrációja könnyen elvégezhető. A megfelelő hozzáférési jogosultságokat egyszerű keresési feltételekkel, vagy a teljes LDAP fa hozzáférésének egy részfára való korlátozásával biztonságosan lehet szabályozni.

Utolsó lépcsőként a hálózati fájlszerver, az irodai Wifi és a VPN szerver került csatlakoztatásra. Fájlszerverre a Samba szoftvercsomagot használja az fps, mely némi várakozást okozott az implementációban. Mind a Samba, mind a FreeIPA csomag esetén meg kellett várni a 4-es stabil kiadás elkészültét, ugyanis ezen verziókat lehet Kerberos protokolon összekapcsolni. Wifi és VPN megoldásoknál egy kiegészítő programra, egy FreeRADIUS szerverre volt szükség, mely egy csomagban biztosítja az autentikációs és autorizációs folyamatokat a Wifi és a VPN szerverek felé.

A jelenlegi rendszer kellően stabilan működik már több mint egy éve. Az implementálás során rendszeresen felbukkanó probléma volt a Linux, Mac OS X és Windows rendszerek közötti működés, mely általában az egyes operációs rendszereken nem megfelelően megvalósított protokollokra, vagy a különböző cégek jelszó biztonsági házirend-beli eltérésekből adódik. Így pl. a Windows-os világ miatt kénytelen vagyok a jelszavakat egy erősebb és gyengébb titkosítási algoritmussal is tárolni, szerencsére a FreeIPA szerver tudja biztosítani a jelszavak ilyen téren történő szinkronizálását.

A központosítás eredményeként jelentősen csökkent a felhasználók adminisztrálására szánt idő, és nullára csökkent a véletlenül rendszerben hagyott felhasználók száma. Ellenben nem szabad figyelmen kívül hagyni azt a nagyon fontos tényt, mely a központosítás ára, hogy a FreeIPA-t futtató szervert nagyon biztonságossá és védetté kell tenni.

Tar Péter

IT Architect. Több mint 10 éve dolgozik üzemeltetési területen, főként Linux szerverek üzemeltetésével. Hobbi szinten kb 10 éve foglalkozik fejlesztéssel. Területei: Linux, webszerverek, biztonság.

Tar Péter

Hozzászólások