niedziela, 05 luty 2012 
Start arrow FreeBSD arrow NARZ?DZIA SIECIOWE arrow Samba
Menu BSD4u
FreeBSD
OpenBSD
NetBSD
Dla *BSD
FAQ BSD4u
Forum BSDGuru.org
Security Advisory
Licencje
Images BSD
Menu ogólne
Start
Aktualności
Download
Sondy
Szukaj
Książki
About BSD4u
Info
Team BSD4u
Regulamin
Kanał #BSD4u
Kontakt
Sondy
Co sądzisz o naszym nowym Projekcie, i jak oceniasz zmianę koncepcji Projektu?
 
Popularne
SQUID - najpopularni...
Kompilacja i konfigu...
Samba - serwer plikó...
Neostrada+ i modem ...
Praktyczne IPFW
Upgrade systemu
NATowanie czyli jak ...
Apache (konfiguracja...
MRTG - statystyki ru...
Postfix - bezpieczny...
CVSup - pomocny podc...
Postfix z autoryzacj...
Neostrada na modemie...
System Portów (Kolek...
Instalacja FreeBSD 5...
Top Download
File icon Postfix - "Krok po kroku" v1.18107
File icon Postfix - "Krok po kroku" v1.06803
File icon PPTPd - "Prosty i szybki VPN" v1.0b6420
File icon sdi.sh3887
File icon uEagle 1.0p12975
File icon named.sh2945
File icon uEagle 0.99b2869
File icon cs.sh2834
File icon uEagle 1.02759
File icon uEagle 1.12568
Ostatnie komentarze
jeden raz na konto
Dodał: arti
Dnia: 2011-06-15 15:10:56
Re: Kod rabatowy na...
Dodał: cooler
Dnia: 2011-06-15 13:59:07
JAK NIE DZIALA opti...
Dodał: wierzba86
Dnia: 2010-02-25 21:37:29
JAK NIE DZIALA opti...
Dodał: wierzba86
Dnia: 2010-02-25 21:36:09
RE: transparent a v...
Dodał: Trash
Dnia: 2009-10-06 15:45:18
transparent a virus...
Dodał: grzywka18
Dnia: 2008-05-13 11:19:58
Samba - serwer plików Drukuj E-mail
Oceny: / 54
KiepskiBardzo dobry 
czwartek, 07 sierpień 2003 - Napisał: Artur Kulda (60778 odsłon)

Samba to zbiór uniksowych aplikacji rozumiejących protokół SMB (Server MessageBlock). Wiele systemów operacyjnych, w tym Windows i OS/2, używa SMB do komunikacji sieciowej między klientami i serwerami. Samba umożliwia uniksowym serwerom porozumiewanie się za pomocą tego samego protokołu, którego używają systemy Microsoftu. Zatem uniksowy komputer z Sambą może udawać serwer w sieci Microsoftu i udostępniać następujące usługi:

  • współdzielić systemy plików,
  • współdzielić drukarki podłączone do serwera i klientów,
  • wspomagać klientów w przeglądaniu Otoczenia sieciowego,
  • uwierzytelniać klientów logujących się do domeny Windows,
  • wspomagać odwzorowywanie nazw jako serwer WINS.

Głównymi składnikami pakietu Samba są dwa uniksowe demony, które udostępniają współdzielone zasoby - zwane udziałem sieciowym - klientom SMB. Tymi demonami są:

smbd
Demon umożliwiający współdzielenie plików i drukarek w sieci SMB i zapewniający uwierzytelnianie klientów SMB.

nmbd
Demon świadczący usługi Windows Internet Name Service (WINS) i wspomagający przeglądanie zasobów sieci.

1. Instalacja Samby

Oczywiście na początku trzeba ściągnąć źródła samby lub paczkę i zainstalować. Najprostszym sposobem jest dodać paczkę za pomocą

# pkg_add samba-2.2.7.tgz.

Instalacj z portów również przebiega w prsosty sposób:

# cd /usr/ports/net/samba
# make install clean

Po zainstalowaniu musimy zmienić nazwę pliku konfiguracyjnego smb.conf.sample na smb.conf oraz plik uruchamiający nam sambę samba.sh.sample na samba.sh, które znajdują się odpowiednio w katalogach /usr/local/etc i /usr/local/etc/rc.d.

# cd /usr/local/etc
# mv smb.conf.sample smb.conf
# cd /usr/local/etc/rc.d
# mv samba.sh.sample samba.sh

2. Konfiguracja Samby

Samba zaraz po zainstalowaniu nie nadaje się do "użycia". Należy ją wstępnie skonfigurować wedle własnych potrzeb. Poniżej znajduje się przykładowy plik konfiguracyjny z wyjaśnieniem poszczególnych opcji.:

#======================= Global Settings =====================================

[global]

# Twoja grupa robocza w sieci;
workgroup = MYGROUP

# nazwa pod jaką będzie widoczny serwer w Otoczeniu Sieciowym;
netbios name = Server

# komentarz wyświetlany obok komputera;
server string = Samba Server

# tutaj możemy ustawić dostęp do udziałów (z jakich adresów (sieci) można łączyć
# się z sambą);
hosts allow = 192.168.1. 192.168.2. 127.

# tutaj z kolei możemy zabronić dostępu do udziałów (host  zostaje dopuszczony
# do udziałów tylko wtedy gdy jest na liście host allow i jednocześnie nie ma
# go na liście host deny;
host deny = 192.168.1.4 192.168.2.10

# umieszcza na liście przeglądania wszystkie drukarki wymienione w systemowym
# pliku parametrów drukarek, używa opcji konfiguracyjnych z sekcji [printers]
# dozwolone wartości: YES, NO; wartość domyślna = YES; 
load printers = yes

# Samba użyje określonego pliku jako pliku parametrów drukarek, zwykle jest to
# plik /etc/printcap możesz jednak ustawić tę opcję tak, aby wskazywała plik
# tylko z tymi drukarkami, które chcesz udostępnić w sieci;
printcap name = /etc/printcap

# ta opcja konfiguracyjna informuje Sambę o systemie druku używanym przez serwer
printing = bsd

# jeżeli chcemy umożliwić gościnny dostęp do niektórych udziałów musimy podać
# jakiego konta będzie używał użytkownik podczas uwierzytelniania
# (w tym wypadku opcja security = share);
guest account = nobody

# ścieżka do logów i pod jaką nazwą mają być zapisywane;
log file = /var/log/log.%m

# maksymalny rozmiar pliku z logami;
max log size = 50

# zabezpieczenie dostępu na poziomie użytkownika
# security = share na poziomie zasobów;
security = user

# możesz skonfigurować Sambę do współpracy z serwerem haseł (kiedy używasz
# zabezpieczeń na poziomie serwera security = server). Zauważ, że w opcji
# password server możesz podać nazwy kilku komputerów. Samba będzie łączyć się
# z kolejnym serwerem na liście, jeśli pierwszy wybrany będzie niedostępny.
# Serwery w opcji password server określa się za pomocą nazw NetBIOS-owych,
# a nie nazw DNS lub równoważnych im adresów IP;
password server = SERVERSAMBY1 SERVERSAMBY2    

# włącza szyfrowanie haseł metodą Windows NT, wymaga użycia programu
# smbpasswd w serwerze Samby;
encrypt passwords = yes

# ta opcja powoduje wczytanie pliku konfiguracyjnego dla komputera o określonej nazwie
# NetBIOS-owej (%m) jeżeli nazwa klienta to host1, a w katalogu samby (lub tym, którego
# podałeś w pliku konfiguracyjnym) znajduje się plik smb.conf.host1, Samba dołączy
# jego za wartość do domyślnego pliku konfiguracyjnego; jeśli plik smb.conf.host1
# modyfikuje którąś zmienną konfiguracyjną, to zmieniona wartość będzie miała
# pierwszeństwo przed wartością zdefiniowaną wcześniej; jeśli któraś opcja
# konfiguracyjna zostanie zmodyfikowana w głównym pliku już po opcji include, Samba
# przyjmie jej nową wartość dla udziału, w którym została zdefiniowana;
include = /usr/local/etc/smb.conf.%m

# jest to opcja dostrajania systemu goszczącego Sambę (dokładnie nie wiem o co chodzi);
socket options = TCP_NODELAY

# jeśli chcesz, aby dane były wysyłane przez więcej niż jeden interfejs, musimy podać
# ich pełną listą w opcji interfaces ponieważ nie można zagwarantować, że podstawowy
# interfejs wybrany przez Sambę będzie tym właściwym;
interfaces = 192.168.10.1/24 192.168.20.1/24

# opcja ta określa, czy Samba zaraz po uruchomieniu spróbuje zostać główną przeglądarką
# lokalną w swojej podsieci domyślnie opcja jest ustawiona na yes i Samba bierze udział
# w wyborach, jednakże włączenie tylko tej opcji nie gwarantuje zwycięstwa (pomogą w
# tym inne parametry, takie jak preferred master i oslevel);
local master = yes

# ustawia poziom systemu operacyjnego Samby podczas wyborów głównej przeglądarki
# lokalnej;
os level = 60

# Samba może przejąć funkcję głównej przeglądarki domeny we wszystkich podsieciach
# grupy roboczej dzięki tej opcji;
domain master = yes

# nakazuje Sambie ustawić bit preferowanej przeglądarki głównej podczas udziału w
# wyborach, dzięki temu komputer uzyskuje w grupie roboczej wyższą preferencję niż inne
# komputery o tym samym poziomie systemu operacyjnego jeśli chcesz, żeby komputer z
# Sambą został główną przeglądarką lokalną, powinieneś użyć poniższej opcji;
preferred master = yes

# Logowanie do domeny (włączenie tej opcji powoduje domyślne włączenie opcji
# domain master);
domain logons = yes

# Skrypt wykonywany podczas logowania (musi być umieszczony w udziale netlogon);
logon script = start.bat

# Ścieżka do katalogu w którym będą przechowywane profile mobilne (wędrujące)
# - dla systemów win9x/Me;
logon home = %L%U.win9x

# Ścieżka do katalogu w którym będą przechowywane profile mobilne (wędrujące)
# - dla systemów winNT/2000/XP;
logon path = %L%U.winNT

# Mapowanie katalogu domowego np. jako dysk P: (tylko dla winNT/2000/XP);
logon drive = P:


# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
; wins support = yes

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
; wins proxy = yes

# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no

# Client codepage settings
# for Greek users
; client code page=737
# for European users (Latin 1)
; client code page=850
# for European users (Latin 2)
; client code page=852

#============================ Share Definitions ==============================

# opcje występujące w tej sekcji:
# comment           - komentarz wyświetlany przy udziale;
# browseable        - jeżeli yes udział będzie widoczny dla wszystkich;
# writeable         - możliwość pisania po udziale;
# read only         - udział tylko do odczytu (zamienne z writeable);
# guest ok (public) - udział dostępny dla wszystkich;
# write list        - lista osób lub grup oddzielonych przecinkami, które
#                     mają prawo pisania po udziale np.
#                     write list = user1, user2, @grupa1, @grupa2;
# path              - ścieżka do udziału;
# only guest        - udział, z którym łączymy się tylko za pomocą konta gościnnego;
# valid users       - lista osób, które mogą korzystać z zasobu;
# create mask       - maska nowo tworzonych plików np. create mask = 644;
# directory mask    - maska nowo tworzonych katalogów;

# sekcja homes - katalogi domowe;
[homes]
      comment = Katalog domowy
      browseable = no
      writeable = yes
      guest ok = no
      create mask = 644
      directory mask = 755

# Udział, w którym zamieszczamy podstawowy skrypt logowania
# (w tym przypadku start.bat);
[netlogon]
      comment = Network Logon Service
      path = /usr/local/samba/lib/netlogon
      guest ok = yes
      writeable = no
      share modes = no
      browseable = no

# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes

# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
      comment = All Printers
      path = /var/spool/samba
      browseable = no
      # Set public = yes to allow user 'guest account' to print
      guest ok = no
      writeable = no
      printable = yes

# udział public, do którego mają dostęp wszyscy (tylko do odczytu), a zapisywać w tym
# udziale może tylko user1, user3 i wszyscy z grupy grupa2; 
[public]
      comment = Katalog publiczny
      path = /home/samba/public
      public = yes
      browseable = yes
      read only = yes
      printable = no
      write list = user1 user3 @grupa2

# udział dostępny dla wszystkich łączących się z danego komputera (tzn. najpierw
# tworzymy katalogi o nazwach takich jak nazwy komputerów klientów) a zmienna %m
# powoduje, że każdy komputer posiada swój katalog na serwerze, do którego mają
# dostęp osoby łączące się z danej maszyny;
[pchome]
      comment = Katalog PC %m
      path = /usr/pc/%m
      public = no
      writeable = yes

# udział przeznaczony tylko i wyłącznie dla gości, po którym może pisać każdy;
[public-guest]
      path = /home/samba/public-guest
      public = yes
      only guest = yes
      writeable = yes
      printable = no

3. Uruchomienie Samby

Teraz wystarczy już tylko uruchomić demony Samby i skonfigurować klientów do współpracy z Sambą. Są dwie możliwości uruchomienia Samby: za pośrednictwem inetd lub jako osobne demony Samby. Jeśli chcesz uruchamiać Sambę za pośrednictwem inetd, najpierw otwórz w edytorze plik /etc/services. Jeśli nie ma w nim jeszcze poniższych linii, dopisz je:

# vi /etc/services

netbios-ns  137/tcp     #NETBIOS Name Service
netbios-ns  137/udp     #NETBIOS Name Service
netbios-dgm 138/tcp     #NETBIOS Datagram Service
netbios-dgm 138/udp     #NETBIOS Datagram Service
netbios-ssn 139/tcp     #NETBIOS Session Service
netbios-ssn 139/udp     #NETBIOS Session Service

Następnie robimy odpowiednie wpisy w inetd.conf i powiadamiamy demona inetd o zmianie w pliku konfiguracyjnym i sprawdzamy czy usługi zostały uruchomione:

# vi /etc/inetd.conf

netbios-ssn   stream   tcp   nowait   root   /usr/local/sbin/smbd  smbd -D
netbios-ns    dgram    udp   wait     root   /usr/local/sbin/nmbd  nmbd -D

# kill  -HUP inetd
# ps -ax | grep smbd
139     ??    Is   0:03.27   /usr/local/sbin/smbd -D
141     ??    Ss   0:31.07   /usr/local/sbin/nmbd -D

Drugim sposobem uruchomienia Samby jest użycie osobnych demonów. W tym celu trzeba (jak już wcześniej napisałem) zmienić (lub skopiować) nazwę pliku samba.sh.sample na samba.sh i uruchomić Sambę:

# cp /usr/local/etc/rc.d/samba.sh.sample /usr/local/etc/rc.d/samba.sh
# smbd start
# nmbd start

Za pmocą poleceń smbd stop i smbd restart możemy zatrzymać Sambę lub ją przeładować. POWODZENIA ;-))

