Home

 

Server::Samba

Naar index

SAMBA

Introductie Samba
Een netwerkomgeving is vaak een samenvoeging van verscheidene types servers (Windows 2000 Server, Windows NT 4.0, Linux en Novell Netware) en werkstations (Windows NT/2000/XP/9x/Me en Linux).
Het Network File System (NFS) protocol maakt het mogelijk heterogene bestandssystemen met elkaar te delen. Helaas wordt deze standaard niet ondersteund door Microsoft, die over een eigen systeem voor bestandsdeling beschikt.

Het Server Message Block (SMB) protocol van Microsoft en Intel laat Windows systemen toe bronnen als disks en printers te delen.
Samba is het netwerkprotocol dat de interface van Linux vormt voor een Windows netwerk. Het is een groep programma’s die het SMB-protocol implementeren en die een Linux-systeem omvormen tot een SMB cliënt of server.
M.a.w. Samba laat toe Linux disks en printers ter beschikking te stellen aan gebruikers van Windows systemen. Evenzo kan je bronnen van Windows gebruikers ter beschikking stellen aan Linux gebruikers.

Het SMB-protocol is gebaseerd op de NetBIOS service (API). Dit is een software interface, ontworpen voor communicatie tussen machines, die voorziet in een naamdienst. Om dit te kunnen doen werken, moet men natuurlijk over één of ander transportprotocol beschikken. Dit protocol werd het NetBIOS Extended User Interface (NetBEUI) protocol genoemd. Dit protocol maakte het mogelijk dat elke machine een unieke naam kon claimen voor het LAN, een naam die 15 karakters lang mocht zijn. In de begindagen was NetBEUI zeer populair, maar met de opkomst van TCP/IP dienden zich nieuwe problemen aan. NetBEUI was bovendien niet routable, zodat een implementatie van NetBIOS over TCP/IP al snel een noodzaak werd. Men moest dus in mechanismen voorzien om de enkelvoudige NetBIOS namen te mappen naar sockets. Hoe dit gebeurt maakt het onderwerp uit van twee RFC's (RFC 1001 en RFC 1002) en wordt NBT (NetBIOS over TCP) genoemd.

Tegenwoordig spreekt men over het SMB/CIFS protocol. CIFS is de nieuwe naam die Microsoft probeert te promoten en verwijst naar de internetmogelijkheden van het protocol (Common Internet File System).
Samba biedt bestands- en printdeling, verificatie en autorisatie, naamresolutie en bladerdiensten. Bestands- en printerdeling, verificatie en autorisatie worden beheert door de smbd daemon, terwijl de nmbd daemon de naamresolutie en de bladerfunctie controleert. Een Linux werkstation wordt op deze wijze een volwaardig lid van een Microsoft-netwerk.

Naar index

Activeren met Webconfig
Ga naar Webconfig > Server > Windows netwerk > Windows instellingen: Start de server.


Vul de eerste keer in:
 
1.  Naam:  homeserver
De naam van de server zoals het verschijnt op het Windows Netwerk
 
2.  Home mappen: uitgeschakeld.
Dit heeft mijn voorkeur omdat de te delen mappen zich niet noodzakelijkerwijs in /home ondergebracht zijn en er in /home zich mappen bevinden die ik niet wens te delen. De wel te delen mappen worden daarom verderop in dit hoofdstuk meer specifiek gedeeld in het configuratiebestand. Zie hier het bestand /etc/samba/smb.conf.
 
3.  Administrator wachtwoord: zelfde als de Linux root
 
4.  Modus: Simpele bestands/printer service
 
5.  Domein: Gelijk aan Windows werkgroep -> MSHOME
 
6.  Belangrijk!
Verifieer de vereiste instellingen in sectie: Firewall: Samba poorten

NOTE
Als je van plan bent VPN te gebruiken of méér dan één lokaal netwerk hebt is het belangrijk een WINS Server op het netwerk te hebben. Als je deze al hebt vul dan het IP adres van de server in. Zo niet dan kan deze ClearOS server geconfigureerd worden als een WINS server op je netwerk door het inschakelen van de WINS Support optie.
Mijn produktieserver wordt ingezet op een enkel netwerk met potentieel VPN en wordt WINS ondersteuning geactiveerd.
De testserver is opgenomen in hetzelfde netwerk, dus hier geen WINS support en voeren we bij WINS Server het IP van de produktieserver in.
Meer informatie in: ClearOS Userguide Windows Networking

