July | 2008 | {Yaratıcı Bir Başlık}

Monthly Archives: July 2008

>jabber 2.2.1 ldap auth-mysql storage -2

>sm.xml dosyasını yapılandırdık. şimdi sıra c2s.xml dosyasında.
bu dosyadaki < local > içinde < id > içerisine sm.xmlde yazdığımız sunucun adresi yazıyoruz.
( jabber.ev.com)

< authreg > tag’inin altında < module > tag’ını ldap yapıyoruz. yani kimlik kanıtlama işini ldap üzerine yıkıyoruz 😛 sonra alt tagların arasında
< ldap > tag’ını buluyoruz. bu tag altında ldap sunucusunun ayarları bulunuyor. < host > içine ldap sunucu tag’ını giriyoruz. sonra < v3 / > tagını açıyoruz. ( < ! - - - - > silmek)
< binddn > cn=admin,dc=ev,dc=com < / binddn>
< bindpw > parola < / bindpw >
< uidattr > aranacak olan kullanıcı özelliğini giriyoruz
< uidattr > uid < / uidattr >
< base > dc=ev,dc=com < / base > giriyoruz . ve canavarlar gibi ldap-mysql ile ilişkili bir jabber sunucumuz var elimizde..hayırlı olsun

>jabber 2.2.1 ldap auth-mysql storage

>Evet fantastik bir iş oldu biliyorum ama jabberd sunucusunu kimlik kanıtamasını ldap ile jabber bilgilerine de mysql üzerinde erişilecek.jabberd 2.2.1 i debian etch4 üzerine kurduk testing deposu ile tabiki.:) gerekli paketlerin çogunu altta vermiştim ama libkrb5-dev paketini unutmuşum galiba.Bunları bir güzel kurduktan sonra ( apt-get ile kolay oluyor…)sonra da

başlangıç olarak
su –
groupadd jabber
useradd -g jabber jabber

jabber kullanıcı ile jabberd yi çalıştıracağız. güvenlikden galiba:D

./configure –enable-mysql –enable-ldap –enable-ssl
–enable-debug –enable-idn ile configure ediyoruz sonra make, make install,
hata çıkmadıysa jabberd’imiz /usr/local/etc altında ayar dosyalarını barındırıyor olmalı.

/usr/local/etc/sm.xml dosyasında şu değişiklikleri yapacağız:

< id > tağının içine sunucumuzun ismini gireceğiz.
< storage > < driver > tag’ının içine de kullanacağız storage’i gireceğiz. mysql bizde

sonra mysql ayarları için < mysql > tag’ı içerisinde user ve pass tagları içerisinine oluşturduğumuz mysql veri tabanının sahibi ve parolasını girecegiz ( alttaki girdide yazmıştım )

ve en önemli olarak ldap üzerinden kimlik kanıtlaması yapacağım için ldap üzerindeki var olan ama önceden log in olmamış kullanıcılar için mysql kullanıcı yaratacak( storage için)

< user > tag’ı içerisindeki ( altlarda bulunuyor bu tag )
< auto-create /> tagını açın ( yani < !-- -- > kaldırın).

>jabber 2.2.1

>

Ldap ile ilişkilendirilecek bir servis olan jabber’ın kurulmasıda bir ayrı zaman aldı. ama mysql ile kurulumu yaptım. çalışıyor gözüküyor. bakalım nasıl olacak bilmiyorum bende.
gerekli paketleri sıralarsam:
g++
libexpat1-dev
libidn11-dev
libudns-dev
libgsasl7-dev
libssl-dev
libmysqlclient15-dev
mysql-server
slapd ,slapd script..falan fisman
libldap2-dev
make

en önemli bunlar var şimdilik gözüme çarpan ama arada gözden kaçmış paketler olabilir. 🙁

./configure --enable-mssql --enable-ldap --enable-ssl --enable-idn

sonra make ve make install ile rahat bir kurulum geçirdim.

      mysql -u root -p
mysql>\. db-setup.mysql

GRANT select,insert,delete,update ON jabberd2.*
to jabberd2@localhost IDENTIFIED by 'secret';

sm.xml driver’ı mysql olduguna emin oldum.
user tag’ında jabberd2 yukarıdaki gibi
pass tag’ında secret

s2c.xml de ise modulüı ldap yaptım

ldap tagının içerisinde host u 127.0.0.1 yaptım

binddn leri açtım cn=admin,dc=ev
bindpw yi de parolasını yaptım..