4. Konfiguracja klientów do logowania domenowego

- dla Win9x/Me

W tym przypadku wystarczy utworzyć użytkownika w systemie FreeBSD 

# adduser (chyba nie muszę tego opisywać)

dodajemy ich do pliku haseł Samby

# smbpasswd -a nazwa_usera

i podajemy hasła do naszego serwera plików (mogą być zgodne z hasłami systemowymi).

Następnie idziemy do zakładki Panel sterowania -> Sieć -> Klient sieci Microsoft Network -> Właściwości -> Zaloguj do domeny NT i w tym miejscu należy wpisać nazwę domeny, do której chcemy się przyłączyć i ponownie uruchomić komputer.

- dla WinNT/2000/XP

O ile w przypadku Win9x logowanie do domeny nie sprawia żadnych kłopotów, to w tym przypadku zalogowanie wymaga nieco bardziej skomplikowanej konfiguracji (szczerze powiem, że kilka dni spędziłem na zalogowaniu do domeny komputera z systemem WinXP).

UWAGA! - te wpisy w rejestrze dotyczą tylko WinXP

Na początku trzeba zmienić wpisy w rejestrze systemowym. Uruchamiamy regedit i przechodzimy do:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\SetServices\Netlogon\Parameters]

i zmieniamy wartości poniższych kluczy na 0