Samba shares
In Webconfig wordt alleen de optie geboden de diverse home directories te delen door de optie 'home mappen' in te schakelen. In dat geval wordt een home-directory van een gebruiker gedeeld en kan benaderd worden door deze gebruiker na authenticatie met het wachtwoord.
Daarnaast wordt door ClearOS de door mij hier niet gebruikte module Flexshare aangeboden met daarvoor in Webconfig zeer uitgebreide mogelijkheden voor het delen van bestanden via de webserver, ftp, e-mail en/of samba. Zie hiervoor: ClearOS Userguide Flexshares

Naar index

Samba Network Server

De Samba Network Server wordt op deze server ingezet voor het delen van geselecteerde gebruikersmappen (shares) zijnde:

Netwerk Profiel en Security
Hier de beschrijving van het op de hand opzetten van de Windows Server shares door het bewerken van het Samba configuratiebestand /etc/samba/smb.conf.

Authenticatie van Samba cliënten
Enkele jaren terug bestond de optie alle Samba gebruikers als "gast" te verbinden met het netwerk met gedeelde content zonder dat hiervoer ingelogd moest worden.
Dit werd gefaciliteerd door in het Samba configuratie bestand /etc/samba/smb.conf de [global] directive security naar 'shared' te zetten.
Deze directive werd uitgephaseerd en in plaats hiervan werden de volgende directives in de smb.conf [ global] sectie opgenomen:

security = user
map to guest = Bad User

In 2020 is Microsoft nog verder gegaan en blokkeert om veiligheidsredenen per default SMBv1 sinds Windows 10 versie 1709, waardoor onderandere verbinden als gast niet meer mogelijk is.
Het verbinden als gast ondersteunt namelijk niet standaard veiligheidsvoorzieningen zoals authentiseren en versleuteling.

Windows-sambaclients inloggen op Server
Microsoft vereist al jaren het inloggen op Windows PC's. Dit wel met de optie van automatisch inloggen bij het opstarten.
Met de hierbij gebruikte credentials kan nu ook ingelogd worden op de ClearOS sambaserver.

Op de ClearOS server authentiseert Samba gebruikers via LDAP en is het dus niet nodig afzonderlijk smbusers aan te maken.
Het volstaat gebruikers aan te maken in Webconfig > System > Accounts > Users.
Hierbij is het belangrijk dat voor elke Windows-sambaclient op de server een gebruiker aangemaakt wordt met dezelfde gebruikersnaam en wachtwoord als die van de Windows-client PC en dat de gebruiker toegevoegd wordt aan de groep 'lanshare'.

Voorbeeld

SMB.CONF
Zie hier /etc/samba/smb.conf inclusief nadere informatie van de verschillende directives in het confuguratiebestand.

Naar index

Beperking toegang tot 'trusted-IP's'
De feitelijke toegang van de specifieke mappen wordt vervolgens beperkt tot specifieke netwerkstations (hosts) gebaseerd op IP. Toegang zal alleen verleend worden aan de IP's gespecificeerd in de directives van de shares in smb.conf. Zie ook Securing Samba van de Samba HOWTO and Reference Guide.

In de router worden de geselecteerde netwerkstations een vast IP-adres toebedeeld en gebonden aan het MAC-adres.
Zie ook Server::Installeren Connectietype DHCP en IP reservering op router
Selecteer deze vaste IP's in de range 192.168.1.0/26 (192.168.1.0 t/m 92.168.1.63) . Deze IP-range is bedoeld voor 'trusted' hosts.

Zorg ervoor dat in de router de DHCP pool begint buiten deze range van 0-63!

Voor security is het dus wel belangrijk dat de router beveiligd is met een sterk wachtwoord.

Voorbeeld mainserver configuratie in Fritz!Box router:

Naar index

File Server

Bewerk het bestand /etc/samba/smb.conf en voeg aan het einde toe:

[files]
        comment = Gedeelde bestanden en mappen
        path = /home/files
        force user = files
        force group = lanshare
        readonly = No
        create mode = 0644
        directory mask = 0755
        hosts deny = ALL
        hosts allow = 192.168.178.0/26
        browsable = Yes

Naar index

