Bu makalenin sa�land��� diller : �ngilizce , Frans�zca Turkce |
yazan: At�f Gaffar Yazar hakk�nda:
At�f'�n on parma��nda on marifet vard�r. ��ini bitirebilmek i�in Sistem Y�neticili�inden tutun da programc�l��a, ��retmenlikten tutun da proje m�d�rl���ne kadar gereken ne kadar g�rev varsa hepsini yerine getirir.
��indekiler:
|
�zet:
Son makalemde size Linux alt�nda LDAP kullanmay� anlatm��t�m. LDAP'nin a��k kaynakl� bir programla nas�l birle�ip bir ileti veya bir sunucu sistemi yapabildi�ini merak eden insanlardan bir �ok soru ald�m.
Bu Makalede Linux ve LDAP tabanl� b�l�nebilir bir ISS servisi kuraca��z. Bu servis bir �ok �nemli noktaya ve sorulan bir �ok konuya a��kl�k getirecek. Sonra onu y�netmek i�in ISPMan denilen bir ara� kullanaca��z.
Metin �eklindeki �rneklerin uzunlu�undan kurtulmak i�in onlar� onlar� metin kutucuklar�na ekledim. E�er ger�ekten bu sayfan�n ��kt�s�n� almak istiyorsan�z o zaman onu kendi bilgisayar�n�zda saklay�n ve metin kutucuklar�ndaki �rnekleri "pre tags'e" d�n��t�r�n.
Belki bu perl komutu sizin i�in bir �eyler yapabilir.
perl -pi.bak -e 's!textarea.*?>!pre>!g' filename
Bir ISS meydana getirmek ve sonra onu y�netmek uzmanl�k isteyen bir i�, �zellikle onun rahat�a eri�ilebilir, b�l�nebilir ve b�y�k bir k�sm�n�n otomatik olmas�n� istiyorsan�z.
Bir ISS'yi �al��t�rmak kendini makinalar�n �al��mas�na, kullan�c� hesaplar�n�n olu�turulmas�na, sanaldoku sitelerinin y�netilmesine, sorun gidermeye, bir yard�m masas� �al��t�rmaya vb. i�lere
adam�� Sisitem Y�neticilerinden olu�an bir tak�m gerektirir.
�o�u zaman yard�m masas�n�n kurulumda ya �ok az etkisi vard� ya da hi� yoktur. Kar��la�t���m yard�m masalar�n�n �o�unun umutsuzca yard�ma ihtiyac� vard�.
LDAP m�kemmel bir dizindir. LDAP, kullan�c� adlar�n� ve �ifrelerini y�netmekten ziyade kullan�c�lar� ve kaynaklar� y�netir. Yaz�m�n ilerleyen b�l�mlerinde LDAP'nin nas�l her �eyi tek merkezden idare etti�ini g�rece�iz.
ISPMan benim yazd���m� bir program; bu program sayesinde IT b�l�m�ndekiler yeni bir alanad�(domain) olu�turacaklar�nda, bir internet sunucusu kuracaklar�nda veya bir DNS girdisini de�i�tireceklerinde beni rahats�z etmeyecekler. ISPMan a��k kodlu bir program ve onu http://www.ispman.org adresinden indirebilirsiniz. Burada ISPMan'in kendisi hakk�nda a��klama yapmaktansa onun ard�ndaki genel kavramlardan bahsedece�im. Kendinizi onu denemek ve geli�tirmek hususunda �zg�r hissedebilirsiniz.
Bu ISS bize DNS, posta, internet postas�, internet sunuculu�u vb. �eyler sa�layacak.
Mesele �u ki: Bir m��teri geliyor ve "exampledomain.com" diye bir alanad�(domain) almak istiyor.
Bu alanad� bir ka� tu� vuru�uyla olu�turuluyor ama asl�nda sahne arkas�nda DNS'i, sanal posta sunucusunu ve sanal bir internet sunucusunu kurmak gibi bir �ok sihirli i�lem yat�yor.
M��teri kendi internet veya ftp sunucusuna eri�mek bir kullan�c� ad� al�yor. Ayn� alanad� i�inde epotaya eri�im i�in s�n�rs�z say�da kullan�c� olu�turulabiliyor. Alanad�n� kullanan kullan�c�n�n indirme i�lemi i�in yeri olup olmayaca�� size kalm��.
Tabi bir de internet eri�imi sa�lama i�i var. Bu konu �ok sade ya da ger�ekten �ok karma��k olabilece�inden dolay� bu makalede ona de�inmeyece�iz :).
Herkes kendi internet sitesine ve kendi alan�ndan bir elektronik posta adresine sahip olmak ister fakat elektronik posta hesab� olu�turma i�i elektronik posta kullanmak i�in gereken sistem hesaplar�na garip bir �ekilde ba�l� oldu�undan ben bunu sevmiyorum.
kullanici1@alanad�1.com ve kullanici2@alanad�1.ch etclerini y�netmek istedi�inizde bir �ok d�zeyde sorun ��k�yor ��nk� yap�lmas� gereken bir �ok gereksiz y�nlendirme i�lemi var.
�rnek olarak m�kemmel bir IMAP sunucusu olan Cyrus'u alabiliriz. Cyrus kullan�c�lar� y�netmek yerine posta kutular�n�(mailbox) kontrol eder. Sadece bir posta kutusunun ad�n�n "agaffar" olmas�na izin verir. E�er "linuxrus.com" alanad�ndan bir m��terim varsa ve bu m��terim "agaffar" diye bir kullan�c� ad� istiyorsa bu talihimin bana ufak bir oyun oynad��� anlam�na gelir. Bu durumda farkl� ada sahip bir posta kutusu olu�turmal� ve kullan�c�y� o posta kutusuna y�nlendirmeliyim. Bu i�in ikinci bir p�f noktas� da "agaffar.linuxrus.com" ad�nda bir kullan�c� olu�turmak fakat Cyrus "." y� posta kutusu ay�rac� olarak kulland��� i�in ne birincisini yapabilirim ne de "[email protected]" adl� bir kullan�c� ad� kullanabilirim. Neyse ki gelecekteki programlar ak�llarda zaten var olan alanadlar�yla yaz�lacak.
Hepimizin Amerika'da ya�amad���n� da hat�rlatmak isterim. Bir �ok posta listesi kullan�c�1@alanad�1 ve kullan�c�2@alanad�2 yi �neriyor. Onlar b�t�n alanadlar�n�n .com ile bitmesini umuyorlar. So we have to keep track of "username" "domain" "TLD"(Top Level Domain).
Bizim tasar�m�z b�t�n bunlar� hesaba katacak.
"agaffar" diye bir kullan�c� olu�turmak yerine kullan�c�lar� "kullan�c�ad�_alanad�_tld" �eklinde olu�turaca��z.
Ayra� olarak neden "_" yi kulland���m� bilmiyorum fakat "." Cyrus y�z�nden kullan�lamazd� ve di�er ayra�larla da daha ba�ka problemlerimiz vard�, �rne�in "&" hem komut sat�rlar� hem de URL ler i�in sak�ncal�yd�.
A�a��da LDAP ile sorunsuz bir �ekilde �al��an programlar�n bir listesini g�r�yorsunuz. Tabi isterseniz, ve de �al���rsa, ba�ka programlar da kullanabilirsiniz.
Dizinimiz alanadlar�na dayan�yor. Bu dizinde alanadlar�, alanad� kullan�c�lar�, alanad� servisleri etc leri var.
�rene�in LDAP y�neticisi ve Cyrus y�neticisi gibi kullan�c�lar�n d���ndaki bir kullan�c� sadece bir alanad�nda var olabilir.
alanad�n�n ilgili b�l�m� kendisine ba�l� olan kullan�c�lar�n bilgilerini, alanad�n�n DNS bilgilerini ve alanad� etc sinin internet bilgilerini saklar
�rnek
Burada "develeoper.ch" alanad� i�in bir b�l�m tan�mlad�k, bu b�l�m�n kulln�c�lar, dns bilgileri ve internet bilgileri i�in alt b�l�mleri var.
Bu �rnekte alanad�na sadece "alanad�.tld" kullan�c�s�n�n ftp ile eri�mesini istedi�imiz i�in bir uid, gid ve anadizin(homeDirectory) tan�mlad�k.
�rne�in developer.ch adl� alanad�n�n sahibi kendi dizinine dosya y�kelemek istedi�inde sisteme "developer.ch" olarak ba�lanacak ve ftp sunusuna ba�lanmak i�in uygun �ifreyi girdi�inde anadizinine ula�abilecek vesaire vesaire... bundan daha sonra bahsedece�iz.
Di�er kullan�c�lar�n alanad�na ftp ile eri�melerini istemedi�imiz i�in onlara bir uid,gid ve etc tan�mlamad�k.
B�t�n bir LDIF �rnek dosyas�n� burada
bulabilirsiniz (bu dosya biraz eski olabilir ��nk� bir �retim makinas�ndan al�nd� ve yeni tasar�m�nda i�ine baz� �zelikler ekledim) veya patronunuza bir �rnek sunmak i�in bu ba�lant�y� kullanabilirsiniz (bu da biraz eski tarihli)
LDAP nin di�er bir g�zelli�i de /etc/passwd, /etc/shadow etc sinde herhangi bir sistem hesab� olu�turmak ya da NIS etc sini y�netmek zorunda olmay���m�z.
T�m hesaplar LDAP de toplan�r ve do�rulama da direk LDAP �zreinden yap�l�r.
Bu ufak oyunu yapabilmek i�in PAM (Pluggable Authentification Module) pam_ldap'den b�y�k yard�m ald�k.
PAM sizin do�rulama i�in hangi mod�l� kullanaca��n�z� belirlemenize olanak verir.
�rne�in benim /etc/pam.d/imap, /etc/pam.d/pop ve /etc/pam.d/proftpd dosyalar�m �u �ekilde:
#%PAM-1.0 auth sufficient /lib/security/pam_ldap.so account sufficient /lib/security/pam_ldap.soArt�k t�m imap/pop3/ftp do�rulama i�lemleri ldap sunucusu taraf�ndan y�r�t�l�yor. B�ylece agaffar_developer_ch adl� kullan�c� do�rulanm�� oluyor(gets authentificated) ve sistemin passwd veya nis kay�tlar�nda kayd� olmasa bile kendine gelen iletileri alabiliyor.
DNS'in halihaz�rda LDAP i�in bir backend'i yok, ama belki de DHCP ile ba�lant� kurmak i�in kullan�lan Dynamica DNS d���nda bir DNS i�in backendi olmas� iyi bir fikir de�il. Neyse, LDAP'yi DNS hakk�ndaki bilgileri depolama ve daha sonra bunlar� kullanarak DNS alan dosyalar� olu�turmak i�in kullan�yoruz. Bu bizim DNSte herhangi bir de�i�iklik yapmadan her �eyi merkezi bir g�venli makinadan y�netmemize olanak sa�l�yor.
LDAP deki DNS girdileri �u �ekilde g�z�k�yor:
dn: ou=dnsdata, domain=4unet.net, o=ispman domain: 4unet.net ou: dnsdata objectclass: top objectclass: domainrelatedobject objectclass: posixAccount uid: 4unet.net uidNumber: 2000 gidNumber: 1000 homeDirectory: /home/4unet.net userPassword: {crypt}XXffGGHH loginShell: /bin/true |
dns bilgisi kolu tan�mlar�. Ayn� zamanda alanad�yla ayn� ada sahip bir posixAccount (bir kullan�c�) tan�ml�yor. Bu kullan�c� alanad�na ftp ile ba�lan�p daha �nce belirlenmi� k�s�mlara dosya y�kleyebilen bir �e�it webmaster. |
dn: cn=soarecords, ou=dnsdata, domain=4unet.net, o=ispman cn: soarecords primary: ns1.4unet.net ou: dnsdata retry: 1800 rootmail: dnsmaster.4unet.net domain: 4unet.net minimum: 432000 objectclass: top objectclass: domainRelatedObject expire: 1209600 refresh: 21600 |
Bu k�s�m 4unet.net'in DNS'si i�in SOA kay�tlar�n� tan�ml�yor. Alan dosyas�n�n i�inde bu de�erleri onlar� DNS SOA kay�tlar�na �evirecek bir script bulundurmak zorundas�n�z. |
dn: cn=nsrecords, ou=dnsdata, domain=4unet.net, o=ispman domain: 4unet.net cn: nsrecords ou: dnsdata objectclass: top objectclass: domainRelatedObject record: @,ns1.4unet.net record: @,ns2.4unet.net |
Ve bunlar da NS kay�tlar�.
T�m bilgileri bir script tutacak, onlar� "," karakteri ile ay�racak ve alan dosyas�na eklenecek olan hedefi ve isim sunucusunu bulacak |
dn: cn=mxrecords, ou=dnsdata, domain=4unet.net, o=ispman domain: 4unet.net cn: mxrecords ou: dnsdata objectclass: top objectclass: domainRelatedObject record: @,10, mx1.4unet.net record: @,100, mx2.4unet.net |
Yukar�dakilerin ayn�s� ama bu sefer MX kay�tlar�.
Bu kay�tlar ayn� zamanda alan dosyalar�n�n i�indeki MX kay�tlar�na g�re d�zenlenmi� olan �ncelik alan�n� da i�eriyor. |
dn: cn=arecords, ou=dnsdata, domain=4unet.net, o=ispman objectclass: top objectclass: domainRelatedObject domain: 4unet.net cn: arecords ou: dnsdata record: ns1, 193.247.80.43 record: ns2, 193.247.80.44 record: @,193.247.80.43 record: @,193.247.80.44 |
Bunlar da A kodlar�, basit olarak sunucu, ip adres y�nlendirmeleri |
dn: cn=cnames, ou=dnsdata, domain=4unet.net, o=ispman objectclass: top objectclass: domainRelatedObject domain: 4unet.net cn: cnames ou: dnsdata record: ftp, www record: mail, www record: *, www |
Bunlar da sunucular i�in CNAME veya K�saltmalar |
proftpd'yi LDAP mod�l� ile birlikte y�klemi� olmak zorundas�n�z. ftp yi sanal sunucu etc si ile �al��t�racaksan�z ve sanal sunucunun da �o�u zaman me�gul olaca��n� d���n�yorsan�z ftp yi inetd nin i�inden �al��t�rmak yerine kendi ba��na �al��t�rmal�s�n�z.
Bu y�zden inetd.conf k�sm�ndaki sat�rlar� yeniden d�zenleyin ve inetd �eytan�n�(daemon) yeniden y�kleyin.
Ad� ftponly olan ve gid 1000 e sahip bir grup olu�turn.T�m alandalar�na bu gid i verece�iz.
/etc/pam.d/proftpd dizinini yukar�da LDAP Do�rulamas� k�sm�nda g�sterildi�i gibi d�zenleyin.
O zaman /etc/proftpd.conf dizininiz �unun gibi g�z�kmeli.
proftpd'yi �al��t�rmak i�in /usr/sbin/proftpd, onu kapatmak i�in de killall /usr/sbin/proftpd yazabilirsiniz
Cyrus SASL'yi, imapd'yi ve UW-IMAP istemci c-sdk's�n� derleyin ve kurun. IMAP istemcisinin sdk's� zaten sisteminizde y�klenmi� olacakt�r.�lk �nce rpm -aq | grep imap komutunu deneyin. Gene de ��phede kal�rsan�z daha yeni bir versiyonunu derleyin ve kurun. cyrus ve grup iletisi adl� bir kullan�c� olu�turn,y�kleme talimatlar�n� izleyin ve imap sunucunuzun �al���p �al��mad���n� kontrol edin. Bir kere �al��t�rmay� ba�ard�ktan sonra /etc/pam.d/imap k�sm�n� LDAP Do�rulamas� k�sm�nda g�sterildi�i gibi ayarlay�n.
cyrus ad�nda veya LDAP dizinindeki /etc/imapd.conf k�sm�nda verdi�iniz y�netici ad�yla ayn� ada sahip bir kullan�c� olu�turmak zorundas�n�ze
�rne�in cyrus y�neticinizin ad� "cyrus" ise ldap dizininizde a�a��dakine benzer bir girdi g�receksiniz.
dn: uid=cyrus, ou=admins, o=ispman cn: Cyrus Admin sn: Cyrus objectclass: top objectclass: systemadmins uid: cyrus userpassword: XXDDCCYY ou: adminsBu girdileri kurulum s�ras�nda ISPMan sizin i�in kendisi olu�turacak.
Postfix LDAP ile m�kemmel bir uyum i�inde �al���r. Sanal alanad� ve sanal kullan�c�aramalar�n� LDAP i�inden direk olarak yapabilirsiniz. B�ylece hangi sunucudan ileti alaca��n�z� belirtmek zorunda kalmazs�n�z.
�rne�in, e�er "perl.ch" alan�ndan bir ileti gelirse t�m alanadlar�n� tarayarak "perl.ch" adl� bir alanad�n�n olup olmad���na bak�lacakt�r. E�er b�yle bir alanad� var ise "perl.ch i�in g�nderilen Duh MX geri d�nd�" mesaj�n� g�stermek yerine gelen iletiyi kabul edecektir.
benim /etc/postfix/main.cf dizinim �unun gibi g�r�n�yor
ISPMan kullan�c�lar� y�netmeyi kolayla�t�r�r. Bir kullan�c� olu�turmak iki ad�mdan ibarettir:
ISPMan bir kullan�c�n�n posta kutusunu ileti�iftli�inizdeki(mailfarm) herhangi bir makinada olu�turabilmenize olanak sa�lar.�rne�in herbiri 10,000 kullan�c�y� y�neten ileti1, ileti2, ileti3 ileti4 etc leriniz olabilir. LDAP + Postfix + Cyrus ��l�s�n� kullanarak i�teki makinalardan herhangi birine ileti da��tabilirsiniz.
�rne�in [email protected] adresine bir ileti ula��yor olsun, Postfix ldap sunucusuna bu iletiyi [email protected] tan�m�na uyan girdiye g�ndermesini ister, LDAP sunucusu da [email protected] adresine bu iletiyi g�nderir. Gelen ileti de ileti�iftli�inizdeki ilet5 adl� makinaya y�nlendirilir.
Bu aralar birka� i�ini iyi bilen geli�tiriciyle birlikte pop3 ve imap kap�s�(port) �zerindeki ileti sunucusu frontendinde �al��an ve gelen istekleri i� makinalara ileten bir IMAP/pop3 vekili(proxy) �zerinde �al���yorum. B�ylece kullan�c�lar iletilerinin hangi ileti sunucusunda bulundu�unu bilmek yerine sadece mail.developer.ch veya pop.developer.ch gibi bir adres bilecekler.
IMP kullan�c�lara webmail sunmak i�in �ok kullan��l� bir program.
Merkezi IMP y�klemesi i�in apache'nin httpd.conf k�sm�nda ileti.* diye bir k�saltma olu�turabilirsiniz.
�rne�in a�a��dakiler benim y�klememden
A�a��dakileri y�neten biraz de�i�tirilmi� bir IMP s�r�m� �zerinde �al���yorum.
|
2000-09-03, lfparser s�r�m 1.8 ile yaz�lm��t�r