"requiresignorseal"=dword:00000000
"signsecurechannel"=dword:00000000

Następnie tworzymy użytkowników w systemie FreeBSD

# adduser (chyba nie muszę tego opisywać)

dodajemy ich do pliku haseł Samby

# smbpasswd -a nazwa_usera

i podajemy hasła do naszego serwera plików (mogą być zgodne z hasłami systemowymi).

I to jeszcze nie wystarczy ponieważ systemy z rodziny NT wymagają jeszcze tzw. konta zaufania komputera, który chcemy podłączyć do domeny. Konto to musi mieć nazwę taką samą jak nazwa komputera + znaczek $ na końcu tej nazwy np. nazwa_kompa$. Niestety nie można utworzyć takiego konta tak jak zwykłego użytkownika ponieważ polecenie adduser nie przyjmuje na końcu znaczka $. Wykonujemy to w następujący sposób:

# pw useradd nazwa_kompa$ -u 2001 -g nobody -s /sbin/nologin -d / -c "Konto zaufania"

Teraz nasz plik /etc/passwd powinien zawierać wpis dotyczący naszego konta:

nazwa_kompa$:*:2001:65534:Konto zaufania:/:/sbin/nologin

W ten sposób utworzyliśmy użytkownika bez możliwości logowania się na niego i z pustym hasłem. Teraz musimy jeszcze dodać to konto do pliku haseł Samby ale w nazwie nie używamy już znaczka $

