Windows NT/2000 sunucusunu Linux ve SAMBA kullanarak değiştirmek

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: orhttp://homepage]

original in es Sebastian Sasías

es to en Sebastian Sasías

en to trOğuzhan Ceylan

AboutTheAuthor:[A small biography about the author]

Linux'u teknolojik çözümler geliştirmek için yardımcı bir araç olarak bir kaç yıldır kullanıyor.
Aygıt(device) denetimi, işaret işleme, iletişimler ve ağ güvenliği konularında çalışıyor.
Elektronik - Otomayon ve Bilgisayar Biliminde uzman.
GNU/GPL altında serbest yazılıma katkıta bulundu.

Abstract:[Here you write a little summary]

Bu makale diğer _LF_ makalelerinde tanıtılmış SAMBA ürünü ve Unix-Windows karışık ağlarda kaynak paylaşımı için kullanımı konusunu desteklemektedir. Özel olarak, Windows işletim sistemi tarafından sağlanan bazı servisleri çalıştırmak için SAMBA kurulmuş Linux'e odaklanmıştır.
Bu sadece Linux'un gücü ve esnekliği değildir ayrıca önemli bir ekonomik sonuç da vardır:

Tam olarak SAMBA yapılandırılmış bir Linux sunucusu, genel olarak dizinleri paylaştırabilir, aktif dizin servisi(ADS) verebilir fakat ayrıca PDC(birincil alan deneticisi) olarak da çalışabilir, Windows 2000/NT/98/95 istemcileri ile kullanıcı onayı yapar, kaynakları(dizinleri ve yazıcıları) paylaştırır ve kullanıcı oturumlarını uyarlar.
Bu makale özel olarak bu konulara odaklıdır.

Sonuç olarak, SAMBA kurulu bir Linux sunucusu, istemci bilgisayarlarında bir değişikliğe gidilmeksizin Microsoft işletim sistemi tabanlı bütün fonksiyonları böler.
Birazdan anlatılacak aşamalarda, SAMBA'nın kurulu olduğu ve sunucu olan makinede doğru olarak çalıştığı varsayılacaktır. Okuyucu da Linux ve Windows sunucuları hakkında temel bilgilere sahip kabul edilecektir.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Case Study

PDC olarak çalışan bir Linux/Samba sunucusu düşünelim, onaylanmış her kullanıcı sunucuda, biri özel biri serbest olarak paylaştırılmış alana erişim hakkına sahiptir. Bu makalede özel veri alanına erişim her kullanıcının kişisel dizinine erişim yaygın bir durum olarak kullanılacaktır.



Anlatılacak Ayrıntılar:

Linux/Samba NetBIOS Name:SMBSunucusu
Windows Alan Adı (çalışma grubu): Alan(THEDOMAIN)
Her Kullanıcı İçin Özel Alan Ayrıştırımı (Partition): H: (Windows) => /home/ (Linux Sunucusu)
Genel Ayrıştırım (public partition): P: (Windows) => /home/public



Şekil 1 Windows NT/2000 sunucusundan servisler ve kaynaklar kullanan Windows Sistemlerini içeren istemci makinalarla birlikte bir basit ağı gösterir. Bu sunucu Linux/SAMBA sunucusu kullanılarak değiştirilebilir.

Network diagram
Fig. 1 – PDC ve File Sunucu

Yapılanış

Adımları İzleyiniz:

1) PDC sunucusunda (Samba kurulu Linux) onaylanacak kullanıcıları yaratın.
adduser komutu, useradd ya da userconfkullanın, ayrıca kullanıcı yönetimi için bazı araçlar da kullanabilirsiniz. Fakat bunlar grafik arayüzü içerir (Webmin, Linuxconf, Yast, vb.).

Kullanıcıların sadece Linux/Samba servislerine erişiminin olduğuna emin olun.(Eğer istiyorsanız) Linux kabuğuna erişimleri olmamasini gerektirir fakat bunu yaparsanız erişimleri olacaktır. /dev/nullev dizini ve/bin/false kabuk rak.

2)smbpasswd dosyasını oluşturarak UNIX kullanıcılarını Linux/Samba/Windows kullanıcılarına dönüştürün.

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

