UNIX a Internet

Samba

Autor: Jiří Hnídek / jiri.hnidek@tul.cz

Protokol SMB

  • SMB je zkratka pro Server Message Block (původně protokol LAN Manager)
  • IBM a Microsoft, původně NetBIOS, dnes TCP/IP
  • Poskytované služby (pomocí RPC)
    • Autentizace uživatelů
    • Sdílení souborů
    • Tisk na vzdálené tiskárny

Samba

  • Open source projekt (1992), www.samba.org
  • Implementace SMB protokolu
  • Jakýkoliv systém (Linux, BSD, Mac OS X) může komunikovat jako Windows server nebo klient
  • Konfigurační soubory: /etc/samba
  • Běhové soubory: /var/lib/samba

Server & klient

  • Server
    • Dva démoni napsané v jazyce C
      • smbd: pro sdílení, tisk, autentizaci
      • nmbd: pro správu jmen stanic v síti
  • Klient
    • V Linuxu jako síťový souborový systém (ovladač v jádře)
    • Původně modul smb, dnes cifs (asynchronní komunikace)

Uživatelé na Samba serveru

  • Samba server eviduje vlastní uživatele, ale v systému musí existovat stejnojmenný unixový uživatel
  • Server využívá běžná oprávnění na soubory a adresáře (přístup k souborům/adresářům řeší systém a nikoliv server)
  • Autentizace - hash hesla uložen v databázi Samby
    • Textový soubor, binární TDB soubory, externí LDAP server, ...
  • Hash hesla je odlišný od hashe, který používá PAM (/etc/shadow)

RPC

  • Remote Procedure Call
  • Meziprocesová komunikace přes počítačovou síť umožňující volání funkce na vzdáleném počítači
    • Jméno funkce i parametry se zabalí a odešlou
    • Příjemce rozbalí: funkce, parametry. Vykoná funkci
    • Zabalení výsledku a odeslání zpět
  • Zjednodušení implementace (SMB, NFS, ...)
  • Tvůrce síťové funkce neřeší logiku zasílání přes síť
  • Různé nevýhody
    • Bezpečnostní problémy, nelze předávat ukazatel
    • Neřeší se síťová optimalizace

Verze SMB

  • LAN Manager (1990)
    • Firma IBM
  • SMB (1991)
    • Implementace LAN Manager pro Windows (spolupráce IBM a Microsoft - OS/2)
  • CIFS (1996)
    • Windows 95/98
  • SMB2 (2006)
    • Windows Vista
  • SMB2.1
    • Windows 7

Názvy počítačů

  • Každý počítač (v "síti Windows") má své unikátní SMB jméno
  • Nesmí být stejné s jiným jménem v síti (uživatel, skupina)
  • Dříve dva samostatné systémy: Broadcast, WINS server
  • Dnes se využívá DNS
    • SMB jméno je shodné se jménem stanice v DNS
    • Očekává se synchronizace DHCP a DNS

SMB broadcast

  • Navrženo pro malé sítě LAN
  • Stanice oznamuje broadcastem své jméno
  • SMB broadcast se dále používá např. pro hlasování:
    • Master browser (magické číslo OS level)
    • Master browser má seznam všech stanic ve skupině (doméně)
    • Hlasování je periodické
    • Novější systém má větší číslo - vetší šance na výhru

WINS server

  • Udržuje databázi jmen
  • Stanice se na něj průběžně ohlašují
  • WINS server vytváří jejich seznam (jméno, IP adresa)
  • Poskytuje na dotaz překlad (SMB) jména na IP adresu
  • Dnes nahrazeno DNS (od Windows 2000)
  • DNS je stejně nutné pro fungování IP sítí

Doména Windows

  • Plochá centrální databáze obsahující uživatele, skupiny, počítače
  • Uživatel: jméno, heslo, členství ve skupinách
  • Stanice se do domény také přihlašuje (má vlastní jméno + heslo)
  • Pro přidání stanice do domény nutné heslo správce domény

PDC

  • PDC - Primary Domain Controller
    • Obsahuje databázi domény
    • Provádí autentizaci uživatelů
  • BDC - Backup Domain Controller
    • Kompletní kopie PDC
    • V případě výpadku PDC ho může zastoupit po obnovení spojení synchronizace změn
    • Například změněná hesla, pozná podle časových značek
    • PDC i BDC musí mít synchronizován čas

Active Directory

  • Strukturovaná centrální databáze
  • Náhrada za jednoduché ploché Domény
  • Vlastně implementace LDAP
  • Stromová struktura, kde podstromy spravují samostatné servery
  • Autorizační tikety od nekompatibilního Kerberosu
  • Distribuovaná struktura
  • Samba 4 umí fungovat jako AD

UNC

  • Uniform Naming Convention
  • Označení umístění síťového zdroje v síti Winsows
  • Sdílený adresář, soubor, tiskárna, např:
  • \\Computer\SharedFolder\Directory

Konfigurační soubory

  • Hlavní konfigurační soubor: /etc/samba/smb.conf
  • Jednoduchý textový soubor
  • Volby ve formě: parametr = hodnota
  • Globální sekce: [global]
    • Zavádí nastavení platná pro celou konfiguraci
  • Sekce pro jednotlivá sdílení: [share_name]
    • Jednotlivé sekce si mohou předefinovat globální nastavení

Sdílený adresář

  • Běžný adresář v systému
  • V konfiguračním souboru definován jako sekce
  • Lze využít globální parametry, ale i sekční
  • Omezení přístupu (uživatel, skupina), omezení zápisu, maska oprávnění pro nové soubory, ...

[public]
        comment = Public folder
        path = /home/public
        browseable = yes
        writable = yes
        guest ok = yes

Tiskový server

  • Nabízí ke sdílení tiskárny aktuálního systému
  • Lokálně tiskový subsystém je většinou CUPS
  • Přijatá data se předávají tiskovému subsystému

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes

Příklad konfiguračního souboru


[global]
	workgroup = WORKGROUP
	security = USER
[test] 
	comment = Test Shared Folder
	path = /export/samba/test
	read only = no
	guest ok = yes

Autentizace na Samba serveru

  • Autentizace uživatele: parametr security
  • SHARE
    • Prostředky přístupné všem (jako u Win 3.x, Win 95, ...)
    • Podle hesla povoleno čtení, nebo čtení i zápis
  • USER
    • Každý uživatel jméno + heslo (jako Windows NT)
  • SERVER, DOMAIN
    • Autentizace přeposílána na jiný Win či Samba server
  • ADS
    • Jako DOMAIN, ale pro autentizaci Kerberos

Založení uživatelského účtu

  • Nejprve je nutné založit uživatele v systému:
  • $ useradd josef.novak
  • Tím se vytvoří domácí adresář a záznam v /etc/passwd
  • Heslo v /etc/shadow vytvoříme pomocí:
  • $ passwd josef.novak
  • Založení uživatele + hesla v Sambě:
  • $ smbpasswd -a josef.novak

Cestovní profily

  • Samba server musí zároveň sloužit jako PDC
  • Stanice musí být zaregistrovaná v doméně
  • Uživatelé mají účet na Samba serveru
  • Profily se ukládají do domácího adresáře:
    • V podadresáři profile (WinXP)
    • V profile.V2 (Win7)
  • Když je profil poškozen, tak uživatel si profil sám nemůže smazat/opravit
  • Synchronizace profilů je neefektivní. Při přihlášení profil kopírován ze serveru na lokální počítač, při odhlášení kopírován zpět.

Děkuji za pozornost. Nějaké otázky?