SMB(Server Message Block)

Windows için bir uygulama katmanı protokolü olan SMB dosyaların ve yazıcıların paylaşımı için kullanılır. Yine kullanıcı kimlik denetimi sağlamada kullanılır. SMB aynı domain ya da ağdaki Windows bilgisayarların yereldeki dosyalarını paylaşmada kullanılan protokoldür. SMB’nin tarihi ise 1985’li yıllara dayanmaktadır. Bu yıllarda özellikle Microsoft ekibi bu protokol üzerinde geliştirmeler yapmıştır. SMB client-server(istemci-sunucu) mimarisi ile çalışır. Request ve response işlemleri ile OSI uygulama katmanında çalışır.

Alt text

SMB sayesinde kurumların gerekli dosya paylaşımları sağlanabilmekte bunun sonucu olarak kaynak tasarrufu ve işlerin hızlı yürümesini sağlayabilmekteyiz. Buna örnek olarak dosyaların bulunduğu bir server sayesinde gerekli dosyalara bu server üzerinden ihtiyaç duyan kullanıcı erişebilecektir. Tabi ki bu tasarrufun yanında maliyet olarak dosya paylaşımı bir trafik oluşturacaktır. Yine bu protokol sayesinde gerekli dosyaları yetkili grup ve kullanıcıların erişebilmesini sağlayabilir, yetkisiz kişilerden dosyaları koruyabilirsiniz. Bu da kurumlar için önemli bir özelliktir.

SMB yukarıda belirttiğim gibi Windows makinelerde kullanılan bir protokoldur. Peki ya Linux makinelerde nasıl dosya paylaşımı yapılmaktadır. Bu yazının ana konusu olan SAMBA ise Linux dağıtımlarda kullanılan dosya paylaşım protokolüdür.

LDAP

DAP(Directory Access Protokol) adından anlaşılacağı üzere dizin erişim protokolüdür. Dizindeki dosyaların belirli bir hiyerarşi içinde bulunmasını sağlayan protokoldür. DAP, OSI katmanı üzerinde çalışırken hafifletilmiş(lightweight) olarak TCP/IP katmanları üzerinde çalışacak şekilde LDAP(Lightweight Directory Access Protokol) yapısı oluşturulmuştur.

LDAP kullanıcılara dizin sunucusu üzerinde veri depolama, verileri geri çağırma, arama(searching) ve kullanıcı bilgileri doğrulama gibi işlemler yapmayı sağlayan dizin protokolüdür. LDAP, TCP içinde 389 şifrelenmemiş iletişim(genellikle 389 kullanılmakta) ve 636 şifrelenmiş iletişim portları kullanılır. LDAP dizin yapısı ağaç yapısı şeklindedir. Tüm dizinlerin bağlı olduğu bir kök dizin vardır. Yine dizinlerin bir alt ve üst dizinleri bulunabilir.

LDAP SCHEMA (LDAP Şeması)

İlişkisel veri tabanlarında veriler tablolarda belirli kolon özelliklerine göre depolanır ve diğer işlemler yapılır. İlişkisel veri tabanlarında yazma(write) işlemi veri tabanının bir sonraki satırına yapıldığı için daha hızlı iken okuma(read) işlemi gerekli veri bulunması için veri tabanının tümünde okunacağı için daha yavaştır. LDAP Schema yapısında ise yine ilişkisel veri tabanına benzer özellikler olsada farklılıklar vardır. Şemada nesnesel bir yapı vardır. Nesnelerin birbirlerinden farklı olmalarını sağlayan tekil isimleri vardır. Şema içinde bunlar DN(Distinguished Name) olarak belirlenir. Örnek vermek gerekirse bir dizinde aynı isimli iki dosya tanımlayamayız. Ancak farklı dizinlerde aynı isimli dosya tanımlayabiliriz. Çünkü iki dosyayı belirten DN farklıdır yani tekildir. Domain yapısında LDAP şemaları kullanıldığı için bir başka DN örneği şu şekilde verebiliriz:

DN: uid=huseyin, ou=people, dc=simsek, dc=net.

Yukarıdaki örnekte DN’i belirten özelliklerdeki uid, ou, dc ise şema attribute’leridir. Bu attribute’ler nesnelerin DN’leri tanımlar. Ağaç yapısında da attribute’ler düğüm olarak kullanılır.

Alt text

LDAP şemasının ilişkisel veri tabanlarına göre farkı ise daha hızlı okuma işlemi yapılır. Bu nedenle bu yapı ‘write once, read many times’ şeklinde bahsedilir. Okuma yapmak için gerekli yol(path) bilinmelidir ya da bu yol aranarak okuma yapılır.

LDAP yapısı domain controller’larda dizin yapısı için kullanılır. Özellikle şema yapısı domain için çok önemlidir. Active Directory ve SAMBA DC (Domain Controller) LDAP’ı temel olarak kullanılır.