Bunu yapmak için bir başka yol da, kullanıcı yaratmak ve geçişsözcüğü tanımları için aşağıdaki Samba komutlarını çaıstırmaktır:

smbadduser
smbpasswd

Bu komutlar adduser ve passwd komutlarına benzer bir şekilde çalışmaktadır.

3) Samba uyarlama(konfigurasyon) dosyasını (smb.conf), aşağıda gösterilen yorum işaretlerini içererek ya da silerek seçimlerinizi yapın:

netbios name = SMBServer
workgroup = THEDOMAIN
server string = Linux Samba NT Server
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/.... (cancel comment)
socket options = (cancel comment)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes


Not:
Her kullanıcının, herhangi bir sisteme girişi için, sisteme giriş betiğini(script) %U.bat" ile değiştirin, her kullanıcının kendi kullanıcı adıyla "giriş betiği" vardır, %u da ayrıca kullanılabilir. Eğer kullanıcının bağlı olduğu grupla ilgilenecekseniz , %g ya da %G yi kullanabilirsiniz. Bu ve diğer parametreler yardımda (man smb.conf)bulunabilir.


4) Paylaştırılmış kaynakları oluşturun
smb.conf dosyasını düzeltin ve "shares" örneklerini hep yorum haline getirin:

[netlogon]
comment = Initialization Scripts
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = User Directory
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Public Directory
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777


smb.conf dosyasını saklayın.

5) smb.conf in doğruluğunu aşağıdaki komutu kullanarak deneyebilirsiniz:

testparm

Bu komut smb.conf dosyasını analiz eder ve eğer bulursa hataları bildirir.

6) /home/netlogon ve /home/public dizinlerini 0754(netlogon ve 0777(public) izinleriyle oluşturun.

7) logon.batgiriş dosyasını düzeltin.
Önemli: logon.bat dosyasını DOS/Windowsta oluşturmak için bir tekst editör (Notepad ya da Edit gibi) kullanın.(dolayısıyla MS uymlu yapıda tekst dosyası olarak saklanmış olur), ayrıca Linux'de çalışan herhangi bir tekst editör yardımıyla da yapabilirsiniz daha sonra doğru tekst biçimine çevirmeniz gerekir. Örneğin vim in ":set textmode" komutunu MS satır bitimlerini elde etmek için kullanabilirsiniz.

net time \\SMBServer /y ( /yes i /y yerine kullanabilirsiniz. )
net use H: \\SMBServer\home -y
( /yes ya da /y yi -y yerine kullanabilirsiniz. )
net use P: \\SMBServer\public -y

8)SMBSunucu bilgisini lmhosts dosyasında bulundurun.
/etc/samba/lmhosts dosyasını (ya da /etc/lmhosts) değiştirin ve SMBSunucu bilgisini içeren bir satır ekleyin
SMBSunucusu, i.e: 192.168.0.10 SMBSunucu

9) Samba cinini (daemon) (smbd) çalıştırın/tekrar başlatın

service smb restart

Eğer sizin Linux dağıtımınızda doğru bir şekilde çalışmazsa aşağıdaki komutları kullanabilirsiz;
ps -auxgx | grep smb
kill -9 <process ID of smb>
smbd

10) smbclient i onceden hazırlanmış konfigurasyonun doğru çalışıp çalışmadığını anlamak için kullanın

smbclient -L //SMBServer

Eğer "Password:" yazısını görürseniz "Enter"'a basın ve sunucu ile paylaşılmıış kayanaklar görüntülenecektir.

11) Windows 95/98/NT bilgisayarını kullanarak, THEDOMAIN alanında, istemci girişi yapın. Daha onceden yaratılmış (Adım 1 ve 2) Linux/Samba kullanıcısını kullanın.

Windows 95/98/ME de, aşağıdaki sıralamaya göre konfigurasyon yapılmalıdır:

Start => Setup => Control Panel=> Network =>Network Client for Microsoft Networks => Properties.

Benzer bir düşünce Windows NT/2000 istemcileri için sıralama aynı olmasa da kullanılabilir.

"Start session in Windows NT/2000 domain" seçeneğinin üstüne tıklayin ve THEDOMAIN (WORKGROUP) alanını yazın.

Örnek Bir Konfigürasyon Dosyası