# smbpasswd -a -m nazwa_kompa
Password changed for user nazwa_kompa$.

Oprócz tego do pliku haseł Samby musimy dodać użytkownika root

# smbpasswd -a root
New SMB password:
Retype new SMB password:
Password changed for user root.

i dwa razy podajemy jakieś hasło (nie musi być takie samo jak systemowe).

Teraz przystępujemy do konfiguracji Windozy. Wchodzimy do Właściwości systemu -> Nazwa komputera -> Zmień. Zaznaczamy pole Domena i wpisujemy nazwę domeny. Po chwili zostaniemy poproszeni o podanie nazwy użytkownika i hasła i w tym momencie jako użytkownika podajemy root a hasło takie jakie nadaliśmy mu przy dodawaniu do pliku haseł Samby. Ta czynność jest wykonywana tylko raz przy pierwszym dołączaniu do domeny. Po zatwierdzeniu enterem zostanie wyświetlone okienko witające nas w domenie. Po ponownym uruchomieniu komputera wpisujemy już swój login i hasło takie jakie mamy na serwerze.
I to by było na tyle. Have Fun ;-))

5. Od autora

Nie wiem jak wy ale ja od razy zaniechałem logowania do domeny z WinXp, ponieważ system ten (w przeciwieństwie do Win98) przenosi cały profil na serwer tzn. pulpit, ustawienia, moje dokumenty itd., co zajmuje bardzo dużo miejsca, a stworzenie tutaj profilu obowiązkowego (w sieci domowej) wydaje mi się minięciem z celem (chyba, że zmienimy typ tego profilu z mobilnego na lokalny w zakładce Konta użytkowników, wtedy będzie on przechowywany na dysku lokalnym). Natomiast logowanie do domeny polecam jak najbardziej z systemów Win9x gdzie możemy sami zdecydować jakie ustawienia eksportujemy na serwer.

