ACIK KAYNAK
 
*
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun. Ekim 15, 2008, 06:57:23 ÖS


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz



Reklamlar
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Ders 27. Samba Sunucusu  (Okunma Sayısı 129 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
fazlamesai
Global Moderator
***
Offline Offline

Mesaj Sayısı: 36



Üyelik Bilgileri
« : 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.
Logged

Linux Linux'tur. Windows Hiç Birşey!!!
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  


[Basit Gorunum]

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.6 | SMF © 2006, Simple Machines LLC

acikkaynak
XHTML 1.0 Geçerli! CSS Geçerli! Dilber MC Theme by HarzeM