Tam bir SAMBA uyarlama dosyası burada gösteriliyor. Bu dosya değişik Linux dağıtımlarıyla beraber sınanmıştır. Okuyucu bu yazıda anlatılan sonuçları elde etmek için dosyayı değiştirebilir. Her komut hakkında yorum vardır.

Çabuk bir şekilde SAMBA'yı yapılandırmak isteyenler, Webmin ve/veya SWAT araçlarını daha arkadaşça bir yolla yapılandırıma yol açacakları gerekçesiyle, yükleyebilirler.

#============================================================#
# /etc/smb.conf
#------------------------------------------------------------------------------------------------------------#
# Ana SAMBA yapılandırım dosyası
# YApılandırım İçin Skeleton Dosyası,
# Gereksinimlerinize göre parametre seçimi yapınız.
#------------------------------------------------------------------------------------------------------------#
# Sınana Sistemler: Solaris ve Linux /Dağıtımları:
# RedHat 6.0, 7.0 ve 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0 ve 8.1
# SuSe 7.2
#------------------------------------------------------------------------------------------------------------#
# Son Değişiklikler: 08/12/2001
# Sebastian Sasias - sasias(at)linuxmail(dot)org
#============================================================#
#
# Bu dosya aşağıdaki dokumanlardan
# SAMBA, smb.conf(5) manual 'ından
#
# OBS: Bu dosyayı değiştirdikten sonra "testparm" komutunu kullanınız.
#
#======================== Global Seçenekler =======================#
#
# Genel Yapılandırım
#
[global]
#......................................................................................................................................#
# workgroup = NT-Domain-Name o Workgroup-Name, ie: THEDOMAIN
# PDC Domain
workgroup = THEDOMAIN
#......................................................................................................................................#
# Diğer makinalarda anons edilecek olan bu makinayı isimlendirin.
netbios name = SMBServer
#......................................................................................................................................#
# Bu komut "Network Neighborhood" da gözükecek Windows
server string = Samba Server de este lugar
#......................................................................................................................................#
# Burası güvenlik nedeniyle önemlidir,
# Yerel ağdaki bazı bilgisayarlara bağlantı izni verilmesi için.
# Bu örnekte erişim 192.168.8.0 ağı ile bağlanan bilgisayarlara verilmiştir.
# (Genellikle C sınıfı) ve geridönüşümlü (loopback) arayüzlerden. Daha fazla ayrıntı için smb.conf'yi okuyun.
# man sayfaları
# I.E: Paylaşılmış kaynaklar sadece IP adresi başlayan bilgisayarlardan kullanılabilir.
# 192.168.8 ile ve 127 ile(takip eden satırda yorumlanmış cümle)
; hosts allow = 192.168.8. 127.
#......................................................................................................................................#
# Eğer bir yazıcı listesini otomatik olarak yüklemek isterseniz teker teker yazmaktansa;
# şunu kullanın:
; load printers = yes
#......................................................................................................................................#
# Yazıcı yeri (path)'i tekrar yazmak da olasıdır.
; printcap name = /etc/printcap
#......................................................................................................................................#
# lpstat için Princap isim özellikleri SystemV'de
# otomatik olarak spool sistemden yazıcı listesini otomatik olarak elde etmelidir.
# SystemV den
; printcap name = lpstat
#......................................................................................................................................#
#Standart olduğu için yazıcı sistem tipini belirtmek gerekli değildir.
# Şu an desteklenen yazıcı sistemleri:
# bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
#......................................................................................................................................#
# Konuk hesabı istiyorsanız bu yorumu kaldırın
# Bunu /etc/passwd dosyasına eklemeniz gerekir yoksa "nobody" kullanıcısı kullanılır.
; guest account = pcguest
#......................................................................................................................................#
# Bu SAMBA ile bağlantı yapacak her bilgisayarda farklı log dosyası oluşması içindir.
log file = /var/log/samba/log.%m
#......................................................................................................................................#
# Log dosyalarının büyüklüklerine bir sınır koyalım.(Kb olarak)
max log size = 50
#......................................................................................................................................#
# security_level.txt yi daha fazla bilgi için okuyunuz. s
# Geçişsözcüğü onaylaması için bir şekil(mode) içerir.
# Kullanıcı seviyesi güvenliği=her kullanıcı kendi geçiş sözcüğü(smbpasswd)
security = user
#......................................................................................................................................#
# Eğer güvenlik= sunucu ise onaylama başka bir sunucu kullanılarak yapılacak.
# Güvenlik=sunucu olduğu zaman sadece "password server" değerini kullanın.
# password server = [server authentication IP address].
; password server = <NT-Server-Name>
#......................................................................................................................................#
# Eğer geçişsözcüğü şifrelemesini(encryption) kullanmak ENCRYPTION.TXT'i okuyunuz.
# Samba dokumanlarından Win95.txt ve WinNT.txt
# Eğer bu özellik hakkında yeterli bilgiye sahip değilseniz bu özelliği çalıştırmayın.
# Bilgi: Win95, Win98 ve WinNT şifreli geçişsözcükleri gönderir.
encrypt passwords = yes
#......................................................................................................................................#
# Aşağıdakileri kullanmak yapılandırımınızı ağdaki her makinaya uyarlamanızı sağlar.
# %m netbios adıyla değiştirilir .
# Bağlanan makina için geçerli.
; include = /usr/local/samba/lib/smb.conf.%m
#......................................................................................................................................#
# Dokümanlar ve bazı gözde ipuçları büyük olasılıkla bu seçeneğin daha iyi performans
# vereceğini gösteriyor. Deneyin.
# Ayrıntı için speed.txt ve yardım sayfalarını görün.
socket options = TCP_NODELAY
#......................................................................................................................................#
# Çok ağ arayüzü kullanmak için Samba yapılandırımı
# Eğer ağ arayüzleriniz birden fazla ise burada listesini yapmanız gerekmektedir. Örnekteki gibi
#Ayrıntılar için yardım sayfasını okuyunuz.
; interfaces = 192.168.8.2/24 192.168.12.2/24
#......................................................................................................................................#
# Tarayıcı Kontrol Seçenekleri:
# Eğer Samba'yı ağınızda ana tarayıcı olarak belirlemek istemiyorsanız "master = no" yapın.
local master = yes
#......................................................................................................................................#
# OS seviyesi ana tarayıcı seçiminde bu sunucunun önceliğini belirler.
# Genelde varsayılan değer akla uygun olmalıdır.
; os level = 33
#......................................................................................................................................#
# Domain Master Samba'yı alan ana tarayıcısı yapar.
#Bu Sambanın alan kontrolcüsü olarak servisleri çalışmaya ve makinaları görmesine izin verir.
# farklı TCP/IP subnetlerinde