UWAGA!!! Logowanie z WinXP jest opisane na moim przykładzie i tylko po takiej konfiguracji zaczęło funkcjonować. Jeżeli macie jakieś uwagi lub propozycje proszę o kontakt arti(at)hello.pl  

Przykładowy skrypt logowania np. start.bat

@echo off
# mapowanie katalogu domowego
net use R: /home
# mapowanie innych udziałów
net time nazwa_netbiosowa_serwera /set      
net use S: nazwa_netbiosowa_serwerajakiś_udział
net use T: nazwa_netbiosowa_serwerainny_udział

Pamiętajcie o tym, że skrypt ten najlepiej napisać pod windowsem a potem dopiero przekopiować go na serwer, ponieważ skrypt ten jest zwykłym skryptem DOSowym!!


Autor: Artur Kulda
arti(at)bsd4u.org

Powyższy artykuł został udostępniony na zasadach Licencji BSD

Komentarze:
Re: Samba - nie mylcie z tańcem ;-))
Dodane przez adx w dniu - 2004-04-24 19:40:49
TCP_NODELAY wyłącza algorytm Nagle'a (standardowy dla wszystkich połączeń TCP), zbierający wychodzące pakiety w buforze. Bufor ten jest następnie wysłany dopiero po upływie pół sekundy lub wcześniej (wszystko zależy od tego, kiedy ostatnio próbowano coś wysłać). 
 
Celem miała być redukcja obciążenia łącza przez eliminowanie małych pakietów, ale w zasadzie w żadnym właściwie napisanym programie nie przynosi to żadnej korzyści, a jedynie opóźnienia. Mimo to rzadko programiści pamiętają o wyłączeniu tej opcji, a z przyczyn kompatybilności musi być ona włączona by default.
regedit
Dodane przez wheeler w dniu - 2006-08-15 10:02:36
To juz jest od bardzo dawna nieaktualne. 
Przyklad dotyczy wersji 2.2.7, jednak napewno od wersji 3.x.x 
nie ma potrzeby edytowania rejestru w windows. 
 
 
Na początku trzeba zmienić wpisy w rejestrze systemowym. Uruchamiamy regedit i przechodzimy do: 
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\SetServices\Netlog on\Parameters] 
 
i zmieniamy wartości poniższych kluczy na 0 
 
"requiresignorseal"=dword:00000000 
"signsecurechannel"=dword:00000000

Tylko zarejestrowani użytkownicy mogą pisać komentarze.
Prosze zaloguj się i dodaj komentarz.

Powered by AkoComment!

Ostatnio aktualizowany ( piątek, 11 listopad 2005 )

« wstecz
Ciekawostki
Nie pamiętasz czy zainstalowałeś pewnien port czy nie? Spróbuj "pkg_info | grep nazwa_portu".
Pobierz
FreeBSD
OpenBSD
NetBSD
DragonFlyBSD
PC-BSD
FreeSBIE LiveCD
4.4BSD Lite
Domeny
Google

Google


Newsletter
Zapisz się na nasz newsletter, jeżeli chcesz być na bieżąco informowany o aktualnościach..




Licznik odwiedzin
Odwiedziło już nas
3808430
Internautów od lutego 2003

Korzystamy ze statysyk