Síťové souborové systémy

Pavel Fikar, 422485@mail.muni.cz

Obsah

Samba

SMB/CIFS [2]

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.

Verze SMB:

 

Samba [5]

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.

Samba démoni [3]:

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

 

Zabezpečení [6]

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 [1]

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í.

Příklady (převzato z [7]):

[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

 

Uživatelé [7]

  1. Vytvořit běžného uživatele – # useradd merlin
  2. Přidat uživatele do Samby – # smbpasswd -a merlin
  3. Aktivovat uživatele – # smbpasswd -e merlin

 

mount [8]

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

 

Windows doména

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, portmapper/rpcbind

RPC [11][12]

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]:

 

Portmap/rpcbind [13][14]

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 [16]

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.

 

Verze [15]

v3

 

v4 [17][19]

 

v4.1 [16]

 

v4.2 [18]

 

Zamykání [20]

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.

 

Cache [21]

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.

 

Konfigurace [22]

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)

 

Mount [22]

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

 

Kerberos [23]

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

 

Automounter [24]

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/GFS

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.

 

Literatura