Verklaring smb.conf directives
Zie ook Introduction to Samba en/of Slackwiki Samba

  • force user = files
    force group is lanshare

    Hiermee worden gebruiker en groep van alle mappen en bestanden op de fileserver vastgelegd.
  • create mode = 0644
    De bestanden die samba plaatst krijgen permissies 644, dwz de eigenaar 'files' heeft alle permissies en de rest alleen read.
  • directory mask = 755
    De mappen die samba plaatst krijgen permissies 755, dwz de eigenaar 'files' heeft alle permissies, de groepen 'lanshare' en 'others' kunnen de map openen.
  • host deny = ALL
    Alle hosts wordt de toegang tot de samba share [ files] ontzegd
  • hosts allow = 192.168.178.0/26
    De hosts met een IP in de range 192.168.178.0-63 hebben wel toegang tot deze share
  • browsable = Yes
    De share [ files] is zichtbaar in Windows Netwerk

Mappenstructuur share [files]
In de share maken we een aantal sub-mappen aan om structuur aan te brengen, zijnde:

We zetten de permissies van de sub-mappen naar 755.
Als laatste zetten we '/home/files' naar 555, waarmee we de mappenstructuur vergrendelen.
Voor de Mediaserver Serviio is het noodzakelijk dat ook de 3de partij 'guests' leestoegang krijgt tot naar in ieder geval de mappen afbeeldingen, muziek en video.

   # mkdir /home/files/afbeeldingen
   # mkdir /home/files/documenten
   # mkdir /home/files/e-books
   # mkdir /home/files/muziek
   # mkdir /home/files/video
   
   # chown -R files:lanshare /home/files
   # chmod -R 755 /home/files
   # chmod 555 /home/files
   # find /home/files -type f -name '*' -exec chmod 644 '{}' \; 

We zetten de permissies van map /home/files en submappen naar 755 en als laatste de bestanden hierin naar 644.

Naar index

File Server vs Lokale Opslag Strategie

Het zou mooi zijn de gehele administratie van alle netwerkgebruikers te delen op de server in /home/files/documenten.
Hieraan kleeft echter een risico.
Als om wat voor reden dan ook de server niet bereikbaar is dan zijn mogelijk kritische gegevens niet bereikbaar!

Omdat de gezinsadministratie voor 99% beheerd wordt op de PC 'ben-xps' worden deze bestanden daarom dan ook lokaal opgeslagen op 'ben-xps'.
Om vervolgens deze bestanden toch ook beschikbaar te hebben in de file server share '/home/files/documenten' maken we in deze laatste gedeelde map een nieuwe map aan met de naam 'Mirror-bens-pc'.
Met het programma 'SyncBack' op de PC 'ben-xps' kopieren we vervolgens dagelijks de bestanden in 'D:\Data\documenten\' naar de fileserver map '/home/files/documenten/mirror-bens-pc'. Vanwege de 'mirror' optie worden bestanden alleen in het doel verwijderd. Zo doende blijven deze mogelijk kritische bestanden altijd bereikbaar, ook vanaf het internet via VPN.
Zie op de windows PC 'ben-xps' de instellingen van het programma SyncBackFree in het profiel 'mirror'.

Van deze lokale data op 'ben-xps' wordt met BackupPC al dagelijks een een backup gemaakt dus bij de backup van 'server-documenten' sluiten we de map 'Mirror-bens-pc' uit. Zie hiervoor Server::Backup en Restore Host 'server-documenten' configuratie

Naar index

Webserver

De Webserver bestanden bevinden zich op locatie '/var/www/html'. Zie sectie Webserver: HTTPD.CONF Apache configuratie: Zet DocumentRoot
Omdat de server binnen het locale netwerk ondergebracht is kunnen de websites eenvoudig via Samba geplaatst en onderhouden worden.
De opzet is in grote lijnen gelijk aan wat hiierboven voor de 'File Server' beschreven is.
Toegang is alleen toegestaan voor één gebruiker, genaamd 'website' vanaf een LAN PC met IP 192.168.1.10.

Bewerk het bestand /etc/samba/smb.conf en voeg aan het einde toe:

[website]
        comment = Website Makkink.eu
        path = /var/www/html
        force user = apache
        force group = lanshare
        readonly = No
        create mode = 0644
        directory mask = 0751
        hosts allow = 192.168.178.10
        hosts deny = ALL
        browsable = No

