Samba - instalacja, konfiguracja, administracja. Strona 1 z 14
SAMBA - INSTALACJA, KONFIGURACJA, ADMINISTRACJA
© 2001-11-20 Bartek SiÄ™bab ver. 1.8
WSTP
Czym jest Samba?
W niniejszym artykule starałem się przedstawić pokrótce serwer plików i drukarek w sieciach TCP/IP zgodny
usÅ‚ugami udostÄ™pniania w sieciach Windows®. Zamiast ponosić wysokie koszty zakupu Windows NT® lub
Windows 2000® mo\emy zainstalować na serwerze uniksowym darmowÄ… SambÄ™, która dla pecetów w sieci
działa i zachowuje się dokładnie jak powy\sze oprogramowanie firmy Microsoft. Uzyskujemy jednocześnie
środowisko o nieporównanie większych mo\liwościach rozwoju i skalowalności.
Opracowanie ma charakter uniwersalny, w miarę mo\liwości niezale\ny od systemu operacyjnego na którym
instalujemy i konfigurujemy SambÄ™ w wersji 2.0.9.
INSTALACJA
Ka\dy system posiada wsparcie dla instalowania dodatkowych pakietów oprogramowania (np. ports, packages
we FreeBSD lub RPM w Linux), tak więc najprościej skorzystać z tego udogodnienia aby zainstalować
najnowszą wersję Samby. Jednak chcąc zachować uniwersalność tego artykułu wykonamy to "na piechotkę".
Obecnie zalecana wersja Samby to 2.0.9 w której wyeliminowano bug w zapisie tymczasowych plików kolejki
wydruku w sposób niekontrolujący istnienia linków do innych plików, co mogło prowadzić do naruszenia
bezpieczeństwa. Najnowsza wersja Samby z nowej gałęzi rozwojowej to 2.2.2 i wspiera ona system autoryzacji
w domenie NT/Windows 2000.
Całość procesu opisanego w artykule wykonujemy jako superu\ytkownik root. Z polskiego mirrora ściągamy,
rozpakowujemy, konfigurujemy i kompilujemy dystrybucjÄ™ Samby:
$>cd /usr/install
$>wget -c -o log.txt ftp://giswitch.sggw.waw.pl/pub/unix/samba/samba-2.0.9.tar.gz
$>tar -zxvf samba-2.0.9.tar.gz
$>cd samba-2.0.9/source
$>./configure --localstatedir=/var/log/samba --sysconfdir=/etc
$>make && make install && make clean
Są dwa sposoby uruchamiania usług Samby, standardowo poprzez inetd lub jako daemony (np.
z /usr/local/etc/rc.d/samba.sh). Prostszym i łatwiejszym, a zarazem efektywniejszym dla małych instalacji (rzędu
<30 pecetów) jest start usług z /etc/inetd.conf. Po dopisaniu obu linijek musimy powiadomić inetd o zmienionej
konfiguracji i sprawdzamy czy usługi zostały uruchomione. Formalnie nale\y tak\e sprawdzić czy w
pliku /etc/services sÄ… odpowiednie wpisy (sieć Windows® "okupuje" porty 137, 138, 139). Jest jeszcze trzeci wpis
dotyczący usługi konfiguracji Samby poprzez przeglądarkę (Swat) o czym mo\na przeczytać w dokumentacji. Ze
względów bezpieczeństwa nie polecam tej usługi, dlatego tutaj nie będziemy jej uruchamiać. Przed startem usług
nale\y jednak stworzyć poprawny plik konfiguracji zasobów Samby, o czym pózniej.
$>cd /etc
$>cat inetd.conf | grep netbios
/etc/inetd.conf:
# Enable the following two entries to enable samba netbios startup from inetd
# (from the Samba documentation) netbios settings:
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd
$>killall -HUP inetd
$>netstat -a | grep netbios
tcp 0 0 *.netbios-ssn *.* LISTEN
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 2 z 14
udp 0 0 venom.netbios-dgm *.*
udp 0 0 venom.netbios-ns *.*
udp 0 0 *.netbios-dgm *.*
udp 0 0 *.netbios-ns *.*
KONFIGURACJA
Przystępujemy do stworzenia poprawnej konfiguracji udostępnianych zasobów. Przed tym jednak zmodyfikujemy
usługi drukowania serwera pod kątem udostępnienia drukarki sieciowej dla naszych pecetów. W systemach
*BSD odpowiednie wpisy muszą się znalezć w pliku /etc/printcap.
$>grep -v ^\# printcap
hpdj|lp|Atramentowka HP DeskJet:\
:sh:rw:sf:mx#0\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
Warto tutaj wspomnieć, \e pozycja mx#0 jest wymagana do poprawnej pracy drukarki i wyłącza limit wielkości
pliku wysyłanego do drukarki (domyślnie 1MB). Większość problemów wynikająca z dziwnego zachowania
drukarki przy wydrukach z Windows® wynika z braku tego\ wpisu. ZakÅ‚adamy, \e uniksowy daemon drukowania
został zrestartowany i działa poprawnie po dokonaniu zmian w /etc/printcap.
Przejdzmy zatem do konfiguracji zasobów udostępnianych przez Sambę. Tworzymy i edytujemy
plik /etc/smb.conf dokonując wpisów wymaganych dla poprawnego działania naszej sieci. Po modyfikacjach
warto przetestować poprawność składniową pod kątem wystąpienia m.in. literówek itp. (polecenie testparm).
Najprościej będzie dostosować do własnych potrzeb poni\szy plik konfiguracji. Bogato opatrzonego
komentarzami
cytuję go tutaj w całości. W dalszej części artykułu omówię wybrane, wa\ne aspekty tej konfiguracji. Pomoc na
temat poszczególnych parametrów jest dostępna w dokumentacji Samby. Obejrzymy ją wydając polecenie "man
smb.conf". Podczas instalacji Samby, oprócz dokumentacji i manuala, otrzymujemy doskonałą ksią\kę w postaci
stron html. W systemie FreeBSD domyślnie jest ona instalowana w katalogu
"/usr/local/samba/swat/using_samba". Nosi ona tytuł "Using Samba" autorami są R.Eckstein, D.Collier-Brown,
P.Kelley.
Tutaj zamieszczam polskie wydanie tej ksiazki w pdf'ie (3,6MB).
Listing pliku konfiguracji Samby (smb.conf) nie zmieścił się w wydaniu Software nr. 11 z powodu jego wielkości,
został jednak umieszczony na płycie CD sprzedawanej wraz z numerem. Jest umieszczony wraz z innymi
listingami na CD w pliku \Opis\listingi.html a jego najnowsza wersja jest poni\ej.
$>cat /etc/smb.conf
###################################################################
# sekcja globalnej konfiguracji Samby
# (c)2000,2001 bs@vt.pl
#
[global]
comment = Polaczenie z venom ...
log file = /var/log/samba/%I.log
dont descend = /dev,/proc,/root,/stand,/bin,/dist,/etc,/lkm,/mnt,/sbin,/sys,/usr
# opcje dla 10/100Mbit Half/Full Duplex
# takie ustawienie daje maksymalną szybkość w LAN
# w zale\ności od specyfiki konkretnej sieci, mo\e wymagać modyfikacji
socket options = TCP_NODELAY SO_SNDBUF=16384 SO_RCVBUF=16384 IPTOS_LOWDELAY
# włączenie tych dwóch opcji zwiększa zwykle szybkość Samby o kilkanaście procent
# choć z moich analiz wynika, \e praca z bazami danych jest trochę szybsza bez tego
read raw = yes
write raw = yes
# buforowanie katalogów
getwd cache = yes
# buforowanie zapisu plików zdecydowanie poprawia prędkość
# ale stwarza niebezpieczeństwo \e Samba "nie zdą\y" zrzucić buforów na dysk
# przy np. padzie zasilania (bez ups'a) plik taki będzie uszkodzony
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 3 z 14
# coś za coś, stosować z umiarem ;)
write cache size = 65536
# nadajemy Sambie nazwÄ™ w sieci windows
netbios name = venom
# chcemy mieć w miarę szczegółowe logi z dostępu do plików i zasobów
debug level = 2
debug timestamp = no
timestamp logs = True
# wielkość logów na peceta w KB, logi automatycznie przycinane przez Sambę
# czyli w rzeczywistości mamy zawsze po dwa pliki: oryginał i oryginał.bak
max log size = 5000
# chcemy aby Samba "słuchała" tylko na jednej z kilku naszych kart sieciowych
bind interfaces only = True
interfaces = 10.0.0.1/255.255.255.0
hosts allow = localhost, 10.0.0.0/255.255.255.0
# tutaj konfigurujemy sposób obsługi drukowania
printing = bsd
printcap name = /etc/printcap
map archive = no
status = yes
public = no
read only = no
lpq cache time = 10
# tutaj ustawiamy opcje dotyczące konwersji nazw plików, wielkości liter itp.
preserve case = yes
short preserve case = yes
strip dot = no
hide dot files = yes
# strona kodowa na pecetach
client code page = 852
# strona kodowa na uniksie
character set = iso8859-2
# tryb poziomu bezpieczeństwa zasobów
# (user=wymagane konto na uniksie oraz konto samby)
security = user
guest ok = no
browseable = yes
# domyślny tryb tworzenia plików -rw------
create mode = 0700
# to odpowiada za superdostęp którego jednak nie chcemy :)
# admin users = root
# przydatne
unix realname = yes
# ka\dy dozwolony zapis do pliku zmienia timestamp pliku (jak w dos)
dos file times = yes
# ustawiamy grupÄ™ roboczÄ… naszej sieci
workgroup = vtest
# zrzucamy połączenie po czasie 15minut w przypadku braku otwartych plików
# lub braku odpowiedzi z peceta
dead time = 15
keep alive = 15
# parametry ilości otwarych plików, zasobów itp.
mangled stack = 100
shared mem size = 1048576
max open files = 500
# chcemy aby Samba obsługiwała wyświetlanie wszystkich zasobów sieci, oraz udostępniała
# tzw roaming profiles (jak w NT)
domain master = yes
local master = yes
preferred master = yes
# poniewa\ mamy tylko jedną podsieć, "cross subnet browsing"
# nie będzie nam potrzebny. Być mo\e zrobimy drugą podsieć, zatem włączymy usługę WINS
wins support = yes
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 4 z 14
os level = 64
# niech nasza Samba działa "prawie" jak NT
nt smb support = yes
nt pipe support = yes
nt acl support = no
# Logowanie do domeny dla Windows 3.x, 95, 98,
# przechowywanie profili u\ytkowników na serwerze
# włączenie skryptów logowania mapujących np. dyski, drukarki itp.
domain logons = yes
logon script = startup.bat
logon path = \\%L\%U
# chcemy \eby wszystkie pecety synchronizowały datę i czas zgodnie
# z naszym serwerem (jak w NetWare)
time server = True
# kolejność w jakiej Samba robi rozwiązywanie nazw netbiosowych pecetów
name resolve order = wins bcast hosts lmhosts
# nie chcemy, aby hasło windows'a = hasłu uniksa
# bowiem wymaga to specyficznego skonfigurowania procedury synchronizacji
# zale\nej od konkretnego uniksa
unix password sync = false
update encrypted = no
passwd program = /usr/bin/passwd %u
passwd chat debug = false
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *updating*done*
# chcemy, \eby hasła były szyfrowane (jak w Windows 98, NT),
# Windows 95 wymaga przestawienia na takÄ… pracÄ™
# poprzez modyfikację rejestru. Odpowiednie pliki *.reg są dostępne w zródłach Samby.
# Tryb pracy z szyfrowanymi hasłami Samby pozwala na zmianę
# hasła sieciowego z poziomu "Panelu sterowania" w Windows.
encrypt passwords = yes
null passwords = false
# Komentarz widoczny w trybie szczegółów w "Otoczeniu sieci" Windows
server string = Serwer Venom
# Sekcje konfiguracji zasobów Samby
###################################################################
[homes]
# ta sekcja mapuje uniksowy katalog $HOME u\ytkownikowi
comment = Twoj wlasny katalog
# przykładowo, prawa na katalogach domowych u\ytkowników /home
# powinny wyglądać tak:
# $>ls -l /home
# drwx------ 3 piotrek piotrek 512 22 Sty 2000 piotrek
# prawa do plików i katalogów tylko dla właściciela
create mode = 0700
directory mode = 0700
public = no
writable = yes
# ście\ka do zasobu (czyli $HOME z /etc/passwd)
path = /home/%u
browseable = no
# zezwalamy na agresywne buforowanie plików przez Windows co
# daje znaczące zwiększenie szybkości Samby.
# Bezsensownym jest stosowanie tego na zasobach bazodanowych itp.
# "oplock" = "opportunistic lock"
oplocks = True
level2 oplocks = True
# przykładowo zabraniamy oplock'ów na plikach *.dbf i *.DBF
# veto oplock files = /*.DBF/*.dbf/
###################################################################
[netlogon]
# ta sekcja udostępni zasób dla wszystkich, przy logowaniu do serwera
# w którym trzymamy globalny logonskrypt,
# pliki zało\eń Windows Policy (config.pol) - patrz dokumentacja Windows,
# a w szczególności program poledit.exe. Windows przy logowaniu nakłada
# parametry i ograniczenia pobierane z pliku config.pol na logujÄ…cego siÄ™
# u\ytkownika. Modyfikowany jest rejestr tego u\ytkownika.
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 5 z 14
# prawa na katalogu powinny być takie:
# drwxr-xr-x 2 root wheel 512 14 Sty 2000 netlogon
comment = Net Logon Service
path = /home/netlogon
case sensitive = no
create mode = 0755
directory mode = 0770
guest ok = yes
# nie potrzebujemy blokowania plików bo zasób jest tylko do odczytu
locking = no
writable = no
share modes = no
browseable = yes
# pozwalamy jednak na zapis do niego u\ytkownikom w uniksowej grupie inf,
# patrz plik /etc/group
write list = @inf
###################################################################
[hpdj]
# tutaj udostępnimy drukarkę sieciową
# nazwa [hpdj] musi być identyczna jak w /etc/printcap
# tu wrzucane będą pliki tymczasowe wydruków, następnie kasowane
# po przesłaniu na drukarkę przez daemona lpd
path = /home/tmp
comment = HP Desk Jet 600
writable = yes
printable = yes
create mode = 0700
read only = yes
# ta drukarka jest tylko dla u\ytkowników uniksowej grupy pub
write list = @pub
# oraz wyłącznie z serwera i tych pecetów
hosts allow = 10.0.0.1 10.0.0.100 10.0.0.110
# tą komendą Samba będzie drukować
print command = /usr/bin/lpr -r -h -P %p %s
###################################################################
[pub]
# Zrobimy zasób dostępny dla wszystkich z naszej sieci Windows,
# posiadajÄ…cych konto na serwerze
# prawa na tym katalogu powinny być takie:
# drwxrwx--- 2 root pub 512 25 Sie 22:59 pub
path = /home/pub
volume = pub
comment = Katalog dla lokalnych
browseable = yes
# prawa muszą być tak\e dla grupy, bowiem nikt z członków grupy
# nie mógłby nic zrobić z plikami innego członka grupy
create mode = 0770
directory mode = 0770
write list = @pub
oplocks = True
level2 oplocks = True
# dajemy dostęp do niego tylko z części sieci
hosts allow = 10.0.0.1/255.255.255.240
###################################################################
[goscie]
# Zróbmy katalog dla innej grupy
path = /home/goscie
volume = goscie
comment = Katalog dla wszystkich
browseable = yes
create mode = 0770
directory mode = 0770
write list = @goscie
oplocks = True
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 6 z 14
level2 oplocks = True
###################################################################
[bazy]
# Specjalna sekcja na potrzeby systemów bazodanowych, finansowo
# księgowych itp. Dostęp współdzielony bez oplock'ów
path = /home/bazy
volume = bazy
comment = Katalog baz danych
browseable = yes
create mode = 0770
directory mode = 0770
write list = @bazy
# zakaz stosowania agresywnego buforowania przez windows
oplocks = False
dos filetime resolution = True
###################################################################
[cdrom]
# Czasem trzeba coś zainstalować na pecetach z udostępninego
# i podmontowanego cdromu na uniksie :)
# drwxr-xr-x 2 root wheel 512 15 Kwi 17:45 cdrom
path = /cdrom
volume = cdrom
comment = Naped CDROM
read only = yes
fake oplocks = yes
locking = no
writable = no
share modes = no
###################################################################
[programy]
# a tu trzymamy ró\ne programy dla pecetów
path = /home/programy
volume = programy
comment = Programy uzytkowe i nietylko
#read only = yes
create mode = 0775
directory mode = 0775
#fake oplocks = yes
oplocks = True
level2 oplocks = True
#locking = yes
#writable = no
#share modes = no
# oczywiście prawo zapisu ma tylko uniksowa grupa programy
write list = @programy
# czytać pliki mo\e uniksowa grupa pub i goscie
read list = @pub, @goscie
hosts allow = 10.0.0.0/255.255.255.0
###################################################################
[www]
# u\ytkownicy naszej sieci wolą robić strony www lokalnie,
# na swoich komputerach, pracujÄ…c z zamapowanego dysku serwera i
# strasznie nie lubiÄ… zabawy z u\yciem ftp do wkopiowywania
# stron na serwer, tak więc Sambo! Do dzieła!
# prawa na tym katalogu powinny być takie:
# drwxr-xr-x 4 root pub 512 27 Sie 09:23 www
# a wewnątrz katalogi u\ytkowników dostępne ze świata poprzez
# Apache Web Serwer (co wymaga odpowiedniej konfiguracji apacza)
# articles 40 root wheel lrwxr-xr-x
# ~books 37 root wheel lrwxr-xr-x
# ~faq 18 root wheel lrwxr-xr-x
# ~handbook 23 root wheel lrwxr-xr-x
# ~samba 28 root wheel lrwxr-xr-x
# ~sharedoc 20 root wheel lrwxr-xr-x
# /tom 1024 tom nobody drwxr-x---
# /www.pit.com.pl 512 mikek nobody drwxr-x---
# index.html 688 webmaster webmaster -rw-rw-r--
# ...
#
path = /home/www
volume = www
comment = Dla stron WWW
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 7 z 14
create mode = 0775
directory mode = 0775
write list = @pub
oplocks = false
level2 oplocks = false
###################### KONIEC KONFIGURACJI ########################
###################################################################
KONFIGURACJA SIECI
Chcąc wykorzystać zdolność Samby do przechowywania zindywidualizowanych ustawień u\ytkowników
Windows® nale\y w odpowiedni sposób skonfigurować sieć oraz wÅ‚Ä…czyć profile (Rysunek 1).
Konfiguracja sieci w Windows® wymaga zainstalowania
protokołu TCP/IP, przyznaniu adresu IP oraz kilku opcji.
Adres IP musi być umieszczony, wraz z nazwą peceta bądz
w /etc/hosts na uniksie bądz w naszym DNS. Niezbędne jest
ustawienie nazwy "Netbios" peceta na zakładce
"Identyfikacja" we "Właściwościach Sieci", podanie tej samej
grupy roboczej co w pliku /etc/smb.conf, opisu komputera
(Rysunek 2), a tak\e logowania do domeny NT. Nazwa
domeny jest identyczna jak nazwa grupy roboczej (Rysunek
3). W celu zapewnienia poprawnego wyświetlania zasobów
naszych podsieci musimy utrzymywać serwer WINS,
którego rolę mo\e pełnić Samba (o ile parametry pliku
sbm.conf na to zezwalajÄ…). Nale\y poinformować Windows®
o adresie serwera WINS, co musi być wykonane
bezwzględnie na wszystkich pecetach we wszystkich
podsieciach pod rygorem niepoprawnej obsługi tzw. "cross
subnet browsing", czyli prezentacji udostępnianych zasobów
przez wszystkie komputery we wszystkich podsieciach
(patrz dokumentacja Samby). Bardzo wa\ne jest poprawne
ustawienie maski podsieci w konfiguracji TCP/IP na
pecetach. Błędna maska spowoduje błędne rozgłaszanie się
Windows gdy\ u\yjÄ… niepoprawnego adresu broadcast. Jest
to zródłem problemów powstających w relacji Samba -
Windows, nieraz bardzo trudnych do zidentyfikowania.
Najprościej rzecz ujmując, maska musi być identyczna jak na interfejsie serwera do którego dana podsieć jest
przyłączona (Rysunek 4).
Powy\sze zasady zagwarantują pózniejsze bezproblemowe działanie naszej sieci wraz ze wszystkimi
podsieciami. Przy większych instalacjach oraz przy podziale na podsieci względem grup roboczych (np. ró\ne
oddziały firmy w ró\nych miastach), warto zainstalować po jednym z serwerów Samby w ka\dej jednostce, co
zaoszczędzi nam i tak małej przepustowości łącz międzyoddziałowych oraz zwiększy szybkość działania
lokalnych grup roboczych. W takiej sytuacji niezbędnym staje się właśnie serwer WINS, z którego lokalne
serwery oddziałowe będą pobierać informacje o udostępnianych zasobach. W całej naszej rozległej sieci
powinien być wyłącznie jeden taki serwer i nie koniecznie musi być nim Samba, jednak tutaj skupimy się na
konfiguracji Samby przystosowanej do tego celu.
Pewnym skutkiem ubocznym jest długotrwałe utrzymywanie
w otoczeniu sieciowym komputerów udostępniających
zasoby, nawet po ich fizycznym wyłączeniu z prądu. Jedyną
metodÄ… skracajÄ…cÄ… ten czas jest ustawienie poni\szych
parametrów w pliku /etc/smb.conf na serwerach Samby
(mogą wystąpić inne uboczne skutki przy zbyt małych
czasach tak więc zale\ne jest to od konkretnej instalacji,
poni\sze parametry wydają się być optymalne dla kilku
serwerów):
# skrócenie domyślnych czasów utrzymywania list zasobów w sieci
# domyślny czas utrzymywania nazw Netbios przez Sambę
max ttl = 10800
# domyślne czasy utrzymywania nazw Netbios przez WINS
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 8 z 14
max wins ttl = 36000
min wins ttl = 18000
Konfiguracja "domain master browser", na którym równocześnie będzie działać serwer WINS, powinna wyglądać
jak w poni\szym przykładzie:
# domain master browser + WINS serwer
local master = yes
preferred master = yes
wins support = yes
os level = 64
Konfiguracja "local master browser", powinna wskazywać (je\eli chodzi o WINS), na nasz główny serwer i
wyglądać tak:
# lokalny serwer oddziału firmy
domain master = no
local master = yes
preferred master = yes
# adres serwera głównego, na którym jest nasz WINS
wins server = 10.0.0.1
max ttl = 10800
max wins ttl = 36000
min wins ttl = 18000
os level = 32
name resolve order = wins bcast hosts
Takie ustawienia wymuszają synchronizację pomiędzy serwerami lokalnymi, a głównym serwerem, na którym
jest WINS.
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 9 z 14
PROFILE
WÅ‚Ä…czenie profili u\ytkowników wymusza na Windows® utrzymywanie osobnych ustawieÅ„ dla ka\dego
u\ytkownika. SÄ… one przechowywane w podkatalogu "C:\WINDOWS\PROFILES\", gdzie tworzone sÄ… katalogi o
nazwach u\ytkowników. Ka\dy zawiera kompletne "MENU START" z zawartością, osobny plik rejestru
USER.DAT i inne. Przy pierwszym wylogowaniu się z serwera, zawartość kopiowana jest do katalogu domowego
u\ytkownika (co zresztą określone jest w /etc/smb.conf). Zalogowanie się do sieci powoduje zsynchronizowanie
lokalnej i zdalnej zawartości profilu i ewentualne jego skopiowanie z serwera na dysk lokalny.
Pozwala to na przesiadkę na innego peceta gdzie po zalogowaniu do sieci (przy włączonych profilach)
Windows® udostÄ™pni nam nasze menu, ustawienia itd. Ubocznym skutkiem jest kopiowanie tej struktury na
lokalne dyski (coś za coś) oraz tworzenie pliku z hasłami (*.pwl, mo\na to wyłączyć odpowiednim wpisem do
rejestru, patrz dokumentacja Samby).
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 10 z 14
Logowanie do sieci wymusza na Windows® wykonanie skryptu startowego (co okreÅ›la odpowiedni wpis
w /etc/smb.conf). Jest to zwyczajny plik wsadowy (batch np. startup.bat) koniecznie edytowany w trybie MS-DOS
tzn. z CR+LF na końcach linii (np. $>joe -crlf startup.bat). Mo\na tak\e skorzystać z konwersji pliku narzedziami
unix2dos oraz dos2unix. Ostatnia linia nie mo\e powodować wywołania programu, z którego nie ma powrotu np.
wywoÅ‚anie Norton Commander® itp. gdy\ Windows® po prostu siÄ™ nam zawiesi. Poni\szy przykÅ‚ad demonstruje
główny plik startup.bat z którego wywoływany jest plik zindywidualizowany startup.bat z katalogu domowego
u\ytkownika:
@echo off
REM Główny startup.bat w katalogu netlogon
REM \\venom\netlogon\startup.bat powinien mieć np. takie prawa:
REM -rw-rw-r-- 1 root wheel 277 4 Sie 10:58 startup.bat
REM
REM Synchronizacja daty i czasu z serwerem
net time \\venom /set /yes
REM mapowanie dysków
net use u: /home /yes
net use p: \\venom\pub /yes
net use r: \\venom\programy /yes
net use s: \\venom\goscie /yes
net use y: \\venom\cdrom /yes
REM Jeśli jest prywatny to go uruchamiamy
if exist u:\startup.bat call u:\startup.bat
Po wykonaniu tego skryptu, zostanie równie\ wykonany skrypt u\ytkownika "startup.bat" o ile istnieje w jego
katalogu domowym na dysku U:. Pozwala to na indywidualne traktowanie u\ytkowników, na dostosowywanie
środowiska pracy u\ytkowników oraz pozwala im na edycję tych ustawień:
@echo off
REM Plik startowy indywidualny u\ytkownika
REM powinien być w katalogu $HOME u\ytkownika i mieć prawa:
REM -rw------- 1 pit pit 106 3 Lip 18:51 startup.bat
REM mapowania dysków wykonywane w tym pliku,
REM przykrywajÄ… mapowania wykonane w globalnym startup.bat
REM
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 11 z 14
net use k: \\venom\bazy /yes
net use w: \\venom\www /yes
REM mapowanie drukarki
net use LPT3 \\venom\hpdj /yes
DOMENY PDC
Samba w wersji 2.0.9 potrafi współpracować z domenami Windows NT® jednak z Windows 2000® wystÄ™pujÄ…
pewne problemy, które mają zostać usunięte w kolejnej wersji Samby. Zakładamy \e kontrolerem domeny jest
Windows® (NT lub 2000), on te\ obsÅ‚uguje serwer WINS, i "domain master browser". Wymagane parametry w
pliku konfiguracyjnym /etc/smb.conf wyglądają wtedy następująco:
# konfig dla pracy z kontrolerem domeny NT
security = domain
#password server =
password server = 10.0.0.200 10.0.0.201
encrypt passwords = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY IPTOS_THROUGHPUT
# os level = 0 załatwia sprawę współzawodnictwa z Windows NT master browse
# do wymaganego minimum
os level = 0
#domain controller =
domain controller = 10.0.0.200
#wins server =
wins server = <10.0.0.200>
dns proxy = no
Niezbędne jest tak\e dokładne przestudiowanie dokumentacji Samby, opisującej w jaki sposób nale\y
skonfigurować Windows® i SambÄ™ w celu przystosowania ich do takiego trybu pracy. Ten artykuÅ‚u ma jedynie
zasygnalizować taką mo\liwość, dlatego nie będziemy się zagłębiać w tym kierunku wyręczając autorów Samby
w przekazywaniu nam swojej wiedzy. :-)
UśYTKOWNICY
Zakładając, \e wykonaliśmy instalację i konfigurację Samby, dodajmy teraz u\ytkowników do naszego serwera.
Powinniśmy tutaj posłu\yć się standardowym dla naszego uniksa narzędziem, przy czym dla u\ytkowników
wyłącznie sieci Windows, nie przydzielamy shella (bo i po co?). Wyjątkowo dla u\ytkowników posiadających
konto pocztowe na tym samym serwerze, mo\emy przydzielić zamiast shell'a program "passwd" do zmiany hasła
uniksowego. Przydzielanie programu "smbpasswd" jest niecelowe, bowiem u\ytkownik ma mo\liwość zmiany
hasÅ‚a sieciowego Windows® z "Panelu Sterowania" (ikona "HasÅ‚a"). Jest to tak\e naruszeniem bezpieczeÅ„stwa.
Podawanie jawnym tekstem nowego hasła sieciowego (jak to jest w przypadku passwd i smbpasswd) mo\e być
podsłuchane i wykorzystane do nieuprawnionego dostępu do zasobów serwera. Najlepszym rozwiązaniem jest
całkowite wyłączenie shell'a lub udostępnienie bardziej zaawansowanym u\ytkownikom konta uniksowego, z
wyłączną mo\liwością zalogowania się przy u\yciu szyfrowanych protokołów (np. ssh). Polecam tu szczególnie
darmowy program terminala dla Windows® - PuTTY SSH.
$>smbpasswd -a adam
added interface ip=10.0.0.1 bcast=10.0.0.255 nmask=255.255.255.0
New SMB password:
Retype new SMB password:
User adam does not exist in system password file (usually /etc/passwd).
Cannot add account without a valid local system user.
Failed to modify password entry for user adam
Jak widać Samba wyraznie zmusza nas do wcześniejszego zało\enia u\ytkownika w uniksie. Kiedy Konto
uniksowe jest ju\ zało\one, katalog domowy utworzony a prawa poprawnie ustawione mo\emy przejść do
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 12 z 14
dodania u\ytkownika do Samby.
$>smbpasswd -a pit
added interface ip=10.0.0.1 bcast=10.0.0.255 nmask=255.255.255.0
New SMB password:
Retype new SMB password:
$>
Skutkuje to dopisaniem do pliku u\ytkowników. Zwykle jest on w katalogu "/usr/local/samba/private/" jednak to
mo\e zostać zmienione, na etapie konfiguracji i kompilacji Samby.
$>cd /usr/local/samba
$> ls -ld private
drwx------ 2 root wheel 512 14 Sty 2000 private
$>cd private
$>ls -l
-rw-r--r-- 1 root wheel 41 14 Sty 2000 MACHINE.SID
-rw------- 1 root wheel 557 9 Wrz 14:40 smbpasswd
$>cat smbpasswd
pit:2004:DD02BA4D905304F3AAD3B435B51404EE:BE21EF1208C298133C9CB4AD2791E55A:[U ]:LCT-3989BF65:
Narzędzie smbpasswd ma wiele dodatkowych opcji, pozwalających na blokowanie dostępu, zmianę lub
usunięcie hasła, usunięcie u\ytkownika, dodanie do domeny NT itp. Szczególnym trybem działania jest przejście
Samby z haseł nieszyfrowanych na szyfrowane, co tak\e opisuje dokumentacja. Samba działając na
nieszyfrowanych hasłach posługuje się standardowymi plikami haseł uniksa i nie wymaga dodawania
u\ytkowników do Samby.
PamiÄ™tajmy jednak \e wtedy z poziomu panelu sterowania Windows® nie mo\na zmienić hasÅ‚a i trzeba to robić
tradycyjnym uniksowym passwd. Pamiętajmy \e smbpasswd działa w trybie klient-serwer dlatego wymagane jest
aby uniks jako "localhost" miał zezwolenie na dostęp do Samby (polecam zapoznanie się z plikami *.TXT z
dokumentacji Samby).
Bardzo pomocnym narzędziem w codziennym działaniu Samby jest "smbstatus", pokazujący stan wszystkich
połączeń z Sambą, otwarte pliki, blokady itp.:
$>smbstatus
Samba version 2.0.9
Service uid gid pid machine
----------------------------------------------
pit pit pit 3854 stone (10.0.0.100) Wed May 9 13:48:48 2000
hpdj pit pit 3854 stone (10.0.0.100) Wed May 9 14:10:13 2000
www pit pit 3854 stone (10.0.0.100) Wed May 9 15:15:19 2000
bazy pit pit 3854 stone (10.0.0.100) Wed May 9 15:15:33 2000
Locked files:
Pid DenyMode R/W Oplock Name
--------------------------------------------------
3854 DENY_NONE RDWR NONE /home/bazy/mag/MAG_02/ZAM_PART.DBF Wed May 9 15:16:52 2000
3854 DENY_NONE RDWR NONE /home/bazy/mag/MAG_02/OBROTY.DBF Wed May 9 15:16:52 2000
3854 DENY_NONE RDWR NONE /home/bazy/mag/CENNIK1.NTX Wed May 9 15:16:52 2000
3854 DENY_NONE RDWR NONE /home/bazy/mag/CENY_DW3.NTX Wed May 9 15:16:52 2000
3854 DENY_WRITE RDWR EXCLUSIVE+BATCH /home/pit/startup.bat Wed May 9 15:15:27 2000
3854 DENY_NONE RDONLY EXCLUSIVE+BATCH /home/pit/S.TXT Wed May 9 14:16:27 2000
Share mode memory usage (bytes):
1042512(99%) free + 5176(0%) used + 888(0%) overhead = 1048576(100%) total
Na powy\szym zestawieniu widać, \e w przypadku plików bazy danych Samba nie stosuje oplock'a (zezwolenia
na agresywne cache'owanie pliku przez windows) natomiast plik S.TXT ma właśnie taki tryb dostępu. Zamknięcie
pliku nadal nie jest widoczne bowiem jest on w dyspozycji peceta a\ do momentu, gdy jakiÅ› inny komputer
poprosi Sambę o otwarcie tego samego pliku. Następuje wtedy negocjacja Samby z obydwoma komputerami,
która objawia siÄ™ dla u\ytkowników chwilowym zablokowaniem Windows®.
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 13 z 14
W tym czasie, Samba kontaktuje się z klientem który jako pierwszy otrzymał oplock do pliku. Windows po
otrzymaniu rozkazu przerwania oplock'a wie, \e nie mo\e ju\ korzystać z buforowania pliku i musi czytać go
ponownie z serwera. Drugi klient po całej tej "rozmowie" otrzymuje dostęp do pliku. Mo\e to trwać kilka do
kilkunastu sekund. W tym czasie obydwa komputery są zablokowane, co czasem ma wpływ na ich właścicieli i
kończy się przedwczesnym zresetowaniem komputera, przez zniecierpliwionego u\ytkownika. Mo\na ten czas
regulować jednak domyślne wartości wydają się być optymalne. Najlepiej uprzedzić u\ytkowników a takich
skutkach ubocznych, informując \e niestety jest to niezbędne, je\eli chcemy mieć bardzo wydajny serwer plików.
Explorator Windows® ma tendencjÄ™ do zczytywania poczÄ…tków plików przy przeglÄ…daniu zawartoÅ›ci dysków (np.
w celu rozpoznania typu pliku, odczytaniu ikony itp.). Ta cecha powoduje \e pliki "hurtowo" zostajÄ… otwierane w
trybie oplock. Kiedy z takiego katalogu korzysta wielu u\ytkowników najlepiej jednak będzie zrezygnować z
oplock'ów. Częściowo zostało to poprawione w Sambie, poprzez wprowadzenie parametru:
"level2 oplocks = True"
Z moich doświadczeń wynika, \e ten tryb blokowania plików najlepiej sprawdza się w katalogach domowych
u\ytkowników, zapewniając maksymalną wydajność Samby a tak\e w niewielkich grupach roboczych. Tam gdzie
z zasobu korzysta du\a liczba u\ytkowników, najlepiej od razu wymusić na Sambie pracę bez oplock'ów.
SZYBKOŚĆ
Samba w przypadku sieci, gdzie ilość stacji roboczych jest niewielka, wykazuje się transferami podobnymi jak
Windows® NT czy 2000. Gdy liczba klientów wzrasta, zaczynamy dostrzegać przewagÄ™ Samby jako serwera
plików i drukarek. Samba doskonale radzi sobie z obcią\eniami rzędu kilkudziesięciu pecetów. Wąskim gardłem
jest sieć oraz szybkość dysków i tak:
Serwerek AMD-K6 233MHz 32MB RAM 20GB HDD IBM 5400rpm FreeBSD 3.5 Samba 2.0.9
Sieć: | 10Mbit Half Duplex | 100Mbit FullDuplex
-----------|---------------------|----------------------
Transfery: | 800.000 bajtów/sek. | 3.200.000 bajtów/sek.
Test wykonany poprzez zwyczajne kopiowanie około 200MB plików systemu magazynowego.
Protokoły CIFS Samby są w stanie uzyskać około 80% przepustowości sieci.
Transfer maksymalny na sieci 100Mbit nie został osiągnięty z braku szybszych dysków :)
Samba zu\ywa około 2-3 MB RAM na ka\dego klienta. Z tym \e przy bezczynności klienta, pamięć jest
zwalniana -poprzez zrzut do swap'u- o ile jest to konieczne i wymagane przez serwer uniksowy. Nie wszytkie
uniksy tak się zachowują. W przypadku braku pamięci robi tak np. FreeBSD, natomiast nie robi tego Linux. Stąd
zwyczajny komputer działający jako niewielki serwerek z 32MB RAM oraz z systemem FreeBSD, doskonale
obsługuje sieć zło\oną z 25 komputerów.
ZAKOCCZENIE
Niniejszy artykuł został napisany dla miesięcznika "SOFTWARE", do numeru specjalnego poświęconego
systemom FreeBSD, NetBSD, OpenBSD.
Nie omawiam w nim wielu specyficznych parametrów dla ka\dego z nich, np. parametrów kernela FreeBSD
pozwalających na trzymanie blokad plików przez Sambę w pamięci współdzielonej zamiast w pliku dyskowym,
zwiększenia ilości mo\liwych do otwarcia plików itp. (mo\na o tym przeczytać w dokumentacji twojego systemu
uniks - konfiguracja kernela, opcje dotyczące SYSV). Być mo\e wersja online będzie bardziej rozbudowana i
poruszy jeszcze wiele innych aspektów dziaÅ‚ania sieci Windows® z serwerem Samba na pokÅ‚adzie systemów
BSD. Ilość specyficznych parametrów dla ka\dego z nich jest bardzo du\a. Przedstawianie ich tutaj daleko
wykracza poza ramy artykułu i mieści się raczej w kategorii "zaawansowana administracja i konfiguracja w
systemach uniksowych BSD". Początkujący administrator powinien zaufać programom konfigurującym
("configure" w dystrybucji) i przygotowujÄ…cym pakiet Samby do kompilacji.
Najnowsza wersja tego opracowania jest dostępna pod adresem: http://siebab.net
Dodatkowe informacje mo\na uzyskać kontaktując się z autorem: Bartek Siębab
Grupa dyskusyjna USENET: news://comp.protocols.smb
Oficjalne strony projektu Samba: http://www.samba.org
http://bofh.vt.pl/samba/ 2008-08-29
Samba - instalacja, konfiguracja, administracja. Strona 14 z 14
http://bofh.vt.pl/samba/ 2008-08-29
Wyszukiwarka
Podobne podstrony:
Samba instalacja, konfiguracja, administracjaLinux Ubuntu Samba, instalacja i konfiguracjaKonfiguracja maszyn wirtualnych(1)Samba mamba PudelsiSubwoofer domowy połączenie i konfiguracjaKlastry pracy awaryjnej w srodowisku Windows Instalacja konfiguracja i zarzadzanie klastrWinXP Konfiguracja sieciInstalacja i konfiguracja XFree86DNS Konfiguracja w sieci TCP IPs2u2 opis funkcji i ustawień konfiguracja programu pomocKonfiguracja biosu (2)konfiguracja mach3 z plyta glowna1b 2 2 4 11 Lab Konfiguracja aspektów bezpieczeństwa na przełączniku03 Linux Konfiguracja serwera FTP PROFTPDKonfigurowanie CX1000cisco konfigwięcej podobnych podstron