2012. június 15., péntek

Kerberos LDAP backend-del Ubuntu 12.04-en - negyedik rész

Múltkor megbeszéltük, hogy mi minden kell ahhoz, hogy az OpenLDAP backenddel bíró Kerberos menjen a szerveren. Ma klienst telepítünk mellé.
(You can read this post in English too.)
Lépjünk be a kliensre, és telepítgessünk:
sudo apt-get install libpam-krb5
Két kérdésre számíthatunk:
Default Kerberos version 5 realm: ITTHON.CUCC
Add locations of default Kerberos servers to /etc/krb5.conf? No
Ha megpróbálunk bejelentkezni a kliensre, akkor azt látjuk, hogy a Kerberos nem fog beengedni (lehet, hogy az LDAP igen, ha a megadott jelszó oda érvényes). Ha a névszerverünk loggolja a kérdéseket, akkor ilyet látunk benne:
query: _kerberos._udp.ITTHON.CUCC IN SRV + (192.168.56.101)
query: _kerberos._tcp.ITTHON.CUCC IN SRV + (192.168.56.101)
Akkor állítsuk ezeket be a zónafájlunkban, figyelve minden pontra.
_kerberos._udp          SRV 0 0 88      ubuserver
_kerberos._tcp          SRV 0 0 88      ubuserver
Aztán:
sudo service bind9 restart
(reload nem jó).
A szerveren és a kliensen is adjuk ki a
host -t srv _kerberos._udp.itthon.cucc
host -t srv _kerberos._tcp.itthon.cucc
host -t srv _kerberos._udp
host -t srv _kerberos._tcp
parancsokat. Amíg ez nem megy, ne lépjünk tovább.
Aztán a kliensen, figyelve a /var/log/auth.log fájlt, jelentkezzünk be olyan felhasználóval, akinek van kerberos principalja. Az auth.log-ban figyelünk oda, hogy biztosan a kerberos engedje be, ne az LDAP. Ilyet keressünk:
ubuclient login[899]: pam_krb5(login:auth): user bela authenticated as bela@ITTHON.CUCC
Ha megy, akkor telepítsük a krb5-user csomagot:
sudo apt-get install krb5-user
és próbáljuk ki a klist parancsot a frissen bejelentkezett felhasználóval.
Még egy próba: jelentkezzünk be helyi felhasználóval, és adjunk ki kinit parancsot olyan principalra, ami létezik. Mennie kell.
Most próbáljunk jelszót változtatni a passwd paranccsal. Kéri a jelenlegi Kerberos jelszót, majd az újat kétszer, majd sír, hogy cannot resolve servers for KDC in realm "ITTHON.CUCC"
A bind logjában figyelve, hogy mi mindent kérdez a drága kliens, szép lassan bővül zónafájl:
ubuserver               A       192.168.56.101
_kerberos._udp          SRV     0 0 88 ubuserver
_kerberos._tcp          SRV     0 0 88 ubuserver
_kerberos-master._udp   SRV     0 0 88 ubuserver
_kerberos-master._tcp   SRV     0 0 88 ubuserver
_kpasswd._udp           SRV     0 0 88 ubuserver
Mikor ide jutunk, a passwd kiadása után nagy szünet jön, és egy megváltozott hibaüzenet: Cannot contact for any KDC in requested domain. A hosszú szünet azt sugallja, hogy valami időtúllépés volt. Kicsit körülnézve az interneten a _kpasswd._udp.itthon.cucc lehet, hogy nem a 88-as porton hallgatózik? Végrehajtva továbbá két portscan-t is (vastaggal a lényeg, nincs tűzfal a szerveren):
nmap ubuserver.itthon.cucc
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-25 21:21 CEST
Nmap scan report for ubuserver.itthon.cucc (192.168.56.101)
Host is up (0.00096s latency).
Not shown: 995 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
53/tcp  open  domain
389/tcp open  ldap
464/tcp open  kpasswd5
749/tcp open  kerberos-adm
és
sudo nmap -sU ubuserver.itthon.cucc
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-25 21:22 CEST
Nmap scan report for ubuserver.itthon.cucc (192.168.56.101)
Host is up (0.000025s latency).
Not shown: 995 closed ports
PORT    STATE         SERVICE
53/udp  open          domain
67/udp  open|filtered dhcps
88/udp  open|filtered kerberos-sec
123/udp open          ntp
464/udp open|filtered kpasswd5
Akkor írjuk át a _kpasswd._udp sorát a zónafájlban:
_kpasswd._udp           SRV     0 0 464 ubuserver
És láss csodát: a jelszóváltoztatás megy a kliensről.

