[Nasıl] Samba Yapılandırması

Başlatan heartsmagic, 28 Mayıs 2008 - 09:06:33

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

heartsmagic

Aşağıda okuyacağınız belge tarafımdan Türkçeye çevrilmiş olup asıl kaynak şu adrestedir:
https://help.ubuntu.com/community/SettingUpSamba

Çeviri hızlı bir şekilde ve kısa bir sürede yapıldığından imla hataları, yanlış menü isimleri hatta yanlış menü tarifleri olabilir.
Belge ve adı geçen yazılım tarafımdan denenmemiş olup, tavsiyeler doğrultusunda ekleme/değiştirme/çıkartma yapılabilir.

Heartsmagic



Lütfen bu başlık altında soru sormayın. Probleminizi yeni bir başlıkta veya hazırda var olan bir başkasında dile getirin.


Samba nedir ve ne zaman ihtiyacımız vardır?

Özetle: Samba projesi 1992'de Andrew Tridgell tarafından başlatılmıştır. Kendisi, Microsoft Windows kullanan bilgisayarlar ile dosya ve yazıcı paylaşımı yapmayı sağlayan araçlar topluluğudur. SMB ağ protokolünü kullanır ki bu Windows ağ uygulamasının kalbidir.

Samba şu işler için kullanılabilir:

   * Windows (veya Samba istemcileri) için bir sunucu vazifesi görme: dosya ve yazıcı paylaşımı. Buna PDF sahte-yazıcılar da dahildir, böylece ağınızdaki her yazıcı PDF dosyaları yazabilir.
   * Bir Windows ağında alan denetleyicisi olarak iş görmek (kullanıcıları doğrulamak vb.)
   * Başka bazı karışık işleri yapmak. Örneğin, Windows alan denetleyicisini kullanarak Linux/UNIX kullanıcılarının doğrulamasını yapmak.

Samba GPL lisansı altında tamamen özgür bir yazılımdır. Samba hakkında daha fazla bilgiye http://www.samba.org adresinden ulaşılabilir.

Sambaya ihtiyacınız var mı?

Samba bir meta pakettir ve sunucularda kurulmak için tasarlanmıştır. İstemciler bu meta pakete ihtiyaç duymazlar.
Samba meta paketi istemcilerin şunları yapmak istemesi durumunda gerekli değildir:

   * Bir Windows makine üzerindeki paylaşılan dosya, sürücü ve yazıcılara ulaşmak. SAdece smbfs eklentisine ihtiyacınız vardır.
   * Bir Linux makineye bağlı yazıcınızı Windows kurulu makine üzerinden kullanmak. CUPS yazıcıyı ağ üzerinden erişilebilir olarak ayarlayabilir.
   * İki Linux makine arasında dizin paylaşımı yapmak. Bir makine üzerinde NFS kullanabilir ya da FTP sunucu açabilirsiniz. Böylece diğer makinelerden FTP istemcisi ile bu makineye ulaşabilirsiniz.

Neler kurulacak?

- Sunucu -

Eğer bilgisayarınızın bir Samba sunucu gibi işe görmesini (dosya veya yazıcı sunucusu) istiyorsanız herhangi bir metotla sambayı kurun.

sudo aptitude install samba

- İstemci -

Samba paketi istemciler için gerekli değildir. Bunun yerine smbfs kurun (aşağıya bakın).

Eğer bir Samba sunucuya bağlanmak istiyorsanız (Samba çalıştıran bir Ubuntu ya da Windows sunucu) iki seçeneğiniz vardır. smbclient komutunu kullanabilir ya da doğrudan samba dosya sistemini smbfs ile bağlayabilirsiniz.

- Komut satırı -

Ubuntu herhangi bir samba sunucuya hiçbir şey yapmadan smbclient ile bağlanabilir. smbclient bir ftp bağlantısına benzer çalışır. Bir kere bağlandıktan sonra ls, cd, put, get gibi komutları kullanabilirsiniz.

- smbfs -

Bu paket istemcilerin samba paylaşımlarını yerel bir disk gibi bağlamalarına imkan sağlar. Çoğu kullanıcı bu tercihi kullanır. Herhangi bir metotla smbfs'yi kurabilirsiniz. Bu SMB paylaşımlarını bağlamak için gerekli paketleri kuracaktır:

sudo aptitude install smbfs

Bilgisayarı yapılandırma

Ağ yapılandırmasını aşağıdaki menü ile açın.

Sistem -> Yönetim -> Ağ

Ortadaki Genel sekmesine tıklayarak devam ediyoruz.

- Ayarlarınızı girin -

