Serwer Samba dr inż. Krzysztof Lichy Politechnika Łódzka Samodzielny Zakład Sieci Komputerowych
Samba 1. Co to jest? Pakiet narzędzi umożliwiający współdzielenie zasobów (drukarki, pliki) w sieciach hetorogenicznych 2. Do czego może jeszcze się przydać? WINS Podstawowy kontroler domeny Windows Klient domeny ADS
Demony: smbd – umożliwia współdzielenie plików i drukarek +uwierzytelnianie nmbd – świadczy usługi Windows Internet Name Service (wspomaga przeglądanie sieci)
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
Testowanie konfiguracji: testparm
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
Jak uruchomić? # service smb start Uruchamianie uslugi SMB: [ OK ] Uruchamianie uslugi NMB: [ OK ]
Użytkownicy serwera: # adduser samba # smbpasswd -a samba New SMB password: Retype new SMB password: Added user samba.
Użytkownicy serwera:
Użytkownicy serwera:
Dostęp z poziomu systemu Linux # smbclient -U samba -L //192.168.0.244 Password: Domain=[CENT] OS=[Unix] Server=[Samba 3.0.8pre1- 0.pre1.3] Sharename Type Comment --------- ---- ------- test Disk udzial testowy
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
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
Mechanizm zmiennych Dzięki mechanizmowi zmiennych można określić charakterystykę podłączonych klientów. Zmienna rozpoczyna się znakiem %, po którym następuje litera.
Mechanizm zmiennych [udzial2] comment = Samba %v na serwerze %h gdzie: - wersja Samby %h - nazwa DNS serwera, na którym uruchomiona jest Samba
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
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.
Opcja include Przykład: [udzial1] ... include = /etc/samba/smb.conf.%m
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]
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.
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
Parametry określające serwer: [global] workgroup = MSHOME server string = Serwer Samba na %L netbios name = samba
[global] workgroup = MSHOME [test] comment = udzial testowy path = /export/samba/test read only = no guest account = user1 Parametry: comment, volume
Parametry sieciowe [global] workgroup = MSHOME hosts allow = 192.168.0. 10.1.1.1 localhost hosts deny = 192.168.0.11 [test] comment = udzial testowy path = /export/samba/test read only = no guest ok =yes [homes] browseable = no
Parametry sieciowe hosts allow = 192.168.0. hosts allow = .zsk.p.lodz.pl hosts allow = ALL EXCEPT 10.1.1. W przypadku użycia parametru hosts allow należy umieścić na liście adres pętli zwrotnej (localhost lub 127.0.0.1). Jest to niezbędne dla prawidłowego działania serwera.
Serwery wirtualne: [global] netbios aliases = PLIKI FEDORA ZDALNY include = /etc/samba/smb.conf.%L
Serwery wirtualne:
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]
Samba
Samba Jak dostać się do takiego ukrytego zasobu???
Samba Jak dostać się do takiego zasobu?
Usługi domyślne: [global] ... default service = pomoc [pomoc] path = /export/samba/pomoc/ broweseable = yes writable = no
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 ...
Samba hide dot files [udzial1] ... hide file =/*.reg/ veto files delete veto files dont descend follow symlinks
Drukarki: Do udostępniania drukarek na serwerze sł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.
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.
Drukarki: browseable = no guest ok = yes writeable = no printable = yes printer admin = root Powyższe parametry udostępnią wszystkie drukarki zdefiniowane w CUPS jako drukarki sieciowe.
Drukarki: Do przetestowania poprawności konfiguracji służy polecenie #testprns nazwadrukarki
Kosz: [zasob1] ... Vfs objects = recycle Recycle:repository = .TRASH Recycle:keeptree = TRUE Recycle:versions = TRUE Recycle:touch = TRUE Recycle:exclude = *.tmp Recycle:exclude_dir = /tmp | /temp
Audyt: [zasob1] ... Vfs objects = full_audit Full_audit:prefix = proc.u | proc.I Full_audit:success = open opendir Full_audit:failure = all
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!).
Domeny Windows domeny NT oparte o Windows 2000 lub 2003 ś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.
Domeny Windows [global] netbios name = SERWEREK server string = CENTOS workgroup = 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
Domeny Windows # Skrypt logowania do domeny net time \\SERWER /set /yes net use x: \\SERWER\dane net use z: \\archiwum\homes
Domeny Windows log file = /var/log/samba/log.%I max log size = 50 log 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
Domeny Windows [netlogon] path = /etc/samba/logon comment = Usługa logowania domenowego guest ok = no browseable = no write ok = no
Domeny Windows
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 }
SWAT
Klient domeny ADS W pliku /etc/nsswitch.conf należy zmodyfikować dwa wpisy (passwd, group) do poniższej postaci: passwd: files winbind group: files winbind
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 }
Klient domeny ADS #kinit Administrator workgroup = LINUXDOMAIN netbios name = SAMBA security = ADS realm = LINUXDOMAIN.ZSK.P.LODZ.PL #net ads join -U Administrator%password
Klient domeny ADS
Klient domeny ADS [globals] template homedir = /home/%D/%U template shell = /bin/bash winbind enum users = yes winbind enum groups = yes winbind uid = 10000-20000 winbind gid = 10000-20000 winbind separator = + # LINUXDOMAIN+Administrator encrypt password = yes winbind enable local accounts = yes winbind cache time = 300 winbind trusted domains only = no
Polecenie wbinfo: wbinfo -t wbinfo -u oraz wbinfo -g wbinfo -a windowsdomain+domainuser%userpassword
Klient domeny ADS [public] comment = zasob dostepny tylko dla grupy prac z domeny LINUXDOMAIN read only = no path = /export/samba/public Valid users = @"LINUXDOMAIN+prac" [typek_priv] comment = zasob dostepny tylko dla uzytkownika typek z doemny LINUXDOMAIN path = /export/samba/typek valid users = "LINUXDOMAIN+typek"
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
Dziękuję za uwagę