Linux Samba Sunucusu

'Linux işletim sistemi' forumunda semyav5mitq tarafından 10 Ocak 2009 tarihinde açılan konu

  1. Sponsorlu Bağlantılar
    Linux Samba Sunucusu konusu 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.
     

Bu Sayfayı Paylaş