Alıntı Yap
Host Ayarları

Host adı:       <bilgisayarınız>
Alan adı:       <bulunduğunuz alan adı>

Windows Ağı Oluştrma

Windows ağı oluşturmayı işaretliyoruz

Tanım:       <Ne isterseniz>
Domain/Workgroup:  <alan adı , çalışma-grup isminiz>

Fesity ve Gutsy altında bu ayarlar Sistem -> Yönetim -> Paylaşılan Klasörler altındadır.

Not: Eğer bilmiyorsanız ağ yöneticinize sorabilirsiniz. Klasik çalışma grubu ismi "workgroup" veya "mshome" olabilir.

Buradaki önemli ayarlar zaten önceden doldurulmuş olan host ismi ve alan adı/çalışma grubu kısmıdır. Tüm pencerelerdeki Tamam tuşlarına basın ve Windows makinelerle iletişimin ilk kısmını böylece bitirmiş olun.

Aynı zamanda "/etc/samba/smb.conf" dosyasını elle düzenleyip daha sonra samba servisini durdurup yeniden başlatabilirsiniz.

Not: Bir "Windows Ağı" bölümü seçmeden de devam edebilirsiniz.


SMB paylaşımlarını gezinme

Ubuntu ve Gnome bir Windows ağ paylaşımındaki dosyalara ulaşmayı kolaylaştırır.

Bilgisayarım menüsünü açın, Ağ'a tıklayın. Bir "Windows ağ" simgesi göreceksiniz, açın. Bir sonraki pencerede ağınızda bulunan bütün alan adı/çalışma-grupları görülecektir. Her alan adı/çalışma-grubu altında bilgisayarları göreceksiniz (tabi paylaşım yapanları). Bilgisayarların paylaşımlarına ulaşmak için çift tıklayın. Daha kolay olabilir mi?

Bir bilgisayarın paylaşımlarını göstermeden önce sistem sizden bir kullanıcı adı ve parola sorabilir. Bağlanmak istediğiniz bilgisayar için geçerli parola ve kullanıcı ismini girmeniz gerekir. Ek olarak bu parolayı keyring ile daha kullanışlı olması açısından saklayabilirsiniz.

Not: Ön tanımlı samba kurulumu parolalar ile eşleşme yapmaz. Bunu yapmak için Windows makineden Ubuntu ev dizinine ulaşmak isteyen her kullanıcı için "smbpasswd" komutunu yürütmek zorunda kalabilirsiniz.

Grafiksel yapılandırma

Bu bölüm grafiksel araçları tercih edenler içindir. Bu bölüm size Ubuntu ve Windows veya Ubuntu arasında SMB paylaşımlarını kullanmanız için çabuk başlangıç sağlayacaktır. GUI metodu kolay olmasına rağmen şu nedenlerden ötürü daha az güvenlidir:

   1. Paylaşımlar genele açıktır (örneğin gezinebilirdir)
   2. Paylaşımlar için parola konulamaz (herhangi biri tarafından bağlanılabilir)

Bir servis (sunucu) kuruduğunuzu ve istenmeyen erişimleri engellemek için ateş duvarı (firewall) kurmanız gerektiği konusunu aklınızdan çıkartmayın. Aynı zamanda aşağıda değinilen "paylaşımlarınızı gezinilebilir olmaktan nasıl saklarım ve nasıl parola atayabilirim" konularına da göz gezdirin.

- Ubuntu Sunucu -

Bu bölüm Ubuntu'yu bir Samba sunucu olarak ayarlar.

-- Bir klasörü paylaşma --

Bir dizini paylaşmak için bu dizine erişim hakkınız olması gerekir. Ev dizininize gidin ve Belgelerim dizinine sağ tıklatın, açılan menüde "Dizini Paylaş" bölümünü seçin.

Eğer Samba kurulu değilse "Paylaşım servisi kurulmadı" mesajını alacaksınız. "Windows ağ desteğini (SMB) kur" şıkkını seçin ve "Unix ağ desteğini (NFS) kur" seçenğini iptal edin. Ardından "Servisleri kur" seçeneğini yürütün.

Eğer "samba .deb bulunamadı" gibi bir mesaj alırsanız terminali açın ve ardından şu komuyu yürütün:

sudo aptitude update

Ardından tekrar SMB desteğini kurun. Ubuntu sambayı indirip kuracaktır. Samba kurulduktan sonra Belgelerim dizinini sağ tıklayıp "Dizini Paylaş" seçeneğini işaretleyin. "Dizini Paylaş" penceresi çıkacaktır. "Windows ağları (SMB)" kısmını seçin ve aşağıda paylaşımınız için bir isim verin. Eğer dizinin yazılabilir olmasını da istiyorsanız "Sadece okunabilir" kısmındaki işareti kaldırın. "Paylaş" düğmesine tıklayın.

