|
fazlamesai
|
 |
« : Ağustos 14, 2007, 10:03:31 ÖÖ » |
|
Samba, kısaca UNIX sistemlerle Windows makineler arasında yazıcı ve dosya paylaşımı yapan bir pakettir. Bu sayede UNIX sistem üzerindeki kaynaklar, Windows tarafında kolayca erişilebilecek bir hale gelebilir. Samba kullanan sistemlerde, paylaşılan diskler tıpkı yerel diskler gibi görünecektir. Kullanıcılar, sanki yanı başlarındaki bir diski paylaşıyormuşçasına uzaktaki bir Linux makinaya bağlanabilirler.
SMB(Server Message Block), Windows makineler tarafından kullanılan ve disk ve yazıcı paylaşımına olanak veren bir protokoldür. Bu protokol Windows 2000 ile birlikte CIFS adını almıştır. Linux Samba desteği ile bu işletim sistemleri veya kendi üzerinde bulunan disk ve yazıcıların tüm makineler tarafından paylaşılmasını sağlar.
Samba tüm bunları SMB ağ protokolünü yorumlayarak gerçekleştiriyor. SMB, TCP/IP üzerinden NET BIOS yardımıyla ağ üzerindeki makinalar tarafından kullanılır. NET BIOS da başlı başına bir protokoldür.
Sambanın Özellikleri
Samba Microsoft ağlarında Windows NT ile aynı işi yapabilecek kabiliyette olan bir sunucudur. Bir NT sunucudan bekleyebileceğiniz hemen her şeyi Samba ile hiç bir sıkıntıya düşmeden yapılabilir. İşte Samba ile yapılabileceklerden bazıları:
UNIX'inizi Dünyanın her yerindeki Windows Sunucularına istemci Microsoft ağları için Ana Alana Denetçisi (PDC) Microsoft Ağları için Ana Alan Tarayıcısı (Master Browser) WINS sunucusu WINS için DNS çözünürlüğü Netware sunucuları ile Windows arasında ağ geçidi
Ağınızdaki UNIX, WINDOWS, MAC ağ yazıcılarına Windows'lardan erişim
Mars mail ile, ayarsız e-mail gönderme-alma. Heterojen yapılı bir ağda diğer tüm bilgisayarların sundukları kaynaklardan faydalanma. Sambada iki tane daemon çalışmaktadır;
1 –smbd : Ağ üzerinden yazıcı paylaşımı kullanıcıları için alan denetleyicisi(PDC) olarak görev yapar.
2 – nmbd : WINS görevi yapar. Samba sunucusu ile ilgili konfigürasyon işlemleri /etc/smb.conf dosyasını kullanarak veya X Window da çalışıyorsanız Netconf’da Samba File Server bölümünü kullanarak gerçekleştirebilirsiniz.
Samba Paketlerinin Yüklenmesi Sistemde samba yüklü olup olmadığını anlamak için ; # rpm -q samba yazdığınızda samba-2.0.6 diye bir çıktı alıyorsanız samba yüklü demektir. Eğer samba yüklü değilse ; "package samba is not installed" diye bir hata mesajı alırsınız. Sambayı sisteme yüklemek için konsol da root olarak sırayla; [apache@root] # rpm -i samba-common-2.0.5a-12.i386.rpm [apache@root] # rpm -i samba-2.0.5a-12.i386.rpm [apache@root] # rpm -i samba-client-2.0.5a-12.i386.rpm yazılır. Bu işlemi, grafik ortamdan da kolaylıkla yapabilirsiniz.
SAMBA KONFIGURASYONU
Sambanın çok fazla parametresi vardır ve yapacağı göreve göre değişik konfigürasyonu vardır. Konfigürasyonda ilk başta sambanın konfigürasyon dosyası olan smb.conf deki parametrelerin ne manaya geldiğini anlatılacaktır. Daha sonra da istemcilerin NT veya Windows 9x olmasına göre farklı konfigürasyon yapılacaktır. /etc/smb.conf dosyası 3 ana bölümden oluşur. [global] [homes[ ve [printers] bölümü Bu bölümlerde ön tanımlı değerleri değiştirmek veya aktif hale getirmek için parametrelerin başlarındaki" #" ve" ;" işaretlerini kaldırmanız gerekir. İlk önce bazı parametrelerin karşılıklarını verelim; PDC =Primary Domain Controller (Birincil alan denetleyicisi) Değişken Tanımları %a İstemcinin işletim sistemi ( WinNT, Win9X,) %I İstemcinin IP adresi ( 160.75.2.20) %m İstemcinin NetBIOS ismi %M İstemci DNS adi
Kullanıcılar için Parametreler
%g Kullanıcının birincil grubu %u LINUX kullanıcısı adi (username) %H Kullanıcının Ev (Home) dizini
Sunucu için Parametreler
%h Samba sunucunun DNS adi %L Samba sunucu NetBIOS adi %v Samba versiyonu %T Sistemin o andaki tarih ve saati [global] bölümü Bu kısım genel olarak konfigürasyonun yapıldığı kısımdır. Bu kısımda ; Workgroup = Bu ifade ile sambanın hangi workgroup(çalışma grubu) veya NT domaini(NT alanı) ile bağlantı kuracağı belirlenir Örnek : Workgroup = Baskent Server string =
Bu ifade ile SAMBA sunucusunun Windows ağında hangi isim ile gözükeceğini belirlemek için kullanılır. Windows’taki Bilgisayar tanımı (Computer Description) ile aynı görevi yapar. Örnek : server string = SAMBA SERVER %v hosts allow= Bu parametre ile Samba sunucuya erişim izni verilecek istemcilerin IP ’leri veya isimleri belirlenir. Örnek : hosts allow =160.75. 127.0.0.1 193.140.2. ftp.gazi.edu.tr Örnekteki ifade ile 160.75. , 193.140.2. ile başlayan tüm IP ‘lere , ftp.gazi.edu.tr ve Samba sunucusunun kendisine erişim hakki verilmiştir. hosts deny= Bu parametre Samba sunucuya erişim iznini olmayan IP ‘leri ve istemci isimlerini belirler. Örnek : hosts deny= 160.75.2.1
printcap name = Bu parametre ile yazıcı ile ilgili konfigürasyon dosyasının yeri belirtilir. Örnek : printcap name = /etc/printcap load printers = Bu parametre ile sambanın açılışta /etc/printcap dosyasında belirtilen yazıcıların paylaştırılmasını sağlar. Örnek : load printers = yes guest account=
Sunucunuzda kullanıcı adi olmayanlarında sisteme misafir olarak girmesine izin verir.
Örnek : guest account =pcguest Buradaki pcguest ‘i /etc/passwd dosyasına eklemeniz gerekir. Aksi takdirde misafir hesap olarak nobody kullanılacaktır. log file = Samba sunucuya bağlantı yapıldığında yapılan işlerin kayıtlarının tutulduğu dosyalardır.Burada iki türlü kayıt tutulur. İstemci makine adına göre (%m); kullanıcı simlerine göre (%u). Örnek log file =/var/log/samba/log.%m (istemci makineye göre kayıt tutar.) log file =/var/log/samba/log.%u (kullanıcı adına göre kayıt tutar) max log size = Kilobyte olarak maksimum dosya boyutunu belirler. Örnek : max log size = 50 Security = Bu parametre sambadaki en önemli kısımdır. Şifre ve kullanıcı adini doğrulamasının nasıl olacağı belirlenir. 4 çeşittir ; user , server , domain , share
* user Eğer security =user olarak seçilirse kullanıcı ve şifre doğrulaması için /etc/smbpasswd dosyası kullanılır. Bu dosyadaki kullanıcı adi ve şifresi doğruysa sisteme giriş izni verilir.
* server Bu seçenekte ise şifre ve kullanıcı adi doğrulaması bir NT PDC veya başka bir Samba PDC sunucudaki kullanıcı adi ve şifreye göre doğrulama yapılır.
* domain Bu seçenekte de şifre ve kullanıcı adı doğrulaması bir NT PDC veya başka bir Samba PDC sunucudaki kullanıcı adı ve şifreye göre doğrulama yapılır. Fakat server seçeneğinden farkı ; server seçeneğinde kullanıcı sistemden çıkana kadar NT PDC veya diğer Samba PDC sunucu arasındaki bağlantı devam eder. Buda sunucunun boşu boşuna kullanılması demektir. Ama, domain seçeneğinde sadece kullanıcı adi ve şifresi doğrulanana kadar şifrelerin tutulduğu sunucu ile Samba sunucu arasında bağlantı kurulur. Bağlantı kurulduktan sonra ilişki kesilir.
* share Bu seçenekte, samba sunucu üzerindeki her bir paylaşım için şifre sorgulaması gerekir. Password server= Bu parametre sadece security seçeneği server veya domain olduğu zaman kullanılır ve şifrelerin ve kullanıcıların şifrelerinin hangi sunucuda tutulacağını belirtir. Sunucunun NETBIOS ismi yazılır. Örnek : password server = NTSRV14 encrypt passwords = NT Servis Pack 3 ve sonrası , Windows 98 şifreleri "encrypt" ederek gönderir. Mutlaka bu seçenek "yes" olmalı. Bu ifadeye yes demezseniz, Samba düz text (plain text) olarak şifre gönderir. Fakat bu şifreleri Windows NT kabul etmez. Plain text olarak şifre göndermek için NT ve Windowsların registry ‘leri ile oynamanız gerekir bu da güvenlik açısından iyi değildir. Örnek: encrypt passwords = yes smb passwd file = Bu parametre security seçeneği user olarak seçildiği zaman kullanılır, şifrelerin ve kullanıcı adlarının hangi dosyada tutulacağını belirler. Örnek : smb passwd file = /etc/smbpasswd
Samba kullanıcısı eklemek için security =user seçilmiş olmalıdır. Daha sonra;
1- "smbadduser linux_ kullanıcı_adı:samba_kullanıcı_adı" komutu yürütülür. Örnek :smbadduser onder:onder (kullanıcı adları ayni olmak zorunda değildir!!)
2- Tüm kullanıcıları smbpasswd dosyasına eklemek için # cat /etc/passwd |mksmbpasswd.sh >> /etc/smbpaswd komut kullanılır. Eğer NIS(Network Infomation Service) kullanıyorsanız; # ypcat passwd fakat |mksmbpasswd.sh >> /etc/smbpaswd komut kullanılır. daha sonra kullanıcılara şifre vermek için ; "# smbpasswd kullanici_adi" komutu kullanılmalıdır.
3- " smpasswd -a kullanici_adi linux /etc/passwd dosyasındaki kullanıcıyı smbpasswd ‘na aynı isimde ekler. username map = Bu seçenekte ise Samba sunucuda olmayıp da NT de bulunan kullanıcıların Samba sunucuda hangi kullanıcı adına göre işlem yapacağı dosyanın yerini belirtir. Bu dosyanın içeriği : # Unix_name = SMB_name1 SMB_name2 ... root = administrator admin nobody = guest pcguest smbguest burada NT deki administrator ve admin kullanıcılarının linux teki root kullanıcı haklarına sahip olduğu belirtilmiştir. Örnek : username map = /etc/smbusers include = /usr/local/samba/lib/smb.conf.%m Bu parametre ile istemci makineler için farklı farklı konfigürasyon dosyası oluştura bilirsiniz. (sadece istemci adına göre olabilir yani %u olmaz) Örnek : include = /usr/local/samba/lib/smb.conf.hidiv Bu şekilde hidiv makinesi için özel bir konfigürasyon dosyası açılmış oldu.artık hidiv makinesi için sadece bu dosyadaki konfigürasyonlar geçerli olacaktır. socket options = Burada sambanın hangi socket seçeneğini kullanacağı belirtilir. Örnek : socket options= TCP_NODELAY interfaces =
Samba sunucunun birden fazla subnet için geçerli olmasını sağlar
Örnek : interfaces= 192.168.1.5/24 192.168.2.3 /24 veya interfaces = 192.168.1.5/255.255.255.0 192.168.2.3/255.255.255.0 netbiosname = Samba sunucunun NT NETBIOS ismi Örnek: netbios name=apache local master = Bu parametre ile samba sunucunun yerel ağda yetkili sunucu olup olmayacağını belirler. Örnek : local master =yes os level =
Samba sunucu ile Windows ağındaki diğer bilgisayarlar ile ağda yetkili olmak için yarışa girer. Bu parametre ile samba sunucunun yarışa katılıp katılmayacağı ,katılacak ise yarıştaki konumunu belirler. En fazla 255 olabilir.
Bazı sistemler için os level aşağıdaki gibidir;
Windows NT Server 4.0 = 33 Windows NT Server 3.51 =32 Windows NT Workstation 4.0 =17 Windows NT Workstation 3.51 =16 Windows 98 =2 Windows 95 =1 Windows 3.1 =1
Bu durumda samba sunucuyu PDC (Primary Domain Controller ) olarak kullanacaksanız os level en az 34 olmalı yarışa hiç girmesini istemiyorsanız 0 olmalı. Burada önemli bir husus ise eğer ağınızda daha önceden bir NT PDC varsa ve hala kullanmak istiyorsanız samba sunucunun os leveli NT PDC den küçük olmalıdır. Aksi takdirde NT PDC de sorunlara yol açar. Yani ağda bir PDC NT sunucu varsa samba yi os level=34 ile kullanamazsınız. domain master =
Bu parametre ise samba sunucunun tüm subnetler için yetkili sunucu olup olmayacağı belirlenir. Daha öncede belirttiğim gibi ağ da bu isi yapan bir NT PDC varsa bu seçeneğe "no" olarak belirtin. Örnek : domain master =yes domain logons= Bu parametre ile Windows ’lar için samba domain logon sunucu olup olmaması belirlenir. Örnek : domain logons =yes preferred master= Bu parametre ile samba sunucunun yetkili sunucu olmak için katıldığı yarışta biraz daha öncelikli olmasını sağlanır. Örnek : Preferred master=yes Diyelim ki iş yerinizde 4 farklı bölüm var ve bu bölümler için 4 ayrı NT sunucu var. Bu 4 NT sunucunun yaptığı işi bir tek samba sunucu ile yapabilirsiniz. Bunu için netbios aliases seçeneği kullanılır. Örneğin muhasebe ,sistem , yönetim , hesap diye 4 ayrı workgroup ve bunlara ait sırayla server1 server2 server3 server4 diye 4 NT tane sunucular olsun . netbios aliases = server1 server2 server3 server4 include = /etc/smb.conf.%L Include ifadesi ile her bir isim için ayrı bir konfigürasyon dosyası oluşturulması sağlanır.(dosyayı kendinizin oluşturmanız lazımdır.) Mesela , server1 için /etc/smb.conf.server1 dosyası oluşturduktan sonra içine muhasebe workgroup’u için gerekli konfigürasyonları yapabilirsiniz. logon script = Bu parametre eğer samba sunucu PDC olarak ayarlanmışsa kullanıcıların sisteme ilk girdiğinde bazı scriptlerin çalışmasını sağlar logon script= %U.bat ile scriptin her kullanıcı için çalışmasını sağlar. %m ile de her istemci makine için çalışmasını sağlar. Örnek : logon script =%U.bat Ama script tin çalışması için netlogon diye bir paylaşımın açılması lazım. (nasıl açılacağı aşağıda belirtilecektir.)ve bu scriptin bir dos editöründe yazılması lazımdır. logon path = Bu parametre ile kullanıcıların Profile ‘lerını linux üzerinde tutabilirsiniz Örnek: logon path = \\%L\Profiles\%U %L samba sunucunun netbios ismi %U kullanıcı adı bunun içinde [homes] bölümünde anlatıldığı gibi Profiles paylaşımı oluşturulmalıdır wins support = Bu parametre ile samba sunucunun WINS olarak çalışıp çalışmayacağı belirlenir. Örnek : Wins support =no wins server =
Bu parametre ile Ağ daki NT WINS sunucunun IP adresi belirlenir.
Örnek : wins server = 160.75.2.4 Yukarıda belirtilen wins support ve wins server parametrelerinin ikisi ayni anda kullanılamaz ve Samba sunucu secondary wins ve backup domain server olarak kullanılamaz. default case =
Bu parametre ile ön tanımlı olarak Büyük veya küçük harf kullanılacağı belirlenir.
Ön tanımlı olarak küçüktür. Örnek : default case =lower case sensitive = Bu parametre ile şifre ve kullanıcı adi doğrulaması yapılırken büyük küçük harf ayrımı yapılıp yapılmayacağı belirlenir. Örnek : case sensitive=no [homes] bölümü Bu bölüm samba sunucu üzerinde disk ve yazıcı paylaşımlarının yapıldığı kişimdir. [homes] comment = Home Directories browseable = no writable = yes iki parantez ([ ]) içindeki ifade paylaşımın adini belirler. comment ifadesi ile paylaşım hakkında bilgi verir. browseable ifadesi ile paylaşıma izin verilen kişiler dışındakilerin paylaşımı görmesine izin verilip verilmeyeceği belirlenir. writable ifadesi ile izin verilen kişilere yazma izni verilip verilmeyeceği belirlenir. [pub] comment = TEMP dizini path = /tmp writable = yes browsable = yes public =yes guest ok =yes yukarıda path ifadesi ile dizinin tam adresi ifade edilir. public ile herkes tarafından kullanıma açılıp açılmayacağı belirlenir. guest ok ile misafir kullanıcılara erişim verilip verilmeyeceği belirlenir. admin users =
Bu ifade ile belirtilen kullanıcılara (onder , ender) paylaştırılan dizinler üzerinde root yetkisi verilir.
Örnek : admin users =onder,ender
valid users = Bu parametre ile paylaşım için izin verilen kullanıcılar belirtilir Örnek : valid users =onderl , ender , balaban , subaşı Bu valid users ifadesi grup içinde belirtilebilir
valid users = @linux Burada ise linux grubundaki kullanıcılara için izinler söz konusudur.
invalid users = Yukarıdakinin tam tersidir, paylaşıma erişim izni verilmeyecek kullanıcıları belirtir.
Örnek : invalid users = ozgur
write list = Yazma izni verilen kullanıcıları veya grupları belirler. Örnek write list =onder ender @baskent Burada onder ender kullanıcılarına ve baskent grubuna izin verilmiştir. read list Okuma izni verilen grupları ve kullanıcıları belirler. max connection = Belirtilen paylaşıma bir anda bağlanacak kullanıcı sayısını belirler. Örnek max connection =20 create mode =
Bu parametre ile dosyaların hangi modda açılacağı belirlenir Örnek : create mode =0755 Eğer samba sunucuyu alan denetleyicisi olarak kullanacaksanız; Global kisminda :
logon scripts =%U veya %m İfadesini seçmişseniz bir tane netlogon paylaşımı açmanız lazım. [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes writable = no share modes = no ifadeleri ile netlogon paylaşımını belirledikten sonra /home dizini altında netlogon dizini açmanız lazım ve bu dizine dos altında yazdığınız mesela ismi logon.bat olan dosyayı kopyalayın dosyanın içine açılışta otomatik olarak çalışmasını istediğiniz ifadeler yazın mesela net use z: \\samba_sunucu\homes net use t: \\samba_sunucu\tmp
yukarıdaki ifade ile kullanıcının samba sunucu üzerindeki home dizini Z olarak samba sunucu üzerindeki tmp dizini ise T olarak Windows ve NT (No Thanks) lerde My computer (Bilgisayarım ) altında oluşturur. Aşağıdaki ifade ile de kullanıcıların Profiles Linux altında saklanabilir
[Profiles] comment =User Profiles path = /home/profiles browseable = no guest ok = yes [Printers ] bölümü [Printers ] comment = All Printers path = /tmp/ browseable = no guest ok = no writable = no printable = yes burada yukarıdaki homes kısmındaki parametrelerden tek farklı parametre printable , manası buraya çıktı gönderilebilir demektir. Linux üzerinden yazıcı kullanacaksanız X-Window da çalışan “printtool” programı ile yazıcıyı tanıtabilirsiniz.
|