1 Serwer Samba dr inż. Krzysztof Lichy Politechnika ŁódzkaSamodzielny Zakład Sieci Komputerowych
2 Samba 1. Co to jest? Pakiet narzędzi umożliwiającywspółdzielenie zasobów (drukarki, pliki) w sieciach hetorogenicznych 2. Do czego może jeszcze się przydać? WINS Podstawowy kontroler domeny Windows Klient domeny ADS
3 Demony: smbd – umożliwia współdzielenie plików i drukarek +uwierzytelnianie nmbd – świadczy usługi Windows Internet Name Service (wspomaga przeglądanie sieci)
4 Prosty zasób dyskowy: /etc/samba/smb.conf [global] workgroup = HOME[test] comment = udzial testowy path = /export/samba/test read only = no guest ok = yes
5 Testowanie konfiguracji:testparm
6 Testowanie konfiguracji:# testparm Load smb config files from /etc/samba/smb.conf Processing section "[test]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions Global parameters [global] workgroup = MSHOME [test] comment = udzial testowy path = /export/samba/test read only = No guest ok = Yes
7 Jak uruchomić? # service smb start Uruchamianie uslugi SMB: [ OK ]Uruchamianie uslugi NMB: [ OK ]
8 Użytkownicy serwera: # adduser samba # smbpasswd -a sambaNew SMB password: Retype new SMB password: Added user samba.
9 Użytkownicy serwera:
10 Użytkownicy serwera:
11 Dostęp z poziomu systemu Linux# smbclient -U samba -L // Password: Domain=[CENT] OS=[Unix] Server=[Samba 3.0.8pre1- 0.pre1.3] Sharename Type Comment test Disk udzial testowy
12 Struktura pliku konfiguracyjnego:[global] guest ok = no max log size = 1000 [homes] browseable = no map archive = yes [udzial_1] browseable = yes read only = yes guest ok. = yes path = /export/samba/udzial_1 [printers] path = /usr/tmp guest ok = yes printable = yes
13 Struktura pliku konfiguracyjnego:opcja = wartość netbios aliases = serwer1,serwer2,serwer3 netbios aliases= serwer1 serwer2 serwer3 GUEST OK = YES guest ok = yes PATH = /EXPORT/SAMBA//DUZE/A/MALE/LITERKI #KOMENTARZ
14 Mechanizm zmiennych Dzięki mechanizmowi zmiennychmożna określić charakterystykę podłączonych klientów. Zmienna rozpoczyna się znakiem %, po którym następuje litera.
15 Mechanizm zmiennych [udzial2] comment = Samba %v na serwerze %h gdzie:- wersja Samby %h - nazwa DNS serwera, na którym uruchomiona jest Samba
16 Mechanizm zmiennych Inne przydatne zmienne: %I - adres IP klienta%m - nazwa NetBIOS klienta %M - nazwa DNS klienta %H - katalog macierzysty zalogowanego użytkownika (%u) %u - nazwa zalogowanego użytkownika %S - nazwa bieżącego udziału %L - nazwa NetBIOS serwera na którym uruchomiona jest Samba
17 Mechanizm zmiennych Dzięki zmiennym istnieje możliwośćstworzenia udziału o zawartości zależnej od parametrów klienta lub użytkownika. W poniższej konfiguracji: [pliki] path = /export/samba/%M katalog udostępniany przez udział pliki będzie zależał od wartości zmiennej %M a więc od nazwy DNS klienta.
18 Opcja include Przykład: [udzial1] ... include = /etc/samba/smb.conf.%m
19 Sekcja [global] Parametry zdefiniowane w sekcji[global] lub [globals] odnoszą się do wszystkich udziałów. Jeżeli jednak wewnątrz sekcji definiującej udział parametr zostanie zmieniony będzie miał on pierwszeństwo przed parametrem z sekcji [global]
20 Sekcja [homes] Jeżeli klient próbuje się połączyćz zasobem, który nie jest wymieniony w pliku konfiguracyjnym, to wówczas serwer sprawdza czy istnieje sekcja [homes] i jeżeli istnieje żądana nazwa udziału zostaje przemapowana jako katalog domowy klienta.
21 Sekcja [homes] Przykład: dla poniższej konfiguracji: [global]workgroup = MSHOME [test] comment = udzial testowy path = /export/samba/test read only = no guest ok =yes [homes] browseable = no
22
23
24 Parametry określające serwer:[global] workgroup = MSHOME server string = Serwer Samba na %L netbios name = samba
25 [global] workgroup = MSHOME [test] comment = udzial testowy path = /export/samba/test read only = no guest account = user1 Parametry: comment, volume
26 Parametry sieciowe [global] workgroup = MSHOMEhosts allow = localhost hosts deny = [test] comment = udzial testowy path = /export/samba/test read only = no guest ok =yes [homes] browseable = no
27 Parametry sieciowe hosts allow = 192.168.0.hosts allow = .zsk.p.lodz.pl hosts allow = ALL EXCEPT W przypadku użycia parametru hosts allow należy umieścić na liście adres pętli zwrotnej (localhost lub ). Jest to niezbędne dla prawidłowego działania serwera.
28 Serwery wirtualne: [global] netbios aliases = PLIKI FEDORA ZDALNYinclude = /etc/samba/smb.conf.%L
29 Serwery wirtualne:
30 Jak to zadziała: [global] workgroup = MSHOME [test]comment = udzial testowy path = /export/samba/test read only = no guest ok =yes [dane] comment = wazne dane path = /export/samba/dane guest ok = no browseable = no [homes]
31 Samba
32 Samba Jak dostać się do takiego ukrytego zasobu???
33 Samba Jak dostać się do takiego zasobu?
34 Usługi domyślne: [global] ... default service = pomoc [pomoc]path = /export/samba/pomoc/ broweseable = yes writable = no
35 Wskazanie konkretnych użytkowników[finanse] path=/export/samba/finanse writable = yes guest ok = no valid users = szef, Adam Dobrze pamiętać o: invalid users = root, bin, mail ...
36 Samba hide dot files [udzial1] ... hide file =/*.reg/ veto filesdelete veto files dont descend follow symlinks
37 Drukarki: Do udostępniania drukarek na serwerzesłuży specjalny udział [printers], należy również wprowadzić dodatkowe parametry do sekcji [global]: printing = cups printcap name = cups Parametry te określają typ drukowania zainstalowany w systemie.
38 Drukarki: [printers] path = /var/spool/sambaŚcieżka do katalogu spool. Użytkownicy mający mieć dostęp do drukarki muszą mieć prawo zapisu do niego.
39 Drukarki: browseable = no guest ok = yes writeable = noprintable = yes printer admin = root Powyższe parametry udostępnią wszystkie drukarki zdefiniowane w CUPS jako drukarki sieciowe.
40 Drukarki: Do przetestowania poprawności konfiguracji służy polecenie#testprns nazwadrukarki
41 Kosz: [zasob1] ... Vfs objects = recycle Recycle:repository = .TRASHRecycle:keeptree = TRUE Recycle:versions = TRUE Recycle:touch = TRUE Recycle:exclude = *.tmp Recycle:exclude_dir = /tmp | /temp
42 Audyt: [zasob1] ... Vfs objects = full_auditFull_audit:prefix = proc.u | proc.I Full_audit:success = open opendir Full_audit:failure = all
43 Domeny Windows Obecnie istnieją dwa rodzaje domen NT: domeny NT oparte o Windows NT 4.0 cechuje płaska struktura, tak jak system nazewnictwa NetBIOS, o który m.in. są oparte. Współpracują z wszystkimi systemami rodziny Windows oraz pakietem Samba w wersji 2.0/2.2/3.0 oraz Samba TNG. Kontrolerem takiej domeny może być serwerowa wersja systemu Windows NT 4.0/2000/2003 oraz Samba 2.0/2.2/TNG/3.0 (tylko jako PDC!).
44 Domeny Windows domeny NT oparte o Windows 2000 lub ściśle powiązane z usługami katalogowymi Active Directory; struktura tutaj ma charakter drzewiasty tak jak system nazewnictwa DNS, z którym jest te domeny powiązane (nawet nomenklatura nazewnictwa w Active Directory zawiera słowa: drzewa, liście, las). Współpracują z systemami Windows 2000/XP/2003, pakietem Samba 3.0 oraz częściowo z Windows 95/98/Me i NT 4.0 SP 6a. Kontrolerem takiej domeny może być serwerowa wersja systemu Windows 2000/2003.
45 Domeny Windows [global] netbios name = SERWEREK server string = CENTOSworkgroup = DOMENA # uwierzytelnianie security = user encrypt passwords = yes update encrypted = No smb passwd file = /etc/samba/smbpasswd unix password sync = no add machine script = /usr/sbin/useradd -d /dev/null -g machines - c 'Konto Maszyny %I' -s /bin/false %u nt acl support = no map to guest = Bad User domain logons = yes logon script = logon.bat
46 Domeny Windows # Skrypt logowania do domenynet time \\SERWER /set /yes net use x: \\SERWER\dane net use z: \\archiwum\homes
47 Domeny Windows log file = /var/log/samba/log.%I max log size = 50log level = 2 os level = 200 domain master = yes local master = yes prefered master = yes time server = yes wins support = yes #WINS! logon home = \\%L\%U\profile logon path = \\%L\%U\profile unix charset = ISO8859-2 dos charset = CP852
48 Domeny Windows [netlogon] path = /etc/samba/logoncomment = Usługa logowania domenowego guest ok = no browseable = no write ok = no
49 Domeny Windows
50 SWAT # cat /etc/xinetd.d/swat # default: off# description: SWAT is the Samba Web Admin Tool. Use swat \ # to configure your Samba server. To use SWAT, \ # connect to port 901 with your favorite web browser. service swat { disable = no port = 901 socket_type = stream wait = no only_from = localhost user = root server = /usr/sbin/swat log_on_failure += USERID }
51 SWAT
52 Klient domeny ADS W pliku /etc/nsswitch.conf należyzmodyfikować dwa wpisy (passwd, group) do poniższej postaci: passwd: files winbind group: files winbind
53 Klient domeny ADS W pliku /etc/krb5.conf w sekcji [libdefaults] wprowadzić nazwę domeny Kerberos (w przykładach będzie to LINUXDOMAIN) [libdefaults] default_realm = LINUXDOMAIN.ZSK.P.LODZ.PL [realms] LINUXDOMAIN.ZSK.P.LODZ.PL = { kdc = p14.zsk.p.lodz.pl }
54 Klient domeny ADS #kinit Administratorworkgroup = LINUXDOMAIN netbios name = SAMBA security = ADS realm = LINUXDOMAIN.ZSK.P.LODZ.PL #net ads join -U Administrator%password
55 Klient domeny ADS
56 Klient domeny ADS [globals] template homedir = /home/%D/%Utemplate shell = /bin/bash winbind enum users = yes winbind enum groups = yes winbind uid = winbind gid = winbind separator = + # LINUXDOMAIN+Administrator encrypt password = yes winbind enable local accounts = yes winbind cache time = 300 winbind trusted domains only = no
57 Polecenie wbinfo: wbinfo -t wbinfo -u oraz wbinfo -gwbinfo -a windowsdomain+domainuser%userpassword
58 Klient domeny ADS [public]comment = zasob dostepny tylko dla grupy prac z domeny LINUXDOMAIN read only = no path = /export/samba/public Valid users [typek_priv] comment = zasob dostepny tylko dla uzytkownika typek z doemny LINUXDOMAIN path = /export/samba/typek valid users = "LINUXDOMAIN+typek"
59 Samba Nie działa!!! - /etc/sysconfig/samba : - PAM -DNS# Options to smbd SMBDOPTIONS="-D" # Options to nmbd NMBDOPTIONS="-D" # Options for winbindd WINBINDOPTIONS="-D" -DNS - jeżeli w logach znajduje się wpis: (...) winbind[xxxx]: idmap Fatal Error: UID range full (...) Przy zatrzymanym demonie Winbind – usunąć plik: /var/cache/samba/winbind_idmap.tdb
60 Dziękuję za uwagę