# Bunu eğer Windows NT/2000 alan kontrolcünüz yoksa kullanmayin.
domain master = yes
#......................................................................................................................................#
# Tercih edilen master Sambanın başlangıçta yerel tarayıcı seçimine zorlamasına neden olur.
# ve seçimi kazanması için daha yüksek şansa sahip olmasına neden olur.
# Eğer birden fazla sunucunuz varsa tercih edilen master "favorite" olacaktır.
# İstemciler listedeki sunucuları aradıkalarında bu durum gerçekleşir.
preferred master = yes
#......................................................................................................................................#
# Bunu sadece ağınızda NT/2000 sunucunuz varsa ve bunu
# PDC (primary domain controller) olarak çalıştırıyorsanız kullanın.
; domain controller = <NT-Domain-Controller-SMBName>
#......................................................................................................................................#
# Bu özelliği SAMBA'yı "domain logon server" olarak kullanacaksanız çalışır hale getirin.
# (Windows 9x/Me workstationlarda).
domain logons = yes
#......................................................................................................................................#
# Eğer "domain logons"u çalıştırmak isterseniz Windows ağında her makinada her kullanıcı için
# logon betiği kullanmanız gerekir.

# Özel logon batchi her workstation makinası için
; logon script = %m.bat

# her kullanıcı için logon batch'i
; logon script = %U.bat
#......................................................................................................................................#
# Gezici profilleri nerede saklayacağız? (sadece Win95 ve WinNT için)
# %L bu sunucunun NetBIOS adını, %U kullanıcı adını değiştirir

