SMB je síťový protokol pro sdílení souborů a tiskáren. Původní protokol byl vytvořen společností IBM. Hlavní využití protokolu SMB nalezneme v systémech Microsoft Windows.
Protokol CIFS je implementace protokolu SMB firmou Microsoft.
Samba je open source implementace protokolu SMB/CIFS, která umožňuje sdílení dat a tiskáren s klienty se systémem Windows. Samba server se může připojit do Windows domény buď jako člen nebo jako řadič domény. Od verze 4 může Samba server sloužit jako řadič domény Active Directory.
smbd - sdílení souborů a tiskáren pomocí SMB, autentizace uživatelů, zamykání zdrojů, TCP/139, TCP/445, UDP/137, UDP/138
nmbd [4]- NetBIOS name service, Browser služba, UDP/137
winbind - umožňuje Linux systému rozumět účtům z Windows domény
Samba nabízí 2 režimy zabezpečení: share-level a user-level
share-level - share je zabezpečený pouze heslem bez autentizace uživatelů
user- level - 4 rozdílné možnosti:
Konfigurace se provádí v souboru smb.conf (/etc/samba/smb.conf). Konfigurace je rozdělena do jednotlivých sekcí a jednotlivé sekce obsahuje parametry.
Název sekce má tvar [jméno sekce] (příklad: [global], [home], [printers], [merlin]) a parametry parametr = hodnota (příklad: read only = no). Jméno sekce je zároveň použiti jako jméno sdíleného zdroje.
Sekce global definuje parametry platné pro celý server, výchozí hodnoty pro parametry použití v běžných sekcích a nastavení zabezpečení.
[global]
workgroup = STAFF
hosts allow = 10.0.50. 10.0.0
security = share
[merlin]
path = /staff/merlin
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = merlin @kmadmin
Pro připojení Samba share lze využít dva postupy:
CIFS (balík cifs-utils) - mount -t cifs //10.0.50.100/merlin /mnt -o user=merlin
SMBFS (zastaralé) - mount -t smbfs //10.0.50.100/merlin /mnt -o username=merlin
Samba jako člen domény (postup a konfigurace převzato z [9]):
konfigurační soubor:
[global]
workgroup = SAMDOM
security = ADS
realm = SAMDOM.EXAMPLE.COM
winbind refresh tickets = Yes
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes
winbind use default domain = yes
username map = /usr/local/samba/etc/user.map
příkazy:
#ads join -U administrator
#!root = SAMDOM\Administrator
Samba jako řadič domény (postup a konfigurace převzato z [10]):
# samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=SAMDOM.EXAMPLE.COM --domain=SAMDOM --adminpass=Passw0rd
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
RPC umožňuje programům využívat podprogramy, které se nachází v jiném adresním prostoru. RPC je klient-server model.
Postup [11]:
Oba protokoly poskytují klientům informace ohledně RPC programů které na server běží. Portmap vrací port a rpcbind vrací univerzální adresu. poslouchají na portu 111 TCP/UDP. Když klient potřebuje volat konkrétní RPC službu a nezná port/adresu, tak se zeptá na portu 111.
NFS je síťový souborový systém umožňující klientům vzdálený přístup k souborům. Je postavený na RPC systému.
v3
v4.1 [16]
podpora pNFS umožňující paralelní přístup k úložišti
v4.2 [18]
Verze 2 a 3 zamykání přímo nepodporují, používají NLM („Network Lock Manager“).
Verze 4 zamykání přímo podporuje. Stav zámku je serverem udržován pomocí lease-based modelu, klient musí zápůjčku obnovovat. Klient může uzamknout celý soubor nebo jenom část.
Pokud si klient připojí NFS share s přepínačem async, změny jsou uloženy pouze lokální a jen za určitých podmínek jsou synchronizovány se serverem. S přepínačem sync jsou všechny změny okamžitě poslány na server.
Server může také používat sync a async. Při použití sync jsou přijatá data uložena na trvanlivé (persistent) úložiště a poté je zápis potvrzen. U async je zápis potvrzen jakmile data dorazí na server.
Je třeba nainstalovat balík nfs-kernel-server a upravit hlavním konfigurační soubor /etc/exports.
Příklady záznamů z /etc/exports (konfigurace převzata z [22]):
/home/username/share 10.0.50.0/24(rw,sync,no_subtree_check)
/var/test_inputs 10.0.50.2(ro,async, no_subtree_check)
Klient si musí nainstaluje nfs-common a může si share připojit pomoc příkazu mount (příklad převzat z [22]).
# mount -t nfs 10.0.50.1:/var/username/share /mnt/nfs
Server (postup převzat z [23]):
kadmin: addprinc -randkey nfs/nfsserver.example.com
kadmin: ktadd nfs/nfsserver.example.com
přidat sec=krb5 k záznamům v /etc/exports
# exportfs -avr
# systemctl enable nfs-secure-server && systemctl start nfs-secure-server
Klient (postup převzat z [23]):
kadmin: addprinc -randkey nfs/nfsclient.example.com
kadmin: ktadd nfs/nfsclient.example.com
# systemctl enable nfs-secure && systemctl start nfs-secure
# systemctl enable nfs-client.target && systemctl start nfs-client.target
# mount -t nfs4 -o sec=krb5 nfsserver.example.com:/home/tools /mnt
Používá se k automatickému připojování odpojitelných zařízení. Zařízení jsou připojována podle potřeby a odpojena po době neaktivity. Vyžaduje podporu ze strany kernelu. Hlavní konfigurační soubor je /etc/auto.master. Příklad převzat z [24]
/myautoshares /etc/auto.sharedfs --timeout=35
obsah /etc/auto.sharedfs
packages -fstype=nfs 10.0.50.1:/packages
database -fstype=nfs 10.0.50.1:/database
AFS [25] je distribuovaný systém souborů, který svůj obsah rozkládá na množinu důvěryhodných serverů a klientům poskytuje ucelený pohled na sdílený obsah bez ohledu na jeho skuteční umístění na síti, Primární využití je pro distribuované výpočty.
GFS [26] – Google File Systém – proprietární distribuovaný systém souborů vyvinutý společností Google. Dvě hlavní komponenty jsou master uzel a chunkserver uzel. Data jsou rozdělena do chunků o pevné velikosti a přiřazeny 64 bitové označení. Chunky jsou uloženy na chunkserverech a master drží mapu těchto chunků. Každý chunke je v rámci sítě několikrát replikován.