Zoeken op website

Samba instellen en FirewallD en SELinux configureren om het delen van bestanden op Linux/Windows-clients toe te staan - Deel 6


Omdat computers zelden als geïsoleerde systemen werken, mag je verwachten dat je als systeembeheerder of engineer weet hoe je een netwerk met meerdere soorten servers moet opzetten en onderhouden.

In dit artikel en in de volgende van deze serie zullen we de essentie doornemen van het instellen van Samba- en NFS-servers met respectievelijk Windows/Linux- en Linux-clients.

Dit artikel zal zeker van pas komen als u bestandsservers moet opzetten in bedrijfs- of ondernemingsomgevingen waar u waarschijnlijk verschillende besturingssystemen en soorten apparaten zult aantreffen.

Omdat je overal op internet over de achtergrond en de technische aspecten van zowel Samba als NFS kunt lezen, gaan we in dit en het volgende artikel meteen ter zake met het onderwerp dat voorhanden is.

Stap 1: Samba Server installeren

Onze huidige testomgeving bestaat uit twee RHEL 7-boxen en één Windows 8-machine, in deze volgorde:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

Installeer op box1 de volgende pakketten:


yum update && yum install samba samba-client samba-common

Op box2:


yum update && yum install samba samba-client samba-common cifs-utils

Zodra de installatie is voltooid, zijn we klaar om onze share te configureren.

Stap 2: Bestandsdeling instellen via Samba

Een van de redenen waarom Samba zo relevant is, is omdat het bestands- en afdrukservices biedt aan SMB/CIFS-clients, waardoor deze clients de server zien alsof het een Windows-systeem (ik moet toegeven dat ik de neiging heb een beetje emotioneel te worden als ik over dit onderwerp schrijf, aangezien het mijn eerste installatie was als nieuwe Linux-systeembeheerder enkele jaren geleden).

Systeemgebruikers toevoegen en machtigingen en eigendom instellen

Om groepssamenwerking mogelijk te maken, maken we een groep met de naam finance met twee gebruikers (user1 en user2) met de opdracht useradd en een directory /financiering in box1.

We zullen ook de groepseigenaar van deze map wijzigen in financiën en de rechten instellen op 0770 (lees-, schrijf- en uitvoeringsrechten voor de eigenaar en de groepseigenaar):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Stap 3: SELinux en Firewalld configureren

Ter voorbereiding op het configureren van /finance als een Samba-share, zullen we ofwel SELinux moeten uitschakelen of de juiste Boolean en beveiligingscontextwaarden als volgt moeten instellen (anders zal SELinux voorkomen dat clients toegang krijgen tot de share):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Daarnaast moeten we ervoor zorgen dat Samba-verkeer wordt toegestaan door de firewalld.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Stap 4: Configureer Samba Share

Nu is het tijd om in het configuratiebestand /etc/samba/smb.conf te duiken en de sectie voor ons aandeel toe te voegen: we willen dat de leden van de financiële groep in staat zijn om door de inhoud van /finance te bladeren en / op te slaan en er bestanden of submappen in te maken (waarvan de toestemmingsbits standaard zijn ingesteld op 0770 en financiën worden hun groepseigenaar):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Sla het bestand op en test het vervolgens met het hulpprogramma testparm. Als er fouten zijn, geeft de uitvoer van de volgende opdracht aan wat u moet oplossen. Anders wordt er een overzicht van uw Samba-serverconfiguratie weergegeven:

Mocht u nog een share willen toevoegen die open is voor het publiek (dat wil zeggen zonder enige vorm van authenticatie), maak dan een andere sectie aan in /etc/samba/smb.conf en kopieer onder de naam van de nieuwe share de sectie hierboven , waarbij alleen public=no wordt gewijzigd in public=yes en de geldige gebruikers- en schrijflijstrichtlijnen niet worden meegenomen.

Stap 5: Samba-gebruikers toevoegen

Vervolgens moet u user1 en user2 toevoegen als Samba-gebruikers. Om dit te doen, gebruikt u de opdracht smbpasswd, die communiceert met de interne database van Samba. U wordt gevraagd een wachtwoord in te voeren dat u later zult gebruiken om verbinding te maken met de share:


smbpasswd -a user1
smbpasswd -a user2

Start ten slotte Samba opnieuw op, schakel de service in om te starten bij het opstarten en zorg ervoor dat de share daadwerkelijk beschikbaar is voor netwerkclients:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

Op dit punt is de Samba-bestandsserver correct geïnstalleerd en geconfigureerd. Nu is het tijd om deze configuratie te testen op onze RHEL 7- en Windows 8-clients.

Stap 6: De Samba Share in Linux monteren

Zorg er eerst voor dat de Samba-share toegankelijk is vanaf deze client:


smbclient –L 192.168.0.18 -U user2

(herhaal de bovenstaande opdracht voor gebruiker1)

Net als elk ander opslagmedium kunt u deze netwerkshare indien nodig aankoppelen (en later ontkoppelen):


mount //192.168.0.18/finance /media/samba -o username=user1

(waarbij /media/samba een bestaande map is)

of permanent, door het volgende item toe te voegen aan het bestand /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Waar het verborgen bestand /media/samba/.smbcredentials (waarvan de rechten en het eigendom zijn ingesteld op respectievelijk 600 en root:root) bevat twee regels die de gebruikersnaam en het wachtwoord aangeven van een account dat de share mag gebruiken:


username=user1
password=PasswordForUser1

Laten we ten slotte een bestand maken in /finance en de rechten en eigendom controleren:


touch /media/samba/FileCreatedInRHELClient.txt

Zoals u kunt zien, is het bestand gemaakt met 0770-rechten en is het eigendom ingesteld op user1:finance.

Stap 7: De Samba Share in Windows monteren

Om de Samba-share in Windows te koppelen, gaat u naar Mijn pc en kiest u Computer en vervolgens Map netwerkstation. Wijs vervolgens een letter toe aan de schijf die moet worden toegewezen en vink Verbinden aan met verschillende inloggegevens (de onderstaande schermafbeeldingen zijn in het Spaans, mijn moedertaal):

Laten we ten slotte een bestand maken en de machtigingen en eigendom controleren:


ls -l /finance

Deze keer is het bestand eigendom van user2, aangezien dat het account is dat we hebben gebruikt om verbinding te maken vanaf de Windows-client.

Samenvatting

In dit artikel hebben we niet alleen uitgelegd hoe je een Samba server en twee clients kunt opzetten met verschillende besturingssystemen, maar ook hoe je de firewalld en SELinux op de server kunt configureren om de gewenste groepssamenwerkingsmogelijkheden mogelijk te maken.

Als laatste, maar daarom niet minder belangrijk, wil ik u aanraden de online manpagina van smb.conf te lezen om andere configuratierichtlijnen te verkennen die mogelijk geschikter zijn voor uw geval dan het scenario dat in dit artikel wordt beschreven.

Zoals altijd kunt u een reactie achterlaten via het onderstaande formulier als u opmerkingen of suggesties heeft.