# [Profiles] paylaşımının yorumunu kaldırmanız gerekir.
; logon path = \\%L\Profiles\%U
#......................................................................................................................................#
# Windows Internet Ad Servisi(Windows Internet Name Service)için destek:
# WINS destek NMBD 'ye onun WINS sunucusunu çalışır hale getirmesini sağlar.
# WINS protokolü,makina adlarını IP adreslerine çevirir.
# DNS in TCP/IP ile çalıştığı gibi çalışır.
; wins support = yes
#......................................................................................................................................#
# WINS Sunucusu - Sambanın NBMD bileşenlerine WINS istemcisi olmalarını anlatır.
# SAMBA Sunucusu şunlardan biri olabilir: WINS Sunucusu ya da WINS istemcisi,
# fakat aynı anda ikisi olamaz.
# Burada WINS IP Sunucusu belirtilmelidir.
; wins server = 192.168.8.1
#......................................................................................................................................#
# WINS Proxy - Samba'ya WINS olmayan istemciler adına isim çözümleme sorularına yanıt vermesini söyler.
# bunun için ağda en az bir WINS sunusu olmalıdır.
# Yaygın kullanılan değer NO dur..
; wins proxy = yes
#......................................................................................................................................#
# DNS Proxy - Sambaya DNS aramaları ile NetBIOS isimlerini çözmesini ya da çözmemesini söyler.
# 1.9.17 sürümü için kullanılan değer "yes" idi ama bu 1.9.18 sürümünden sonra "no"'ya dönüştürüldü.

# Burada SAMBA'ya isim çözümlemesinin DNS'le yapılıp yapılmayacağını söyleyebiliriz.
# dns proxy = yes
# dns proxy = no (name resolution will be made by using the file lmhosts )
#......................................................................................................................................#
# Eğer giriş sürücüsü belirtilmemişse Z: ünitesi otomatikman mount edilir.
logon drive = P:
#......................................................................................................................................#
# Bir giriş yapıldığında bu betik çalıştırılır: /etc/samba/netlogon/SAMBA.BAT
# ve disk üniteleri "net use" kullanılarak mount edilir.
logon script = SAMBA.BAT

#====================== Paylaşım Tanımlamaları ========================#

# Her kullanıcının kişissel dizini
# Ünite P:

[homes]
comment = Home Directories
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700

#------------------------------------------------------------------------------------------------------------#
# Temporal dosyalar için dizin:
# Ünite T:

[tmp]
comment = Tempora Files
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777

#------------------------------------------------------------------------------------------------------------#
# Sunucudaki CD-ROM
# Ünite L:

[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no

#------------------------------------------------------------------------------------------------------------#
# Grup, /home/grp.name_group ya göre
# /home/user/group /home/grp.name_group a bir bağlantıdır
# grp.name_group 770 izinine sahiptir
# Ünite G:

[group]
comment = Directory of Group
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770

#------------------------------------------------------------------------------------------------------------#
# Bu ünite uygulamaları, yüklemeyi, yazılımı,
# ortak yazılımı vs... saklamak içindir.
# /net ve /net/install un izinleri 755, dir: burada yetkinkullanıcı dosya sahibidir.
# Ünite N:

[net]
comment = Directory Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750

#------------------------------------------------------------------------------------------------------------#
[netlogon]
comment = Logon Services in the Network
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

#------------------------------------------------------------------------------------------------------------#

#============================================================#

Son Değerlendirmeler

Samba paketi ve Linux için diğer araçlar günden güne gelişmektedir. Dolayısıyla burada anlatılan bir kısım ayrıntı geçerliliğini yitirecektir. Sambanın gelişimi esnasında daha iyi bir yapıya ulaşmak için yapılandırım dosyalarındaki bazı parametre adları değişti.

Eğer SAMBA yapılandırımı sırasında bilinmeyen parametreler ile ilgili bazı hata mesajları alırsanız; sorunu çözmek için iiki basit olasılık önereceğim:

Kaynaklar: Kaynakça ve Yazılım Araçları

Yayım Hakkı Notları:

SAMBA GPL lisansı altında üretilmiş bir üründür.
Linux Linus Torvalds'a tescillidir.
Solaris işletim sistemidir ve Sun Microsystems'a tescillidir.
MS Windows işletim sistemidir ve Microsoft'a tescillidir.
SAMBA kullanımı Microsoft lisans ücretleri ödemekten büyük oranda bizi kurtarır.