- Windows XP Sunucu -

Bu bölüm XP'yi bir samba sunucu olarak ayarlar.

-- Bir klasörü paylaşma --

1. Windows sunucuda paylaşmak istediğiniz klasöre gidin. Dizine sağ tıklayın ve "Paylaşım ve Güvenlik" sekmesine geçin. Açılan pencerede "Paylaşım" sekmesine geçin. "Ağ Kurulum Sihirbazı" seçeneğini tıklayarak ağınızdaki paylaşımları ayarlayın. Sihirbaza göre devam edin. Unutmayın ki ön tanımlı çalışma grubu ismi MSHOME'dur. Bunu istediğiniz gibi değiştirebilirsiniz fakat tüm bilgisayarlarınız aynı çalışma grubunda olmalıdır. Son olarak size "Dosya ve yazıcı paylaşımını aç" seçeneği sunulacaktır. Bu istediğiniz seçenektir, sihirbazda devam edin. Ayarların etkin olması için bilgisayarınızı yeniden başlatmanız gerekecektir.

2. Bilgisayar açıldıktan sonra paylaşmak istediğiniz klasöre gidin. Sağ tıklayın ve "Paylaşım ve Güvenlik" sekmesine geçin. Açılan pencerede "Paylaşım" sekmesine geçin. "Ağda bu klasörü paylaş" seçeneğini işaretleyin. Klasöre bir paylaşım ismi verin. Bu Ubuntu kullanıcılarına Samba ile sadece okuma hakkı verecektir. Okuma/yazma erişimi için "Ağ kullanıcılarına dosyalarımı değiştirme izni ver" seçeneğini işaretleyin. Uygula düğmesine tıklayın ve pencereyi kapatın.

- Bir Samba sunucusuna bağlanma -

Ubuntu veya XP sunucunuzu yukarıdaki anlatıldığı şekilde yapılandırın.

-- Ubuntu istemci --

Ubuntu istemcide üst paneldeki Yerler -> Ağ bölümünü kullanın. "Windows ağ" simgesini göreceksiniz ve paylaşılan dizinlerin burada erişilebilir olması gerekir. Parola sorulacaktır, boş bırakın ve Bağlan düğmesine tıklayın.

Alternatif Yol: Üst menüden Yerler - Sunucuya Bağlan bölümünü seçin. "Servis Türü" olarak "Windows paylaşımını" seçin. "Sunucu:" kısmına sunucunun IP numarasını "Paylaşım:" kısmına paylaşılan dizinin ismini yazın. "Bağlan" düğmesine tıklayın. (Parola gerekmez).

Eğer SMB paylaşımınızı IP adresi yerine host ismiyle bağlamak istiyorsanız, /etc/hosts dosyanızı düzenleyin ve samba sunucunuzu ekleyin (Sentaks: IP Adresi host-adı)

Alıntı Yap
192.168.1.100    host-adı

host-adı = samba sunucu isminiz

-- Windows XP İstemci --

Windows üzerine Bilgisayarım'a tıklayın ve "Ağ Bağlantılarım" kısmına geçin. Ubuntu sunucunuza gidin, parola gerekmeden paylaşımınız erişme açık olacaktır.

Alternatif Yol: Üst menüden Araçlar -> Ağ Sürücüsü Bağlan kısmına geçin. SMB paylaşımınız için uygun bir harf seçin (Ön tanımlı z:). "Dizin:" kısmına
\\sama_paylaşım_ip_adresi\paylaşım olacak şekilde adresi girin. Windowsu açtığınızda kendiliğinden bu paylaşıma bağlanmak istiyorsanız, "Girişte tekrar bağlan" kısmını işaretleyin. "Bitti" düğmesine tıklayın. Bir diyalog kutusu açılacaktır. Samba kullanıcı isminizi ve parolanızı girin. "Tamam" tuşuna basın.

Eğer SMB paylaşımınızı IP adresi yerine host ismiyle bağlamak istiyorsanız, C:\WINDOWS\system32\drivers\etc\hosts dosyasını düzenleyin ve samba sunucunuzu ekleyin. (Sentaks: IP Adresi host-adı)

Alıntı Yap
192.168.1.100    host-adı

host-adı = samba sunucu isminiz

Samba İstemci Elle Yapılandırması

