Linux Samba Sunucusu

#1
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 ondernder (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.

Sambanın PDC Sunucu Olarak WINDOWS Alanı (DOMAIN) için Konfigürasyonu
Burada samba sunucu Windows 9X alanı için PDC olarak konfigürasyonu anlatılacaktır. Bu konfigürasyon sonucu Windows 9X ler için şifre ve kullanıcı doğrulaması Samba sunucuda yapılır . Aşağıda örnek bir konfigürasyon belirtilmiştir.
Not : Apache = SAMBA sunucu adı
TE = Workgroup adi




/etc/smb.conf dosyasi

[global]

#NetBIOS adı hostname ile ayni ise kullanmaya gerek yok
netbios name = apache
workgroup = baskent
security = user
domain logons = yes
encrypt passwords = yes
os level = 65
domain master = yes
preferred master = yes
local master = yes
wins support = yes
logon script = login.bat
logon path = \\apache\profile\%U


[homes]

browseable = no
writable = yes
comment = kullanicilarin home dizini
[netlogon]
path = /home/samba/netlogon
writable = no
guest ok = no
comment = PDC netlogon paylasimi
[profile]
path = /home/samba/profile
writeable = yes

#genel paylasim
[public]
path = /usr/public
browseable = yes
public = yes
comment = genel paylasim
[Printers ]

comment = All Printers
path = /tmp/
browseable = no
guest ok = no
writable = no
printable = yes
Yukarıdaki kısım linux samba sunucu ile ilgili kısımdır bir de bu isin Windows yönü var.
Aşağıdaki gibi:
1. Start(Basla) -> Setting(ayarlar) - > password(şifre)

Kısmından User Profile kısmını seçin ve yukarıda seçilen radyo butonların seçin, eğer kullanıcı hesabiniz daha önceden Windows da varsa ve Windows şifreniz samba şifrenizden farklıysa şifrenizi samba sunucudaki şifre ile Change password (şifre değiştir ) kısmından değiştiriniz.
TCP/IP protokolleri yüklü değilse yüklenmeli ve DNS WINS GATEWAY(ağ geçidi)
IP adresi sisteminize göre ayarlanmalı. (artık burası size kalmış !!) eğer WINS olarak samba sunucuyu vermişseniz samba sunucunun IP si yazılmalı.

2. Start(Basla) -> Setting(ayarlar) - >Control Panel (Kontrol paneli) ->network kısmından IDENTIFICATION (tanımla kısmına tıklayın ve) aşağıdaki gibi

Bilgisayar adini ve workgroup’u belirtiniz.

3- Start->Setting-> Control Panel -> Network kısmından Client for Microsoft Networks (Windows ağları için istemci) kısmına tıklayın ve “Logon to Windows NT DOMAIN ” kismindaki radyo butonunu isaretleyin ve alt kisimdaki bosluga alaninizi veya smb.conf dosyasindaki "Workgroup " parametrisinde belirttiginiz ifadeyi yaziniz..


Windows’ unuzu reboot ettiğiniz zaman daha önce çıkan kullanıcı ve şifre kısmına ek olarak bir de etki alanı (domain)adı belirecektir
Bu şekilde sadece linux samba sunucudaki olan kullanıcılara ağı (network ) etkin kullanım izni verilir.
Kullanıcı adi ve şifresi samba sunucuda doğrulanan kullanıcılar ağ komşuları(Network neighborhood) kısmında samba sunucudaki dosyalarına ve izin verilen paylaşımları kullanılabilir.
Sambanın NT SUNUCU Olduğu Ağda Normal PDC Olmaksızın Konfigürasyonu
Burada belirtilmesi gereken önemli husus eğer bir samba sunucu varsa bu demek değildir ki samba sunucu mutlaka PDC olmalı. Samba sunucu ağ daki diğer Windowslar gibi normal bir bilgisayar olabilir. Windows lar yukarıdaki şekilde görüldüğü gibi bir NT alanına logon olmaları gerekmez. kullanıcılar daha önce olduğu gibi "etki alanı " olmaksızın sisteme girip samba sunucuya erişebilir ama Windowslara yine samba sunucudaki kullanıcı adi ve şifreyle girmek şartıyla , ağ komşularından samba sunucuya erişebilir. Bu sayede samba sunucu kapalı bile olsa kullanıcılar sisteme girip diğer Windowslarla normal paylaşımını yapabilir. samba ile isi olmayan kişiler için sambada kullanıcı açmaya gerek kalmaz.
Bunun için yukarıda saydığımız sambayı sunucu yapan parametreleri değiştirmemiz gerekir.
Bu sayede sisteminizde NT sunucu olsa bile siz sambayı NT sunucu ile çakışma olmadan kullanabilirsiniz. Bu durumda samba sunucu normal ağdaki bir makineden farksız hale gelecektir.
Bu iş için gerekli konfigürasyon dosyası:
netbios name = apache
workgroup = baskent
security = user
domain logons =no
encrypt passwords = yes
os level = 0
domain master = no
preferred master = no
local master = no
wins support =no
[homes]
browseable = no
writable = yes
comment = kullanicilarin home dizini

#genel paylasim
[public]
path = /usr/public
browseable = yes
public = yes
comment = genel paylasim
[Printers ]
comment = All Printers
path = /tmp/
browseable = no
guest ok = no
writable = no
printable = yes
ve Windowslarda aşağıdaki gibi olan LOG ON TO WINDOWS NT DOMAIN seçeneği radyo butonu kaldırılarak pasif hale getirilir

Samba Sunucunun WINDOWS NT ler için PDC Olarak Konfigürasyonu
WINDOWS NT ler için SAMBA sunucunun PDC (Primary Domain Controller) (birincil alan denetleyicisi) olması için yukarıdaki 4. kısımda belirtilen SAMBANIN WINDOWSLAR için PDC konfigürasyon dosyasındaki parametreler uygulanır fakat NT ler için ek olarak (LINUX SAMBA SUNUCU kısmında) birkaç bir şey yapmak lazım.
Samba sunucunun NT ler için PDC olması için her NT makinesi için samba sunucunun /etc/passwd dosyasında trusted account (güvenilir hesap) açılması lazımdır.
Su şekilde yapılır;
Her NT nin isminin sonunda $ işareti olan bir kullanıcı eklenir mesela ismi wishmaster olan bir NT için " wishmaster$ " kullanıcısı açılır. Bu kullanıcının şifresi shell i home dizini olmasına gerek yoktur. Örneğin /etc/passwd dosyasındaki wishmaster adli NT makinesi için açılan hesap;
wishmaster$:*:1001:500: güvenilir hesap: /dev/null:/dev/null seklinde olabilir. Ama $ olması şarttır.
Daha sonra konsolda root olarak aşağıdaki komut çalıştırılır.
# smbpasswd -a -m wishmaster
Added user wishmaster$
Password changed for user wishmaster$
#
bu işlem tüm NT ler için ayrı ayrı yapılır.(Dikkat edilirse smbpasswd komutu kullanılırken NT istemci için açılan hesabin sonundaki $ kullanılmadı)
Bu isin NT yönü ise
1-Start -> Setting - >Control Panel ->network kısmına geçin . Aşağıda görüldüğü gibi domain kısmına kendi alanınızı yazın (bu isi yaparken ağda herhangi bir yere aktif bağlantınız varsa bunu Desktop dalı Network Neighborhood kısmına sağ tıklayıp "Disconnect Network Drive" kısmından tüm bağlantılarınızı kesiniz)

-
2- Start -> Setting - >Control Panel ->network deki Protocols kısmından Windows 9X lerde olduğu gibi TCP/IP protokolü yoksa eklenir. Gerekli ayarlamalar yapılır(DNS WINS IP GATEWAY)
3- Start -> Setting - >Control Panel ->network Services kısmından Workstation yoksa eklenir
4-Tüm bunları yaptıkdan sonra Binding kısmi seçilir .


Sistemi yeniden açtığınızda samba sunucudaki kullanıcı ve şifre ile NT ler logon olabilirsiniz.
Samba Sunucunun Şifre Sorgulamasını NT Sunucudan Yapacak Şekilde Konfigürasyonu
Buradaki konfigürasyonda alanda WINS ve PDC isini yapan bir NT sunucu olması durumuna göre samba yapılandırılması yapılacaktır. Kullanıcı şifreleri ve kullanıcı adları “password server “ parametresi ile belirtilen NT sunucuda tutulacak. Şifre doğrulaması NT sunucu üzerinden gerçekleşecek ve script ile istemcilere kullanıcının samba üzerindeki home dizini bağlaması (tabii bu kullanıcıların samba sunucu üzerinde de hesabi olması lazım) yapılacaktır.
/etc/smb.conf dosyası
[global]

netbios name = apache
workgroup = baskent

security = domain
domain logons = no
password server = ONDER

os level = 0
domain master = no
preferred master = no
local master = no

wins support = no
time server = no


[homes]

browsable =no
writable =yes

[sistem]
path = /usr/sistem
browseable = no
writeable = yes
valid users = onder, .baskent
comment = sistem dizini dosya paylasimi
bunları /etc/ smbpaswd dosyasına yazdıktan sonra NT sunucuda Server Manager for Domain kullanılarak samba sunucunun NETBIOS ismi NT alanına eklenir.
Samba sunucuyu NT alanına eklemek için tüm deamonlar
/etc/rc.d/initd/smb stop komutuyla durdurulur
ve smbpaswd –j DOMAIN_ADI -r NT_PDC_ADI
örnegin bizim domain BASKENT ve NT sunucu adi NTSRV1 idi biz
#smbpasswd –j BASKENT–r NTSRV1 komutu ile samba sunucu NT alanına eklenir.
Bu komut sonucu /etc altında TE.APACHE:mac adli bir dosya oluşur. Bu dosyanın güvenliği önemlidir (APACHE samba sunucu adidir.) bunun için
# chmod 600 /etc/TE.APACHE.mac komutunu uygulamakta fayda var.
NT sunucu üzerindeki C:\WINNT\system32\Repl\Import\Scripts dizinine yazacağınız logon.bat isimli script ile kullanıcının samba üzerindeki home dizini my computer(bilgisayarım) altında Z ye kadar herhangi bir isimde bağlanabilir
Bunu için logon.bat dosyasının içine
1- Tüm istemciler NT ise
subst z: \\apache\%username%
yazarak kullanıcıların apache isimli samba sunucudaki home dizinlerinin istemci makinede z: sürücüsü olarak gözükmesi sağlanır. Subst komutu Windows ta yoktur. %username ifadesi ile bu kısım her login olan kullanıcının adi olur. Örneğin; onder kullanıcısı login olunca bu ifade;
subst z: \\apache\onder yerine geçer.
2-Tüm Windows veya hem NT hem de Windows varsa
net z: \\apache\homes
ile home dizinleri istemci makinada Z sürücüsü olarak oluşur.
Samba Daemonunun Çalıştırılması
Tüm bu isleri yaptıktan sonra sıra sambanın çalıştırılması için
# /etc/rc.d/initd/smb start
bu komut ile smbd ve nmbd aktif hale gelecektir
samba yi durdurmak için
# /etc/rc.d/initd/smb stop
smb.conf dosyasında değişiklik yaptıktan sonra
# /etc/rc.d/initd/smb restart
komutu ile değişiklik aktif hale gelir.
Her açılışta sambanın çalışması için root olarak
# setup
komutunu yazın , daha sonra "system services" kısmından smb yi "boşluk " tuşuyla işaretleyin böylece samba her açılışta çalışacaktır.
Samba Komutları
testparm : smb.conf dosyasındaki hataları(yanlış yazılım , iki zıt durumun kullanılması gibi) bulmaya yarar. Çalıştırmak için konsolda;
# testparm komutunu vermeniz yeter.
smbclient : LINUX ten istemcilere erişmeye yarayan ftp benzeri bir komut
Örnek smbclient \\onder\d –U ozgur
Bu komut ile ozgur kullanıcısının onder adli istemcinin d sürücüsüne erişmesi için kullanılır. Şifre sorulur , şifre doğruysa kullanıcının d ye erişimi sağlanır.
smbstatus : samba sunucuya bağlı kullanıcıları gösterir.
smbprint : LINUX üzerinden yazıcıdan çıktı almak için kullanılan komut
smbmount: istemcilerin paylaşımlarını mount etmek için kullanılır.
Örnek : smbmount "\\onder\tmp" -c 'mount /mnt -u 123 -g 456'
Örnekte onder istemcisinin tmp dizini uid si 123 gid 456 olan kullanıcı tarafından /tmp altına mount edilir.

Yukarıda gerçekleştirdiğimiz konfigürasyon işlemlerine yardımcı birçok uygulama da Linux ile birlikte gelmektedir. Örneğin, Sambanın konfigürasyonunu kolaylaştırmaya yönelik Samba Configuration uygulamasına yapılandırma-ağ-samba configuration bölümünden erişebilirsiniz. Bu programla kod kalabalığından kurtularak konfigürasyon işlemini kolayca gerçekleştirebilirsiniz.
 
Üst