ve çalışıyor gibi gözülüyor
hiçbir şikayeti yok galiba:D

>jabber 2.2.1

>

Ldap ile ilişkilendirilecek bir servis olan jabber’ın kurulmasıda bir ayrı zaman aldı. ama mysql ile kurulumu yaptım. çalışıyor gözüküyor. bakalım nasıl olacak bilmiyorum bende.
gerekli paketleri sıralarsam:
g++
libexpat1-dev
libidn11-dev
libudns-dev
libgsasl7-dev
libssl-dev
libmysqlclient15-dev
mysql-server

en önemli bunlar var şimdilik gözüme çarpan ama arada gözden kaçmış paketler olabilir. 🙁

>editör…( ide )

>

Bir editör ne kadar kuvvetliyse programcı da o kadar kuvvetli olur. Programcı editörün yetenekleri kadarını yapabilir. Çünkü programcı ne kadar isterse istesin editöründen fazlasını alamaz.( tabi kendi editörünü yazma gibi bir uğraşı yoksa:)
Ve ben hiçbir kısıtlama getirmeyen vi/vim’i öğreniyorum… Umarım öğrenebilirim. Çünkü bir editör sadece metni açma, yazma ve düzgün şekilde kaydetmek demek değildir.

>staj çalışması-2 ( ldap – egroupware)

>Egroupware da yapmak istediğimiz şey, sadece kullanıcı adı ve parolalarını ldap üzerinde olmasıydı. Egroupware’in kullanıcılara sağladığı özellikleri ise sql veri tabanında tutulacaktı. Önceden hem kimlik kanıtlama hemde kullanıcı verileri sql’de tutulduğu için egroupware için ve bunu sql ile ilişkilendirmek için önceden yapılandırılmıştı.

Önceden ldap’da belirttiğimiz ayarları egroupware’in web arayüzündeki yapılandırılmasına girmemiz gerekiyor.

Authentification / User Accounts:

Which kind of authentification do you want to use: ldap ( kimlik kanıtlamasını için ldap seçildi.)

Select where you want to store/retrieve user
accounts: sql (kullanıcının egroupware özelliklerini saklamak için sql kullanıyoruz )

İf using ldap:

LDAP host: localhost (Ya da ldap sunucusun bulunduğunu ip adresi)
LDAP accounts context : ou=dugum1,dc=ev,dc=tr

LDAP search filter accounts, default: (uid=%user)
“uid=%user)”,%domain=eGW-domain:

LDAP group context: (boş)
LDAP rootdn(searching accounts and
changing password): cd=manager,dc=ev,dc=tr
LDAP root password xxx (slapd.conf içine girdiğimiz parola)
LDAP encryption: md5
Do you want to manage homedirectory and
loginshell attributes No(bu özelliğini sql üzerinde tutulacak. )
LDAP default homedirectory prefix
(e.g. /home for /home/username): /ldap/home
Ldap defualt shell(e.g. /bin/bash) /bin/bash

Çalışıyor. Yani egroupware’dan kullanıcı girişi yapılabiliyor.Ldap’da olan kullanıcılar için sql de özellikler yaratılarak giriş yapılabiliyor.

>staj çalışmaları-1 (ldap)

>Ldap sunucusu okuma işlemi için özelleştirilmiştir. Ve bir çok program ile senkranizasyon yapılabilmektededir. Ancak kayıt eklemek uzun süremektededir.

Ldap kayıtları düğümler şeklinde tutuluyor. Böylece aynı isimli kullanıcı olsa bile o kullanıcıya giden yol farklı olduğu için karışıklık oluşmuyor. Düğümlerin yapısı dns düğümlerine benziyor sayılır. Alt altta düğümlerden oluşuyor ldapda. Bu düğümleri ve kök dizinini tanımlanması gerekiyor.

#apt-get install slapd ldap-utils ldapscripts
#apt-get install apache2 php5 phpldapadmin php5-ldap (daha sonra phpldapadmin üzerinden openldap’ı yönetmek için kuruyoruz.)

Ldap yapılandırması:

bunun için (tabiki debian için) /etc/ldap/slapd.conf dosyasında bazı degişikliklere gidiyoruz.

database· bdb

suffix· · “dc=my-domain,dc=com” ->kök dizinimiz.

rootdn· · “cn=Manager,dc=my-domain,dc=com” ->yetkili kullanıcı yolu

rootpw xxx