Bu bölümde bir Ubuntu istemci üzerindeki SMB dosya dosya sunucusunu elle yapılandırmayı bağlanmayı göreceğiz. smbclient ftp bağlantısı benzeri bir komut satırı aracıdır. smbfs ise bir SMB dosya paylaşımı bağlamanıza yarar. Bir kere SMB paylaşımı bağlandıktan sonra yerel disk gibi olur. SMB paylaşımına dosya gezgininiz ile ulaşıp gezinebilirsiniz. Örneğin nautilus, konqueror, thunar, vb.)

-- Bir Samba dosya sunucusuna bağlanma --

--- Komut Satırı ---

Komut satırından bağlanma FTP ile benzerdir.

Genel SMB paylaşımlarını listeleme:

smbclient -L //sunucu -U kullanıcı


Bir SMB paylaşımına bağlanma:

smbclient //sunucu/paylaşım -U kullanıcı


Daha sonra parola girilir.

Doğrudan şöyle de bağlanılabilir:

smbclient //sunucu/paylaşım -U kullanıcı%parola


ancak burada parola ekranda görülecektir.

Bağlandıktan sonra şuna benzer bir ekranla karşılaşacaksınız:

Alıntı Yap
smb: \>

Kullanılabilecek komutları görmek için "help" yazabilirsiniz (" işaretlerini kullanmadan)

--- CIFS ---

CIFS smbfs paketi ile beraber gelir ve smbfs'nin yerini almıştır.

http://linux-cifs.samba.org/

---- root olmayan kullanıcıların SMF paylaşımlarını bağlaması ----

Ön tanımlı olarak sadece root SMB paylaşımlarını komut satırında bağlayabilir. root olmayan kullanıcıların da SMB paylaşımlarını bağşayabilmesi için SUID ayarlamalısınız. Ancak sudo'yu yapılandırmak tavsiye edilen yoldur. sudo visudo ile yapılandırılmalıdır.

İki seçeneğiniz vardır. Ya "users" grubuna SMB paylaşımlarını bağlama hakkı vereceksiniz ya da "samba" adından bir grup oluşturup bu grup üzerinden izinleri vereceksiniz. samba grubu üzerinden gidelim.


sudo groupadd samba
sudo adduser kullanıcı_adı samba


kullanıcı_adı yerine istediğiniz kullanıcının adını yazın.


sudo visudo


Grup bölümü altına samba paylaşımlarını bağlayacak grubu girin.

Alıntı Yap
Add a line  in the "group" section :
## Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs

Eğer halihazırda var olan "users" grubunun bu işi yapmasını istiyorsanız %samba yerine %users yazın.

Aşağıdaki komutlarla "sunucu" üzerinde "paylaşım" dizinini ~/mnt (Ev dizini altında olacaktır) dizini altına bağlayabilirsiniz.


mkdir ~/mnt
sudo mount -t cifs //suncu_ip_adresi/paylaşım ~/mnt -o username=samb_user,noexec


Not: Buradaki samb_user samba sunucu üzerindeki kullanıcı adınızdır ve bu istemci üzerindeki kullanıcı adınızdan farklı olabilir.
"noexec" seçenği SMB paylaşımı üzerindeki çalışabilir betiklerin çalışmasını engeller.

Önce sudo için parola ardından da paylaşımı bağlamak için samba_kullanıcı parolanız sorulacaktır.

Ayırmak için:

sudo umount ~/mnt


---- SMB paylaşımlarını otomatik bağlamak ----

Sistemi her başlattığınızda  paylaşımların kendiliğinden bağlanmasını istiyorsanız aşağıdakileri uygulayın.
Herhangi bir düzenleyici ile, Windows/Samba kullanıcı hesap bilgilerini içeren şu dosyayı oluşturun:


sudo gedit /etc/samba/user


aşağıdaki gibi iki satır içermelidir:

Alıntı Yap
username = samba_kullanıcısı
password = samba_kullanıcı_parolası

Not: samba_kullanıcısı samba sunucusundaki kullanıcı adınızdır ve istemcidekinden farklı olabilir. Aynı şekilde samba_kullanıcı_parolası samba_kullanıcısı için sunucu üzerinde belirlenmiş parolanızdır.

Dosyayı kaydedip kapatın.

Güvenlik için dosyadaki izinleri değiştirin:


sudo chmod 0400 /etc/samba/user


Şimdi, paylaşımınızın bağlanacağı dizini oluşturun. Örneğin /media/samba_paylaşım


sudo mkdir /media/samba_paylaşım


Herhangi bir düzenleyici kullanarak /etc/fstab dosyasına SMB paylaşımınız için aşağıdaki gibi bir satır ekleyin.


sudo cp /etc/fstab /etc/fstab.yedek
sudo gedit /etc/fstab


SMB paylaşımınız için bir satır ekleyin:

Alıntı Yap
//sunucu_ip_adresi/paylaşım  /media/samba_paylaşım  cifs  credentials=/etc/samba/user,noexec  0 0

Paylaşım bir sonraki açılışta kendiliğinden bağlanacaktır.

Paylaşımı hemen bağlamak için:


sudo mount /media/samba_paylaşım


Şu şekilde de ayırabilirsiniz:


sudo umount /media/samba_paylaşım


Eğer güvenlik icabı kendiliğinden bağlanmasını istemiyor fakat her seferinde ip adresi ve paylaşım yerini de göstermek istemiyorsanız şöyle bir değişikliğe gidin.

/etc/fstab satırını şu şekilde değiştirin:

Alıntı Yap
//sunucu_ip_adresi/paylaşım  /media/samba_paylaşım  cifs  noauto,credentials=/etc/samba/user,noexec  0 0

/etc/samba/user dosyasını düzenleyin. Parola satırını silin, sadece kullanıcı satırı kalsın. Böylece siz bu paylaşımı bağlamak istediğinizde parola sorulacaktır. Elle bağlamak için:


sudo mount /media/samba_paylaşım


--- SMBFS ---

Not: Bu metot hala çalışmasına rağmen CIFS'de de belirtildiği üzere artık kullanılmamaktadır ve kerneldek kaldırılmak için beklemektedir.

Ç.N: CIFS kullanılabileceğinden Türkçe'ye çevrilen bu belgede yer verilmeyecektir.


Samba Sunucu Elle Yapılandırması


Yapılandırma /etc/samba/smb.conf dosyasını okuyarak ve düzenleyerek olur. Bu dosya samba sunucu için yapılandırma dosyasıdır.
Bazı grafiksel araçlar da mevcuttur. Örneğin "kdenetwork-filesharing" ve Swat gibi.

KDE için ciddi anlamda güzel bir Samba yapılandırma aracı mevcuttur. "kdenetwork-filesharing" paketini kurduktan sonra KDE Kontrol Merkezini açarak uaşabilrsiniz. İnternet & Ağ > Samba altından ulaşabilirsiniz ve oldukça kolay kullanımı vardır.

Bir diğer grafiksel araçsa web tabanlı olan Swat'tır. Biraz daha az kullanıcı dostudur.

Aşağıdaki ip uçları herhangi bir araç kurmadan komut satırı kullanılarak uygulanacaktır. Çok zor olmamakla beraber yazım hatalarına dikkat etmeniz yararlı olacaktır.

İlk önce bir terminal açın: Uygulamalar -> Donatılar -> Uçbirim. Ardından smb.conf dosyasını açın.


sudo gedit /etc/samba/smb.conf


smb.conf dosyası birkaç bölüme ayrılmıştır.

Alıntı Yap
Global Settings
Debugging/Accounting
Authentication
Printing
File sharing
Misc
Share Definitions

Yorumlar # veya ; karakterleri ile başlar.

-- Genel Ayarlar --

Burada grafiksel bir ağ aracında (çalışma grubu veya wins sunucu gibi) bulunan birçok satır göreceksiniz. Eğer tüm isteklerinizi zaten yaptıysanız bu bölümü geçin. Eğer yapmadıysanız, ne istiyorsanız değiştirin. Neyin ne olduğunu anlamıyorsanız olduğu gibi bırakın ve gerçek Samba yapılandırma belgesini okuyarak rastgele değiştirmek yerine ne yaptığınızı bilerek değiştirin. Belgeye şuradan ulaşabilirsiniz:
http://www.samba.org/samba/docs/using_samba/ch06.html

-- Dosya Paylaşımı (Temel) --

Bizim için önemli olan kısım dosya paylaşımı. Samba paylaşımları köşeli parantezler içinde yer alır, [], ve takip eden satırlara seçenekler ekleyerek yapılandırılır. Birçok seçenek yes/no şeklindedir.

Değiştirmemiz gereken:

Alıntı Yap
[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
  writable = no

Burası sizin ev dizininizi tanımlar. Eğer ev dizininizi paylaşıma açmak istiyorsanız şu şekilde değişikliğe gidin:

Alıntı Yap
[homes]
comment = Home Directories
browseable = yes

# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
  writable = yes

Görüldüğü üzere "browseable = yes" ile paylaşıma açıp "writable = yes" ile yazılabilir kıldık.
Bu sizin ev dizininizi paylaşıma açmayı sağlar. Son olarak kullanıcı atamalıyız.


sudo  smbpasswd -a kullanıcı_adı


şöyle bir diyalog ile gerekenleri verin:

Alıntı Yap
Yeni SMB parolası:
Yeni SMB parolasını tekrar yazın:
kullanıcı_adı kullanıcısı eklendi.

Not: kullanıcı_adı PC/Sunucunuzda mevcut olan bir kullanıcı adı olmalıdır. Her kullanıcı ekleme/değiştirmede veya smb.conf değişikliğinde Sambayı tekrar başlatın.


sudo /etc/init.d/samba reload


-- Dosya Paylaşımı (Gelişmiş) --

Samba temel dosya paylaşımı ile başlamıştık. Yukarıdaki yönergeler temel paylaşım için yeterlidir. Eğer detay arıyorsanız devam edebilirsiniz.

--- Eğer birden fazla ağ kartınız varsa ---

Eğer birden fazla kart veya ara biriminiz varsa Sambanın nerede çalışacağını belirleyebilirsiniz. smb.conf dosyasında [global] bölümünün altına ekleyin:

Alıntı Yap
"interfaces = 127.0.0.1, 192.168.0.31/24"
"bind interfaces only = yes"

İlk adres olan 127.0.0.1 loopback ağ bağlantısıdır (kendi makineniz). İkinci adres olan 192.168.0.31 ise Sambanın çalışmasını istediğiniz karttır. 24 sayısı ise C-Sınıfı ağdaki ön tanımlı subnettir. Bu ağınıza göre değişecektir.

"bind interfaces only" seçeneği ile bir makinedeki hangi ara birimin SMB isteklerine cevap vereceğini sınırlandırırsınız.

Aşağıdaki satırları ekleyerek Samba sunucunuza hangi IP adreslerinin ulaşabileceğini de sınırlandırabilirsiniz:

Alıntı Yap
"hosts allow = 127.0.0.1, 192.168.0.31, 192.168.0.32"
"hosts deny = 0.0.0.0/0"

loopback aygıtı ilk satırda mutlaka olmalıdır. İkinci satır ilk satırda olmayan tüm Ip adreslerini reddedecektir.

--- Aynı yapılandırmada Private ve Public paylaşımlar ---

Öncelikle bunu global bölümünde ayarlamanız lazım.

Alıntı Yap
[global]
        security = user
        encrypt passwords = true
        map to guest = bad user
        guest account = nobody

"security = user" kullanıcıların sunucunuza bağlanmasını kısıtlar. "encrypt passwords = true" sunucunuza bağlanırken tüm Windows sürümleri için gereklidir. "map to guest = bad user" yanlış kullanıcı adı ile bağlanma girişimlerini sizin "guest account = nobody" olarak belirlediğiniz kullanıcı ismine yönlendirir. Böylece eğer birisi smbpasswd ile ayarlanmamış bir kullanıcı ile bağlanmaya çalışırsa nobody olarak bağlanmış olacaktır.

Private paylaşım:

Alıntı Yap
[private]
        comment = Private Share
        path = /paylaşım/olacak/dizin
        browseable = no
        read only = no

Eğer "browseable = no" kullanılırsa paylaşım grafiksel gezginlerde görünmeyecektir. Örneğin Windowstaki "Ağ Bağlantılarım" veya Ubuntu altındaki "Yerler -> Ağ".

"path" paylaşımın yolunu gösterir. "read only = no" ile doğrulanmış kullanıcılar paylaşıma yazabilirler.

Son olarak , public paylaşım.

Alıntı Yap
[public]
        comment = Public Share
        path = /paylaşım/olacak/dizin
        read only = no
        guest only = yes
        guest ok = yes

"guest only = yes" ve "guest ok = yes" guest girişlerini açar ve kullanıcıları guest olarak bağlanmaya zorlar. [global] bölümü altında tanımladığınız guest hesabının /paylaşım/olacak/dizin dizinine yazabilmesi için bu dizinde yazma hakkının olması gerekmektedir.

Not: Windows SMB paylaşımlarına ulaşmaya çalışırken Windows kullanıcı ismini ve parolasını kullanır. Yukarıda kullandığınız "guest = bad user" olayı size public paylaşımlara sadece hatalı Samba kullanıcı adı ile bağlanmanızı sağlar. Eğer doğru kullanıcı adı ve hatalı bir parola verirseniz, bu durumda giriş başarısız olacak ve Windows sizden parola istediği bir prompt verecektir. Eğer Windows makinede de Ubuntudaki aynı kullanıcı ismini kullanıyorsanız istemeden doğru bir kullanıcı adı ile bağlanmaya çalışırken hatalı parola vermiş olacaksınız demektir. Bunu engellemek için iki şey yapabilirsiniz. Birincisi Windows kullanıcı adınızı değiştirebilirsiniz. İkincisi ise bu kullanıcı adını Samba parola dosyasından çıkartmalısınız:


smbpasswd -x [kullanıcı_adı]


Not: Yukarıda "security = user" kullanılır. Private paylaşımlara ulaşmak için kullanıcının smbpasswd içinde mevcut olduğundan emin olun. Bu kullanıcılar aynı zamanda makinenizde normal kullanıcı olarak da mevcut olmalılar. Kullanıcıları smbpasswd içine basitçe


smbpasswd -a [kullanıcı_adı]


komutunu ve bir parola vererek ekleyebilirsiniz.

--- İzinleri Ayarlamak ---

Yeni oluşturulan belgelerin izinlerini ayarlamak için [global] bölümü altına şunu ekleyin:

Alıntı Yap
create mask = 0644
directory mask = 0755


CUPS Yazıcılarını Paylaşma


-- Grafiksel Yapılandırma --

--- Ubuntu Yazıcı Suncusunu Yapılandırma ---

1. Menüde Sistem -> Yönetim -> Yazdırma

2. Sol taraftaki "Yerel Yazıcılar" kısmından paylaşmak istediğiniz yazıcıyı seçin. Sağ taraftaki "Policies" sekmesine tıklayın ve "Paylaşımlı" kutusunun işaretli olduğuna emin olun.

--- Ubuntu İstemcisi ---

1. Tekrar Sistem -> Yönetim -> Yazdırma bölümüne gidin.

2. Üst sağdan "Yeni Yazıcı" kısmına tıklayın. Bir sonraki menüden "SAMBA ile Windows Yazıcı" bölümünü seçin. Yukarıda yapılandırmış olduğunuz Ubuntu Samba Yazıcı Sunucu IP adresini sol taraftaki "smb://" bölümüne yazın. "Göster" düğmesine tıklayın.

3. "SMB Gezgin" penceresinden yazıcıyı seçin (Küçük oklara tıklayın). Bir kez yazıcınızı seçtikten sonra "Doğrulama gerekli" kısmını işaretleyin ve samba kullanıcı adınızı ve parolanızı girin. Daha sonra "doğrula" düğmesine tıklayın. Paylaşım olduğunda onaylanma mesajını göreceksiniz.

4. "İleri" düğmesine tıklayın ve yazıcınız ve istediğiniz başka bir diğer yazıcı için sürücüleri kurun.

--- Windows İstemcisi ---

1. Denetim Masası -> Yazıcılar bölümüne gidin.

2. "Yazıcı Ekle" kısmına gelin. Yazıcı sihirbazı çalışacaktır, devem edin. "Ağ Yazıcı" kısmını seçin ve devam edin. "Bir yazıcı ara" kısmını işaretleyin ve devam edin. Bir sonraki pencerede, Ubuntu Samba Yazıcı Sunucunuza gidin ve devam edin. Yazıcı ve sürücü kurulumu ile devam edin.


-- Elle Sunucu Yapılandırması --
Eğer yazıcılarınızı elle paylaştırmak istiyorsanız aşağıdakileri uygulayın:

Eğer oluşturulmadıysa paylaşımı kullancak Samba-kullanıcısını oluşturun.

smb.conf dosyası içinde aşağıdaki yapılandırma bulunan satırları bulup gösterildiği gibi değişikliği yapın:

Alıntı Yap
########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
   load printers = yes

# [...] // Some BSD printing stuff, do not edit if You do not need to

# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
   printing = cups
   printcap name = cups


daha sonra Share Definitions bölümünde aşağıdaki değişiklikleri yapın:

Alıntı Yap
# ======================= Share Definitions =======================
# [...] // File and Folder sharing, do not edit if You do not need to

[printers]
   comment = All Printers
   browseable = no
   path = /tmp
   printable = yes
   public = yes
   writable = no
   create mode = 0700
   printcap name = /etc/printcap
   print command = /usr/bin/lpr -P%p -r %s
   printing = cups

[printers] bölümü "printcap name" içinde adı geçen tüm yazıcılar için ön tanımlı davranışları belirler. Bir çeşit bu yazıcıların nasıl paylaştırılacağını belirleyen şablondur bu. Bu şablon yukarıda "load printers" yes olarak ayarlandıysa geçerli olacaktır. Daha detaylı açıklama için Samba belgesine bakabilirsiniz.

Sambayı yeniden başlatmayı unutmayın:


sudo /etc/init.d/samba reload



Samba Güvenliği


Bu bölüm sadece bir iki tavsiye verecektir, geniş çaplı bir güvenlik bölümü değildir.

1. Networking Bölümü- "hosts allow" ve "hosts deny" kullanımı.

Alıntı Yap
# hosts allow = 127.0.0.1 192.168.1.0/24
hostal allow = 127.0.0.1 192.168.1.1 192.168.1.2
hosts deny = 0.0.0.0/0

Böylece "hostal allow" ile belirlenmiş herkesin harici yasaklanır.

2. Paylaşımlar

Bir paylaşım tanımlarken aşağıdaki seçenekleri göz önünde bulundurun:

1. browseable = no
Böylece ağa göz atılırken paylaşımınız görünmeyecektir.

2. users = kullanıcı1 kullanıcı2

Paylaşıma ulaşabilecek samba kullanıcıları (dikkat samba kullanıcıları)

Bir samba paylaşımı ayarlarken böylece ulaşacak kullanıcıları sınırlandırabilirsiniz.

Alıntı Yap
[private]
        comment = Private Share
        path = /paylaşım/olacak/dizin
        browseable = no
        read only = no
        users = kullanıcı1 kullanıcı2 kullanıcı3

Böylece sadece kullanıcı1, kullanıcı2 ve kullanıcı3 paylaşıma ulaşabilecektir.


İpuçları / İzinler


Samba izinleri bazen ipucu olabilir.

-- Sunucu Tarafı --

1. Samba paylaşım isminiz [] içindeki kelimedir.

[private] = "private" için paylaşım ismi

[secret] = "secret" için paylaşım ismi

2. Samba paylaşımını bağlayabilmek için sunucudaki samba kullanıcısı dizine ulaşmak için yetkilere sahip olmalıdır.
Eğer /paylaşım/olacak/dizin root.root tarafından sahiplenmiş olup 770 izinlerine sahipse, sadece root bu paylaşımı bağlayabilir.

-- İstemci Tarafı --

1. Eğer tanımlama dosyası kullanmıyorsanız bağlama esnasında samba_kullanıcısını belirtmeyi unutmayın: -o username=samba_user

2. Samba paylaşımı üzerindeki izinler sunucuya bağlıdır.

Linux sunucular tüm Linux izinlerini kullanır.

Windows paylaşımları Linux izinlerini kullanmaz. İzinleri samba paylaşımını bağlarken ayarlayabilirsiniz:
file_mode=660 ve dir_mode=770 (Bunlar izinlerdir, umask değerleri değildir):

Alıntı Yap
file_mode=arg
          Eğer sunucu CIFS Unix uzantılarını desteklemiyorsa bu dosyalar için ön tanımlı
     kipin üzerine yazar.

dir_mode=arg
          Eğer sunucu CIFS Unix uzantılarını desteklemiyorsa bu dizinler için ön tanımlı
     kipin üzerine yazar.

Bu seçenekler Windows üzerindeki paylaşımda olan tüm dosya ve dizinler için kullanılır ve değiştirilemez.

3. Samba paylaşımı üzerindeki izinler sizin umask ayarınız ile aynı olacaktır.

4. Samba paylaşımlarınızı Ip adresi yerine host (sunucu) ismi ile yapmak istiyorsanız, sunucunuzda /etc/hosts (C:\WINDOWS\system32\drivers\etc\hosts for Windows) altına kaydedin.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ufuk_k

Sağol abi, bir çok kişi için faydalı olacağından eminim.

munirekinci

Ellerine sağlık, çok güzel bir kaynak hazırlamışsın.

maxspacemax

Ellerin dert görmesin. klavyen takılmasın, bilgisayarına virus bulaşmasın. Moniör gözlerini yormasın, yazıcının kartuşları bitmesin, bilgisayarın elektriksizde çalışabilsin, .....         :D

munirekinci

#4
Böyle güzel başlık sabitlenmez mi? :)

yogarock

işte bunu bekliyordum...çokkk teşekkürler...sonunda erişebileceğim mükemmel bir kaynak....yazı yazan parmakların dert görmesin... ;D

umutubuntu

#6
@heartsmagic  Bakıp bakıp uyguladıkça seni hatırlarız  :)

erginemr

Teşekkürler @heartsmagic,

Çok emek sarfetmişsiniz ama çok da güzel bir yazı olmuş. Elleriniz dert görmesin.