A következő feladat, hogy létrehozunk egy adminisztratív principalt - ne kelljen mindig a sudo kdamin.local-t használni. A Kerberos-ban hagyományosan azok az adminisztratív principalok, amelyek /admin végűek. Indítsuk el a kadmin.local-t, és adjuk ki az
addprinc kerbadmin/admin
parancsot. A létrejött prinicpalnak még semmilyen előjoga nincs, egyelőre csak a neve fura. Az előjogok egy ACL (Access Control List) fájlban vannak. De melyik ez a fájl? Így derítjük ki:
sudo cat /etc/krb5kdc/kdc.conf|grep acl_file
Szóva szerkesztjük az /etc/krb5kdc/kadm5.acl fájlt. Egyetlen sor megy bele:
*/admin *
Azaz "minden /admin végű principal csinálhat bármit." Juttassuk érvényre ezt a fontos változást:
sudo service krb5-admin-server restart
Adjuk ki az alábbi (vastaggal szedett) parancsot! A kadmin program esetében igen jól látható az, amiről az első Kerberos-os posztomban írtam, hogy nagyon lassan "áll be" a Kerberos indulás után. Az admin-server (újra)indulása után hosszú percek telhetnek el, mire ez a hibaüzenet megszűnik:
kadmin -p kerbadmin/admin
Authenticating as principal kerbadmin/admin with password.
Password for kerbadmin/admin@ITTHON.CUCC:
kadmin: GSS-API (or Kerberos) error while initializing kadmin interface
Ha végre elindul, utána nem szokott gond lenni. Na, akkor garázdálkodjunk (szigorúan csak tesztcélokkal:))
kadmin -p kerbadmin/admin
Authenticating as principal kerbadmin/admin with password.
Password for kerbadmin/admin@ITTHON.CUCC:
kadmin:  change_password bela
Enter password for principal "bela@ITTHON.CUCC":
Re-enter password for principal "bela@ITTHON.CUCC":
Password for "bela@ITTHON.CUCC" changed.
Akkor a kadmin már megy a szerverünkön.

Lássuk a klienst:
kadmin -p kerbadmin/admin
Authenticating as principal kerbadmin/admin with password.
kadmin: Missing parameters in krb5.conf required for kadmin client while initializing kadmin interface
Hát akkor nézzük meg, hogy mi kell abba a drága /etc/krb5.conf fájlba:
  • ez teljes fájl, a bemásolása valamiért néha "kadmin: Improper format of Kerberos configuration file while initializing krb5 library", de kézzel beírva tutira jó
  • az első sikeres kadmin kiadásáig hagyjuk nyitva a szerkesztőablakot, mert ha rossz a fájl, akkor néha a sudo segmentation faultokat dob, és akkor aztán baj van

[libdefaults]
        default_realm = ITTHON.CUCC

[realms]
        ITTHON.CUCC = {
                admin_server = ubuserver.itthon.cucc
        }
Próbáljuk ki a fenti kadmin-parancsot. ha megy, akkor oké.

Legközelebb használatba vesszük az smbkrb5pwd overlay-t.


Irodalom:

.





Nincsenek megjegyzések: