Hálózati adminisztráció Linux (Ubuntu 8.04) 12. gyakorlat Johanyák Zsolt Csaba 1 A gyakorlat célja az, hogy a hallgató tapasztalatokat szerezzen az OpenLDAP szerver telepítésében és konfigurálásában. A gyakorlat végrehajtásához rendszergazdai jogosultság szükséges, ezért első parancsunk: $sudo su A gyakorlat során a gyakorlat.hu DNS tartományban feltételkezzük a gépünket, és az LDAP adatbázis gyökerét is ennek megfelelően állítjuk majd be. a későbbi hibák elkerülése érdekében ellenőrizzük le a Hálózati beállításoknál (ill. /etc/resolv.conf állományban) azt, hogy a keresési tartománynak gyakorlat.hu van-e megadva. 1. LDAP szerver telepítése #apt-get install slapd ldap-utils db4.2-util A telepítés során a rendszer rákérdez a rendszergazdai jelszóra: Admin password: Bár ez éles rendszerek esetén kifejezetten nem javallott, a gyakorlat során használjuk a Linux rendszergazdai jelszót itt is. A jelszó az LDAP adatbázisba kerül, amelynek helye: /var/lib/ldap könyvtár. a későbbiekben ehelyett a konfigurációs állományban fogjuk tárolni titkosítottan az admin (rendszergazda) jelszavát. Ennek érdekében először készítsünk egy titkosított jelszót: # slappasswd New password: Re-enter new password: {SSHA}J0uUYpT6SKPz7kHxOjJnt/21N8swGCOg Másoljuk a vágólapra az utolsó sort, majd nyissuk meg a konfigurációs állományt: #gedit /etc/ldap/slapd.conf Néhány módosítást/beállítást hajtunk végre az első adatbázisra vonatkozó részben, azaz abban a részben ami így kezdődik: ####################################################################### # Specific Directives for database #1, of type bdb: # Database specific directives apply to this databasse until another # 'database' directive occurs 1 http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu 1
Figyelem! Az alábbi beállítások egy része eleve a kofigurációs állományban van, ezért első lépésként győződjünk meg arról, hogy kell-e módosítani, és ha igen, akkor mit. Csak ezután kezdjünk el gépelgetni. # Beállítjuk az LDAP fa gyökerét suffix "dc=gyakorlat,dc=hu" # Megnevezzük a rendszergazdát rootdn "cn=admin,dc=gyakorlat,dc=hu" # Megadjuk a rendszerdai jelszót rootpw {SSHA}J0uUYpT6SKPz7kHxOjJnt/21N8swGCOg # Szabályozzuk a felhasználók hozzáférését az LDAP bejegyzésekhez access to attrs=userpassword,shadowlastchange by dn="cn=admin,dc=gyakorlat,dc=hu" write by anonymous auth by self write by * none access to * by dn="cn=admin,dc=gyakorlat,dc=hu" write by * read Mentsük el a konfigurációs állományt, majd töröljük ki az automatikusan generált adatbázist. #rm -rf /var/lib/ldap/* Állítsuk le az LDAP kiszolgálót: #/etc/init.d/slapd stop 2. Felhasználók importálása Következő lépésként importálni szeretnénk a Linux rendszer felhasználóit, csoportjait és a hosts listát. Ehhez telepítjük a migrationtools csomagot: #apt-get install migrationtools Az importálást a csomag Perlben megírt szkriptjeivel fogjuk végrehajani. Meghívásuk előtt a konfigurációs állomány beállítása szükséges. #gedit /usr/share/migrationtools/migrate_common.ph Ellenőrizzük az alábbi beállítások meglétét, illetve végezzük el a szükséges módosításokat: $DEFAULT_MAIL_DOMAIN = "gyakorlat.hu"; $DEFAULT_BASE = "dc=gyakorlat,dc=hu"; $IGNORE_UID_BELOW = 1000; $IGNORE_GID_BELOW = 100; $IGNORE_UID_ABOVE = 9999; $IGNORE_GID_ABOVE = 9999; 2
Mentsük el a konfigurációs állományt, majd állítsuk be az ETC_SHADOW környezeti változót: #export ETC_SHADOW=/etc/shadow Lépjünk át a migrationtools csomag könyvtárába #cd /usr/share/migrationtools A Linuxos beállításokat először LDIF formátumú szöveges állományokba mentjük, majd ezt követően töltjük be az adatbázisba. A mentés a következő Perl szkript hívásokkal történik: #./migrate_base.pl > /etc/ldap/base.ldif #./migrate_passwd.pl /etc/passwd /etc/ldap/passwd.ldif #./migrate_group.pl /etc/group /etc/ldap/group.ldif #./migrate_hosts.pl /etc/hosts /etc/ldap/hosts.ldif Nyissuk meg a négy LDIF állományt, és vizsgáljuk meg a tartalmukat. Sajnos az importáló program, amit a továbbiakban használunk nem kedveli az ékezetes karaktereket, ezért előfordulhat, hogy módosítanunk kell az állományok tartalmát. Következő lépésként létrehozzuk az LDAP adatbázist az LDIF állományokból. #slapadd -l /etc/ldap/base.ldif # slapadd -l /etc/ldap/passwd.ldif # slapadd -l /etc/ldap/group.ldif # slapadd -l /etc/ldap/hosts.ldif Beállítjuk az adatbázisállományok tulajdonosát: # chown -R openldap:openldap /var/lib/ldap Indítsuk el a kiszolgó alkalmazást: #/etc/init.d/slapd start 3. Címtár megtekintése és bővítése Telepítsük a webes beállítást lehetővé tevő phpldapadmin programot: #apt-get install phpldapadmin Sikeres telepítés után indítsunk egy webböngészőt, és a címsorba írjuk be: http://localhost/phpldapadmin/ Login, majd Login DN: cn=admin,dc=gyakorlat,dc=hu Passwdord: hallgato Authenticate 3
Nyissuk ki a People csomópontot, majd hozzunk létre egy új felhasználót Xintia néven. Create new entry here 4
Select a template for the creation process: Hajtsunk végre egy keresést: 5
3. LDAP alapú felhasználóazonosítás Telepítsük először a következő csomagokat libpam-ldap, libnss-ldap, nss-updatedb #apt-get install libpam-ldap libnss-ldap nss-updatedb Version 3 6
7
8
Az /etc/nsswitch.conf-ban cseréljük le a compat-ot files ldap-ra a passwd és group bejegyzéseknél: passwd: group: files ldap files ldap Ellenőrizzük le: getent passwd getent group Ugyanazt kell lássuk mint az /etc/passwd megnézésénél, csak most az LDAP-ból jönnek az adatok. Állítsuk be az /etc/libnss-ldap.conf-ban a "bind_policy soft"-ot. Állítsuk be /etc/pam.d/common-account-ban: account sufficient pam_ldap.so account required pam_unix.so Állítsuk be a /etc/pam.d/common-auth-ban: auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass Állítsuk be a /etc/pam.d/common-password-ban: password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5 9
Tartalomjegyzék 1. LDAP szerver telepítése... 1 2. Felhasználók importálása... 2 3. Címtár megtekintése és bővítése... 3 Select a template for the creation process:... 5 3. LDAP alapú felhasználóazonosítás... 6 Tartalomjegyzék...10 10