2018. március 23., péntek

Kerberos protokoll

Kerberos (/ kɛərbərəs /) egy számítógépes hálózati hitelesítési protokoll, amely egy nem biztonságos hálózaton keresztül teszi lehetővé a csomópontok közötti kommunikációt, hogy biztonságos módon igazolják személyazonosságukat egymás felé.
Tervezőinek elsődleges célja egy kliens-szerver modell volt, amely kölcsönös hitelesítést nyújt mind a kliens, mind a szerver számára, hogy egymás személyazonosságát megállapíthassák. A Kerberos protokoll üzenetei védve vannak a lehallgatások és az ismétlődő támadások ellen (replay attacks). A Kerberos a szimmetrikus kulcsú titkosításon alapszik, amelyhez egy „megbízható harmadik fél” szükséges: opcionálisan, a hitelesítés egyes fázisaiban - az aszimmetrikus kulcsú titkosítást felhasználva - publikus kulcsú titkosítást is választhatunk. A Kerberos a Massachusetts Institute of Technology (MIT) által kiadott és alkalmazott protokoll, amely egy ingyenes szoftvercsomag is egyben. A Kerberos alapértelmezettként a 88-as portot használja.
Kerberos sch en1.png

A Kerberos résztvevő-adatbázis replikálása két kiszolgáló között bonyolult lehet, és egy újabb felhasználó-adatbázist ad a hálózatához. Szerencsére a MIT Kerberos beállítható LDAP címtár használatára résztvevő-adatbázisként. Ez a szakasz bemutatja az elsődleges és másodlagos Kerberos kiszolgáló beállítását OpenLDAP használatára résztvevő-adatbázisként.

OpenLDAP beállítása
Első lépésként a szükséges sémát kell betölteni egy OpenLDAP kiszolgálóra, amely rendelkezik hálózati kapcsolattal az elsődleges és másodlagos KDC-khez. A szakasz további része feltételezi, hogy az LDAP replikáció is be van állítva legalább két kiszolgáló között. Az OpenLDAP beállításával kapcsolatos információkért lásd: „OpenLDAP kiszolgáló”.

Szükség van még az OpenLDAP beállítására TLS és SSL kapcsolatokhoz, a KDC és az LDAP-kiszolgáló közötti forgalom titkosításához. A részletekért lásd: „TLS és SSL”.

A séma LDAP-ba töltéséhez az LDAP-kiszolgálón telepítse a krb5-kdc-ldap csomagot. Adja ki a következő parancsot:

sudo apt-get install krb5-kdc-ldap
Ezután bontsa ki a kerberos.schema.gz fájlt:

sudo gzip -d /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
sudo cp /usr/share/doc/krb5-kdc-ldap/kerberos.schema /etc/ldap/schema/
A kerberos sémát fel kell venni a cn=config fába. Az új séma slapd-be való felvételének módját a „További beállítások” szakasz ismerteti.

Első lépésként hozzon létre egy schema_convert.conf vagy hasonló beszédes nevű konfigurációs fájlt, a következő tartalommal:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/kerberos.schema
Hozzon létre egy ideiglenes könyvtárat az LDIF-fájlok tárolásához:

mkdir /tmp/ldif_output
Most az slapcat használatával konvertálja a sémafájlokat:

slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}kerberos,cn=schema,cn=config" > /tmp/cn=kerberos.ldif
Módosítsa a fenti fájl- és útvonalneveket a sajátjainak megfelelően.

Szerkessze a kapott /tmp/cn\=kerberos.ldif fájlt, és módosítsa a következő attribútumokat:

dn: cn=kerberos,cn=schema,cn=config
...
cn: kerberos
Távolítsa el a következő sorokat a fájl végéről:

structuralObjectClass: olcSchemaConfig
entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc
creatorsName: cn=config
createTimestamp: 20090111203515Z
entryCSN: 20090111203515.326445Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20090111203515Z
[Megjegyzés]
Az attribútumértékek eltérők lesznek, győződjön meg róla, hogy eltávolította az attribútumokat.

Töltse be az új sémát az ldapadd használatával:

ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=kerberos.ldif
Vegyen fel indexet a krb5principalname attribútumhoz:

ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password:
dn: olcDatabase={1}hdb,cn=config
add: olcDbIndex
olcDbIndex: krbPrincipalName eq,pres,sub

modifying entry "olcDatabase={1}hdb,cn=config"
Végül frissítse a hozzáférés-vezérlési listákat (ACL):

ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password: 
dn: olcDatabase={1}hdb,cn=config
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey by dn="cn=admin,dc=példa
,dc=hu" write by anonymous auth by self write by * none
-
add: olcAccess
olcAccess: to dn.base="" by * read
-
add: olcAccess
olcAccess: to * by dn="cn=admin,dc=példa,dc=hu" write by * read

modifying entry "olcDatabase={1}hdb,cn=config"

Ennyi az egész, az LDAP-címtár ezzel készen áll a Kerberos résztvevő-adatbázisként való használatra

Nincsenek megjegyzések:

Megjegyzés küldése