Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano Deutsch Francais Nederlands Turkce |
by Atif Ghaffar About the author:
Atif is a chameleon. Sistem Operetorunden programciya, ogretmenden proje yoneticisine kadar bir isin basarilmasi icin ne gerekiyorsa o role burunur.
Content:
|
Ozet:
Bu yazimizda en sevdigimiz OS Linux ile LDAP'i ve onun uygulamalarini ogrenecegiz.
LDAP hakkinda bolca kaynak bulundugundan onlarin tekrarini yapmayacagim. Bununla beraber ileri seviyede LDAP terimlerinden; semalardan, v2 ile v3 arasindaki farklardan bahsetmeyecegim. Zaten bunlar hakkinda cok bilgim yok. Benim yapacagim LDAP'in ne oldugunu, uygulamalarini ve faydalarini kisaca anlatmak olacak.
Ben bir LDAP uzmani degilim. Aslinda bir LDAP acemisiyim. Burada kisaca LDAP ile ne yaptigimi ve nasil yaptigimi yazacagim. Bir zamanlar benim oldugum gibi aklinizi cok karistirmamaya calisacagim.
Soru: Eger bir acemi iseniz niye bu konu hakkinda yazi yaziyorsunuz.
Yakinlarda kolejden bir projede yardima ihtiyacim olmustu. Projenin ana konusu
LDAP idi. Bana Perl, mesaj sunuculari vs. de yardimci oldu fakat LDAP hakkinda
hicbir sey bilmiyordu. Bu yuzden LDAP'a her girmek istediginde kafasi daha cok
karisiyordu.
Proje icin LDAP hakkinda cok az bilgi yeterli olacagindan ona
yarim saatilik hizli bir kurs verdim ve hersey yoluna girdi. Kavramlar oldukca
basit, hepsi yuzeysel, sadece biraz dikkat veya eglenceli ornekler yeterli.
Bu yazimda aynisi yapacagim.
Kaynaklar kisminda LDAP hakkinda daha fazla bilgiywe ulasabileceginiz adresler var.
LDAP'in acilimi "Lightweight Directory Access Protol" dur ve bir klasor servisidir. Aliskin oldugumuz dosya sistemine, telefon numaralarina baktigimiz telefon rehberine, SUN'in NIS'ine (Network Information Service), DNS'e (Domain Name Service) ve kom�unuzun bah�esinde g�rd�g�n�z aga�lara �ok benzer bir yapisi vardir.
LDAP �zg�n bir veritabnidir. LDAP'in normal bir veritabani programi oldugunu dusunmek yanlistir. LDAP veri okumak icin �zellestirilmisdir. Okumalar, LDAP'da yazmadan cok daha fazla kullanilir.
T�m bu servislerin ortak yani nedir?
Hepsi bir verilen bir kritere gore sorgulama yaparlar.
�rnekler.
Dosyalama sistemi dizinleri
ls /etc
Bu komut, /etc klasorundeki t�m dosyalari ve alt klas�rleri verecektir.
ls /etc/p*
Bu, 'p' ile baslayan t�m dosya ve alt klas�rleri verecektir.
find /usr/local/apache -name index.html
Bu, "/usr/local/apache" klasoru altindaki index.html isimli tum dosya ve
klasorleri arayacaktir.
NIS Klas�r�
ypcat passwd
Bu, NIS veritabnindaki t�m kullanici adlarini, parolalari, kullanici
numaralarini (id) vs. yi verecektir.
ypmatch atif passwd
Bize password dosyasindan atif kullanicisinin bilgilerini verecektir.
DNS Klas�r�
nslookup www.linuxfocus.org
Bize dns veritabanindan www.linuxfocus.org ile ilgili ip adreslerini
verecektir.
nslookup -type MX linuxfocus.org
Bize dns veritabanindaki linuxfocus.org ile ilgili sadece MX bilgisini
verecektir.
LDAP Klas�r�
(Asagida, buna detayli olarak bakacagiz.)
ldapsearch uid=aghaffar
Bize aghaffar kullanicisi ile herkese acik olan t�m bilgiyi verecektir.
Unix'de benzer sekilde find / -uid aghaffar komutu
ldapsearch uid=aghaffar mail
Bu sadece aghaffar kullanicisinin mesajlarini verecektir.
Yukarida belirttigimiz her servisin bir baslangic noktasi; taramaya
baslayacagi bir yer belirtildi. Bu baslangi� noktasi
genellikle"k�k" (root) idi.
Bu bir hireyarsideki k�k'e benzer.
Her agacin bir k�k'� vardir. Daha sonra dallara ayrilir ve daha cok dala ve
yapraga ve �i�ege vs.
drwxr-xr-x 29 root root 749 Jun 17 23:45 /usr
Simdi LDAP hireyarsini gosteren bir diyagram.
Bu diyagram hakkinda birazdan duracagiz.
Ger�ek agacin tersine, dosyalama, LDAP ve Telefon Rehberinin Hireyarsisinin her dalinin en az bir tane tek(unique) niteligi vardir. Bu alt dallari birbirinden ayirmamizi saglar.
Dosyalama sisteminde bu nitelik tam adresiyle beraber dosyanin (veya
klas�r�n) adidir. �rnegin
/etc/passwd
Burada passwd dosyasi adresiyle beraber dosyalama sisteminde tektir. Tabiy ki
baska klas�rlerde (/usr/passwd, /opt/passwd) ayni dosya bulunabilir, fakat tam
adresiyle beraber herbiri sistemde tektir.
DNS sistemindeki FQDN (Fully Qualified Domain Name) de benzer sekilde
tek (unique) giris vardir. ( Tabiyki ayni FQDN'e bir cok ip atayabilirsiniz. )
LDAP'da girdileri farkli kilan isin "dn" ayrilmis isimdir(Distinquished Name).
Bu isim bir klas�rde her zaman farklidir.
�rnegin, benim dn'im "uid=aghaffar, ou=People, o=developer.ch"
Tabiyki ayni uid'li bir dn bulunabilir fakat ancak su sekilde olabilir "uid=aghaffar, ou=Administrators, o=developer.ch"
Bu dosyalama sistemindeki /etc/passwd ve /usr/passwd iliskisine benzer.
Bunalrin hireyarsisinde tek olan nitelik "ou=Administrators,
o=developer.ch" ve yine tek nitelik olan uid bulunmaktadir, "ou=People,
o=developer.ch".
Bunlar �akismaz.
Bug�n merketlerden bircok LDAP sunucusu temin edebilirsiniz ve bunlarin
bircogu Linux �zerinde calisacaktir.
Bu yazida icin openLDAP'i kullanacagiz.
Ni�in openLDAP'i sectim ? Nicin openLDAP'i secmelisiniz ?
Bu b�l�mde bir LDAP sunucusunu adim adim y�kleyecegiz.
Adimlar:
Daha �nce belirtildigi gibi, ister kaynak kodlari www.openldap.com dan indirip dok�manlarina g�re bilgisayariniza y�kleyin ister derlenmis paketi y�kleyin. ( paketleri y�kleme ve kaynak kodun nasil derlenecegi bu yazinin konusu disidir.)
Bu �rnekte, linusfocus.org i�in bir LDAP klas�r� olusturacagim.
Kendisiteniz i�in isimleri ve diger gerekli bilgileri degistirin.
Ana Sunucuyu ayarlamak i�in slapd.conf ve ldap.conf dosyalarini en sevdiginiz
edit�rle a�malisiniz.
Benim sunucumda bu dosyalar /etc/openldap i�inde. Sizinkiler
/usr/local/etc/openldap i�inde olabilir. Dosyalarin yeri Linux dagitiminiza
g�re veya eger kendiniz derlediyseniz kurulum sirasindaki ayarlariniza g�re
degisebilir.
######### /etc/openldap/slapd.conf ################################### # Asagidakiler benim SuSe 6.4 �mde �ntanimli idiler. # Bunlar �zerinde b�l�m II ve b�l�m III de daha fazla durulacaktir. # Muhtemelen ancak o zaman ne olduklarini anlayabilecegiz. :) include /etc/openldap/slapd.at.conf include /etc/openldap/slapd.oc.conf schemacheck off pidfile /var/run/slapd.pid argsfile /var/run/slapd.args ####################################################################### # ldbm database definitions ####################################################################### # Bu hangi cins veeritabanini kullanacagimizi belirtir. �n tanimli ldbm olarak kalsin. database ldbm # Son ek veya k�k klas�r. Bu LDAP klas�r�n�zdeki en �st seviye. suffix "o=linuxfocus.org" # ldap lbs'nin nerede tutulacagini belirtir. directory /var/lib/ldap # Klas�r y�neticisinin ayrilmis ismi. rootdn "cn=Manager, o=linuxfocus.org" # ldap y�neticisinin sifresini d�z yazi olarak bulundurmak k�t� olabilir fakat # baslangicta LDAP'a alismak icin bu sekilde kullanacagiz. rootpw secret # Simdilik hepsi bu.Edit�r�n�zle /etc/openldap/ldap.conf dosyasini a�in.
##########/etc/openldap/ldap.conf######### # # LDAP �ntanimli Ayarlari # # Datayli bilgi i�in ldap.conf(5) # Bu dosya herkes tarafindan okunabilmeli. # ldap sunucusunu belirtir. Makina adi veya ip kullanabilirsiniz. host 127.0.0.1 # Bu bizim aramaya baslanmasini istedigimiz k�k klas�r # we will use the top node in our configuration # it need not be the top level node in the directory, for example # we can use base = ou=users, o=linuxfocus.ch # if we do that then all our searched will start from that branch of the tree base o=linuxfocus.org # thats allSimdi ldap servisini baslatalim
Su andan itibaren calisan bir LDAP sunucunuz var ve veri ile doldurulmaya hazir.
ldap sunucusunu veri ile doldurmanin standart yolu bir LDIF (LDAP Directory
Interchange Format)* dosyasi olusturmaktir.
Daha fazla bilgi i�in ldif'in man sayfalarina bakabilirsiniz.
Basit�e, ldif, ldap girdilerinin salt yazisal bir temsilidir. Bu girdiler insan tarafindan
okunabilir ve farkli �reticilerin sunuculari tarafindan veya farkli isletim sistemlerindeki
sunucular tarafindan ortak kullanilabilir.
* Evet, artik baska bir format. Neden LDIF yerine XML kullanilmadigini merak ediyorum.
So without further ado lets create this ldif file.
Biraz hatirlatma.
dn: o=linuxfocus.org o: linuxfocus.org objectclass: top objectclass: organization dn: ou=editors, o=linuxfocus.org ou: editors objectclass: organizationalUnit dn: uid=aghaffar, ou=editors, o=linuxfocus.org uid: aghafar cn: Atif Ghaffar sn: Ghaffar givenname: Atif objectclass: person userpassword: {CRYPT}yIvSBWSuLs2N2 mailacceptinggeneralid: [email protected] ou: editors dn: uid=mkempe, ou=editors, o=linuxfocus.org uid: mkempe cn: Magnus Kempe sn: Kempe givenname: Magnus objectclass: person userpassword: clearpass mailacceptinggeneralid: [email protected] maildrop: [email protected] preferredlanguage: fr ou: editorsSimdi bu bilgiyi ldap klas�r�ne eklemeliyiz. Komut satiri programi ldapadd'i kullanalim.
ldapadd -D "cn=Manager, o=linuxfocus.org" -w secret < linuxfocus.org.ldif
Bu komutla "cn=Manager, o=linuxfocus.org" bilgisi dn (distinguished name) olur.
Bu komut "cn=Manager, o=linuxfocus.org" girdisini dn , 'secret' i
parola olarak alacak ve linuxfocus.org.ldif dosyasindan okuyacagi veriyi ldap
kalas�r�ne ekleyecek.
Eger hersey yolunda gittiyse artik ldap klas�r�nde sorgulama yapmaya hazirsiniz
demektir. Eger hersey yolunda gitmediyse benim mesaj kutumu bombalamaya
hazirsiniz demektir ;)
Mesaj sunucularimin iyiligi icin umarim hersey
yolunda gitmistir.
Devam etmeden �nce, ldif dosyasini satir satir kontrol edelim.
mkempe kullanicisi ile ilgili t�m veriyi bulalim.
ldapsearch uid=mkempe
T�m edit�rler i�in olan dn'i bulalim.
ldapsearch '(&(objectclass=person)(ou=editors))' dn
Daha fazla �rnek i�in ldap'in man sayfalarina bakin.
LDAP acik bir standarttir. Kullanacaginiz yeni uygulamalar ldap veritabanini sorgulayabilecektir.
Windows 2000 bile kendi kals�r sistemi i�in LDAP'i kullanir.
T�m bilgileri merkezilestirmenin faydasi cok b�y�kt�r. Tek y�netici (administration) noktasi, daha az
hata, daha az veri kopyasi ve yedekleme ugrasi.
Compaq i�in �alistigimi ve ldap pazarladigimi dusunun, sunu s�yleyebilirim; Bunu "contacts manager" olarak kullanabilirsiniz. Fakat Compaq i�in �alismiyorum. Bu y�zden size ldap'in daha ilgin� uygulamalarini sunacagim.
SINGLE SOURCE OF SIGN-ON
T�m kullanicilari merkezi bir yerde.
LDAP hireyarsisini kullanici islemlerinizi yapmak i�in kullanabilirsiniz; parolalar ve /etc/passwd
dosyasinda tutabileceginizden cok daha fazla bilgi. Bu bilgi Microsoft Windows / Unix / Mac kullanicilari
i�inde kullanilabilir.
Fikir Isterseniz /etc/pam.d/login vs. biraz m�dahale edip onaylama isleminin shadow veya
nis yerine LDAP'dan yapilmasini saglayabilirsiniz.
Fikir K�c�k bir web aray�z� yazip kullanicilarin sisteme girmeden (c�nk� parolalar
sistemde degil ldap'da tutuluyor)parolalarini degistirmelerini saglayabilirsiniz. pam_ldap'da adres
kaynaklarina bakiniz.
NOT
Single source of sign-on != single sign-on.
Bircok LDAP yazilimcisi eger LDAP
kullanirsani bir sign-on ununz olacagini soyleyerek satmaya calisirlar.
Aslinda bu yari dogru. Single Sign on aslinda tamamen farkli bir cins, IT
Menejerlerinin agzinda bugunlerde eksik olmayan buyuk bir kelime.
sign on �rnegi:
Fikir Sisteminizde kullanicilara mesaj hesabi acabilirsiniz fakat unix hesabi acmaniza gerek yok. Hic problem degil. Ben LDAP+Postfix MailServer+ Cyrus IMAP/POP sunucusu kombinasyonu kullanarak binlerce kullaniciyi idare ediyorum ve hicbirinin sistem hesabi yok.
Fikir Bircok farkli programin ayarlarini merkezilestirebilirsiniz. Mesela, Netscape ayarlari, bookmarks vs LDAP i�inde tutulabilir ve kullanici bir makinadan digerine gittigi zaman LDAP sunucusundan ayni ayarlari alarak kullanir. Kullanici Windows NT Netscape'den Linux/Solaris/Macintosh Netscape'e gidebilir ve hala ayni ayarlari kullanabilir. (�z�r dilerim Microsoft.....Bu senin i�in �ok k�t� biliyorum.)
Senaryo
Bilgilerimi bir daha ve bir daha hem web �zerinde hemde kagida yazmaktan nefret
ederim. H�k�met ofislerinde kendilerine bir kere vermeme ragmen niye yasimi,
dogum tarihimi, adreslerimi bir daha bir daha isterler anlamam. Son sirketimde
, yardim-masasi i�in cok b�y�k formlar ayarlamamiz gerekiyordu ve %75'i
ayniydi. (�n ad, Soy ad, Baslik, Posta adresi, kat, y�netici ismi, b�l�m).
Kullanicilarinizi biktirmak ve tanidik g�z�ken birisi tarafindan gece
karanliginda d�v�lme riskine girmek yerine kullanicilariniza sadece kullanici
adlarini sorabilirsiniz. �rnegin, birisine sadece kullanici adini sorup
gerisini LDAP sunucusundan alabilirsiniz ve sadece eksik bilgileri istersiniz.
Fikir
�rnegin, telefonum calismiyor, sizin i�in verecegim tek bilgi "Telefonum
calismiyor".
Kullanici soyle bir intranet ile cok daha az biktirilir :
Umarim bu yazimla size bir sekilde, beyninizi biraz 10011001001001
besleyerek yardimci olabilmisimdir.
G�r�yorsunuz ki bildiginiz paylasabilmeniz i�in o konuda bir uzman olmaniza
gerek yok. Yardimci yazilar yazmak i�in ne profes�r ne de �gretmen olmaya gerek
yok. K�c�c�k bir bilgi bile kullanicilara yardimci olabilir.
Kisisel olarak, �grenmek i�in zaten bildiklerimi birilerine anlatmanin cok
kolay oldugunu anladim. Bu teknigi siz de denemek isteyebilirsiniz.
Bug�nlerde bircok insanin Linux hakkinda konustugunu g�rmek cok g�zel.
Bircogununda denemte oldugunu g�r�yorum. Bazilari hemen birakiyor bazilarida
bir s�re daha sans veriyor. Bu kullanicilarin kesinlikle unix komutlari ve
sistemi hakkinda hicbir tecr�beleri var, ve bircogu uzun s�re bir probleme
takiliyor olabilirler.
Eger siz bir problemi yeni c�zd�yseniz bile daha bir coklari i�in faydali bir
kaynak olabilirsiniz,
Eger herhangi bir konu hakkinda yazacak malzemeniz olmadigini d�s�n�yorsaniz ve
hala Linux topluluguna yardimci olmak istiyorsaniz, bu yazilari kendi dilinize
cevirmeye g�n�ll� olabilirsiniz.
|
Sayfalar LinuxFocus
Edit�r Takimi Tarafindan Hazirlanmistir. © Atif Ghaffar LinuxFocus.org 2000 LinuxFocus's bir yorum g�ndermek i�in veya bir hatayi bildirmek i�in tiklayin. |
2000-07-07,