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)
- SMB (1991)
- Implementace LAN Manager pro Windows (spolupráce IBM a Microsoft - OS/2)
- CIFS (1996)
- SMB2 (2006)
- SMB2.1
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?