De map /var/www/html is bij de installatie door Apache aangemaakt.
We zetten de permissies van map /var/www/html naar 770, de submappen naar 751 en de bestanden hierin naar 644.

   # chown apache:lanshare /var/www/html
   # chown -R apache:lanshare /var/www/html/*
   # chmod 770 /var/www/html
# chmod -R 755 /var/www/html/*
# find /var/www/html -type f -name '*' -exec chmod 644 '{}' \;

Naar index

Archief

In het archief bewaart de beheerder historisch materiaal en is alleen bereikbaar via zijn werkstation met IP 192.168.1.10

Bewerk het bestand /etc/samba/smb.conf en voeg aan het einde toe:

[archief]
        comment = Archief
        path = /home/archief
        force user = archief
        force group = lanshare
        readonly = No
        create mode = 0644
        directory mask = 0751
        hosts allow = 192.168.178.10
        hosts deny = ALL
        browsable = No

We zetten de permissies van de map naar 700 waardoor alleen door gebruiker 'archief' te openen

   # chown archief:lanshare /home/archief
   # chmod 700 /home/archief 

Naar index

PIWIGO

In /home/pwgdata/galleries plaatst de beheerder de afbeeldingen voor Piwigo en is alleen bereikbaar via zijn werkstation met IP 192.168.1.10

Uit de doos slaat piwigo de data op in de webroot, naar mijn inzicht een slechte gewoonte, al is het alleen al maar voor de overzichtelijkheid en backupopties van de waardevolle data.
De Piwigo mappen die waardevolle eigen data bevatten plaatsen we daarom op buiten de webroot onder /home/pwgdata.
Zie hiervoor PIWIGO::Beveiliging Piwigo data buiten webroot

Zie ook Piwigo::Albums Inrichten Samba setup

Bewerk het bestand /etc/samba/smb.conf en voeg aan het einde toe:

[piwigo]
        comment = Piwigo Gallery
        path = /home/pwgdata/galleries
        force user = apache
        force group = lanshare
        readonly = No
        create mode = 0644
        directory mask = 0751
        hosts deny = ALL
        hosts allow = 192.168.178.10
        browsable = No

We zetten de permissies van map /home/pwgdata/galleries naar 755, de submappen naar 751 en de bestanden hierin naar 644.

   # chown -R apache:lanshare /home/pwgdata/galleries
   # chmod 755 /home/pwgdata/galleries
   # chmod -R 755 /home/pwgdata/galleries/*
   # find /home/pwgdata/galleries -type f -name '*' -exec chmod 644 '{}' \;

Naar index

Windows links naar Samba shares op LAN

De hierboven beschreven Samba Shares op de LAN kunnen op PC's op de LAN in Windows verkenner geopend worden met:

  1. \\mainserver\files        beschikbaar voor alle 'trusted' LAN hosts
  2. \\mainserver\website    alleen host 192.168.178.10 (werkstation beheerder)
  3. \\mainserver\archief    alleen host 192.168.178.10 (werkstation beheerder)

Om een share beschikbaar te stellen op een Windows host selecteer Windows verkenner > Deze PC > Netwerkverbinding maken.

Naar index

Samba link naar Windows share

Om aan de prompt van de ClearOS server Windows shares op het lokale netwerk te benaderen gaat met behulp van Samba vrij eenvoudig volgens onderstaand voorbeeld:

  1. Maak mountpoint:
    # mkdir /mnt/ben
  2. Mount '/data' share op IP 192.168.178.199:
    # mount -o username=ben,passwd="<windows-pc-wachtwoord>" //192.168.178.199/data /mnt/ben
  3. Haal listing:
    # ls -l /mnt/ben

Unmount:
# umount /mnt/ben

Naar index

Bulktransfer van Windows naar Linux met Samba

Transfer met Samba van bestanden van Windows naar Linux mislukt als deze groter zijn dan +/- 17 GB.
Grote TAR bestanden moeten eerst opgesplitst worden naar hapklare brokken. Zie hiervoor ook # man split en # man cat

Voorbeeld
De '/home/pwgdata/' directory (> 150 GB) inpakken en overzetten van de Linux homeserver naar een andere Linux testserver met Windows Verkenner.

Inpakken:

Transfer:

Uitpakken:

Naar index