suffix ve rootdn’yi kendimize göre uyarlıyoruz.

Suffix “dc=ev,dctr”

rootdn “cn=manager,dc=ev,,dc=tr” şeklinde bir düzenleme yapıyoruz.

Rootpw xxx

Openldap için bu kadar ayar yeterli. Kullanıcı ekleme işini istenirse konsoldon hazırlayacağımız *.ldif dosyasıyla. Ya da phpldapadmin ile yapabiliriz. Kök dizinden düğümler oluşturacağız.

Openldap düğüm ekleme:

önceden yaratacağımız bir ldif dosyası ile ldap a dügüm ve kişi eklemek gerçekten kolay. İstersek bunu phpldapadmin web arayüzünden yapabilir Ya da komut satırından gerçekleştirebiliriz.

#vi deneme.ldif

dn: dc=dugum1,dc=edu,dc=tr
objectclass: dcObject
objectclass: organization
dc:dugum1

#(yarattığımız düğüm)

dn: cn=admin,dc=dugum1,dc=ev,dc=tr
objectclass: organizationalRole
cn: admin

Bu dosyada önemli olan burada dn satırına tam yolunun yazılası ve objectclass’ın ldap’a eklenmiş olan schemalardan geldiğidir.İlk hatamızı bu objectclass’larda kendi isteğimize göre isimlendirmeden gelmişti.

Konsoldan eklemek için:

#ldapadd -x -D “cn=manager,dc=ev,dc=edu,dc=tr” -W -f base.ldif

phpldapadmin ile ise importtan direk dosyayı Ya da yukarıdaki yazdıklarımızı yazarak kullanıcı ve düğüm ekleyebiliniyor.

Konsoldan arama işlemi:

#ldapsearch -x -b -h localhost ‘dc=ev,dc=tr’ ‘(objectclass=*)’

-b parametresi base yani kök dizin

-h host parametresi

‘(objectclass=*)’ arama filtresi bunu uid, cn ,.. yapabiliriz.

-x basit kanıtlama.

Daha fazla parametre için

#ldapsearch –help

ldapsearch ile girdiğimiz düğüm ve kullanıcıları düzgün eklendiğini test edebildik.

>staj(egourpware,vsftpd,jabber,ldap vs…)

>

Hocamın yoğun olarak söylemesi üzerine stajda üzerine uğraştığım konular hakkında blog girdisi oluşturacağım. Hadi hayırlısı:D

>firefox eklentisi-1

>
install.rdf
chrome\
contest\
sample.xul
chrome.mainfest
Install.rdf
install.rdf eklentimizin en üst hiyerarşisinde bulunur. İçinde eklenti hakkında gerekli bilgileri barındırır. Eklentinin imzası, eklentinin sahibi hakkında bilgi, eklenti versiyonu gibi bilgileri içerisinde tutar. Yapı olarak xml 1.0 yapısını kullanır.

>staj-2 bugün yapmazsan yarın çok geç olabilir.

>

Bu sözüm hem staj defteri yazmaya uğraşan ben için, hemde openldap kurup bunun üzerindeki bazı ayrıntıları sonra yaparız dediğimiz kemal hocam ve bana gelsin. Giriştiğimiz proje openldap ile n tane sunucu servisinin kimlik kanıtlaması. Olacak mı denediğimiz pek çok şey için şimdilik çalıştığını görelim yeterli dedik.(yada ben öyle düşünüyorum:P) bir tane daha sunucuyu ldap ile uyumlu hale getirdikten sonra temel ayarlardan yok onu aç bunu yap sonra hepsi perişan olsun yeniden bir döngüye girecekmişiz gibi geliyor bana:( inşallah öyle olmaz yap arkadaşım dediğimiz şeyleri peki abi der ver düşündüğümüz gibi yapar.

ve bir inatlaşma sonunda php yi bugün kullandım:D Derslerde verildiğinden itibaren pek heveslisi olduğum söylenemez.html javascript güzel şeyler:D ldap sunucusu için parola değiştirmek için web arayüzü tasarla dediğinde hoca biraz zorlanmış olsamda azıcık php azıcık html azıcık javascript işlevine uygun sade basit bir site tasarlardım.Son teknoloji ama…hareketli diyebilirim.

dipnot: Necdet hocanın yoğun söylemelerine karşı blog girdisi yapamıyorum yaptığımız şeyleri. Staj dosyasından kopyala yapıştır yoluna gidesim var bakalım.