Zoeken op website

Hoe Samba op Ubuntu te installeren voor het delen van bestanden op Windows


Samba is een gratis/open source en veelgebruikte software voor het delen van bestanden en afdrukservices tussen Unix-achtige systemen, waaronder Linux- en Windows-hosts op hetzelfde netwerk.

In deze handleiding laten we zien hoe u Samba4 instelt voor het eenvoudig delen van bestanden tussen Ubuntu-systemen en Windows-machines. We behandelen twee mogelijke scenario's: anoniem (onbeveiligd) en veilig delen van bestanden.

Voorgesteld leesvoer: Samba4 installeren op CentOS/RHEL 7 voor het delen van bestanden op Windows

Houd er rekening mee dat Samba vanaf versie 4.0 kan worden gebruikt als een Active Directory (AD) domeincontroller (DC). We hebben een speciale serie georganiseerd voor het instellen van Samba4 Active Directory Domain Controller, die bestaat uit belangrijke onderwerpen onder Ubuntu, CentOS en Windows.

  1. Samba4 Active Directory-domeincontroller instellen

Installeer en configureer Samba in Ubuntu

De Samba-server kan worden geïnstalleerd vanuit de standaard Ubuntu-opslagplaatsen met behulp van de apt-pakketbeheertool, zoals weergegeven.

sudo apt install samba samba-common python-dnspython

Zodra de samba-server is geïnstalleerd, is het nu tijd om de samba-server te configureren als: onbeveiligd anoniem en beveiligd delen van bestanden.

Hiervoor moeten we het belangrijkste Samba-configuratiebestand /etc/samba/smb.conf bewerken (waarin verschillende configuratierichtlijnen worden uitgelegd).

Maak eerst als volgt een back-up van het originele samba-configuratiebestand.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Daarna gaan we verder met het configureren van samba voor anonieme en veilige bestandsdeling services, zoals hieronder uitgelegd.

Belangrijk: voordat u verder gaat, zorg ervoor dat de Windows-machine zich in dezelfde werkgroep bevindt die op de Ubuntu-server zal worden geconfigureerd.

Controleer de Windows Machine WorkGroup-instellingen

Log in op uw Windows-computer, klik met de rechtermuisknop op “Deze pc” of “Mijn computer Eigenschappen Geavanceerde systeeminstellingen Computernaam om de werkgroep te verifiëren.

U kunt ook de opdrachtprompt openen en bekijken door de onderstaande opdracht uit te voeren en naar “werkstationdomein” te zoeken.

>net config workstation

Zodra u uw Windows-werkgroep kent, is het tijd om verder te gaan en de samba-server te configureren voor het delen van bestanden.

Anoniem Samba-bestanden delen

Begin eerst met het maken van een gedeelde samba-map waarin de bestanden worden opgeslagen.

sudo mkdir -p /srv/samba/anonymous_shares

Stel vervolgens de juiste machtigingen voor de map in.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Open nu het configuratiebestand.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Bewerk of wijzig vervolgens de richtlijninstellingen zoals hieronder beschreven.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Controleer nu de huidige samba-instellingen door de onderstaande opdracht uit te voeren.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Start vervolgens de Samba-services opnieuw op om de bovenstaande wijzigingen door te voeren.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Anonieme Samba-bestandsdeling testen

Ga naar de Windows-computer en open “Netwerk” vanuit een Windows Verkenner-venster. Klik op de Ubuntu-host (TECMINT in ons geval), of probeer anders toegang te krijgen tot de samba-server met behulp van zijn IP-adres.

\2.168.43.168

Opmerking: gebruik de opdracht ifconfig om het IP-adres van uw Ubuntu-server op te halen.

Open vervolgens de map Anoniem en probeer daar bestanden toe te voegen om met andere gebruikers te delen.

Veilig delen van Samba-bestanden

Om een samba-share met een wachtwoord te beveiligen, moet u een groep “smbgrp” maken en voor elke gebruiker een wachtwoord instellen. In dit voorbeeld gebruik ik aaronkilik als gebruiker en het wachtwoord als “tecmint“.

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Opmerking: De samba-beveiligingsmodus: security=user vereist dat clients een gebruikersnaam en wachtwoord invoeren om verbinding te maken met gedeelde mappen.

Samba-gebruikersaccounts staan los van systeemaccounts, maar u kunt optioneel het libpam-winbind-pakket installeren dat wordt gebruikt om systeemgebruikers en wachtwoorden te synchroniseren met de samba-gebruikersdatabase.

sudo apt install libpam-winbind

Maak vervolgens de beveiligde map aan waar de gedeelde bestanden worden bewaard.

sudo mkdir -p /srv/samba/secure_shares

Stel vervolgens de juiste machtigingen voor de map in.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Open nu het configuratiebestand.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Bewerk of wijzig vervolgens de richtlijninstellingen zoals hieronder beschreven.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Voer, net als voorheen, deze opdracht uit om uw huidige samba-instellingen te bekijken.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Zodra u klaar bent met de bovenstaande configuraties, start u de Samba-services opnieuw op om de wijzigingen toe te passen.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Veilige Samba-bestandsdeling testen

Net als voorheen, op de Windows-computer, en open “Netwerk ” vanuit een Windows Verkenner-venster. Klik op de Ubuntu-host (TECMINT voor ons geval). Mogelijk krijgt u de onderstaande foutmelding. Als u dit niet doet, gaat u verder met de volgende stap.

Probeer toegang te krijgen tot de server via het IP-adres, b.v. \\192.168.43.168 zoals dit. Voer vervolgens de inloggegevens (gebruikersnaam en wachtwoord) in voor gebruiker aaronkilik en klik op OK.

Je ziet nu alle gedeelde mappen, klik op Beveiligd om deze te openen.

U kunt bepaalde bestanden veilig delen met andere toegestane gebruikers op het netwerk door ze in deze map neer te zetten.

Schakel Samba in UFW Firewall in Ubuntu in

Als u de UFW-firewall ingeschakeld/actief heeft op uw systeem, moet u de regels toevoegen om Samba door uw firewall te laten passeren.

Om dit te testen hebben we het 192.168.43.0 netwerkschema gebruikt. Voer de onderstaande opdrachten uit en geef uw netwerkadres op.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

U kunt ook deze nuttige artikelen lezen over het delen van Samba-bestanden op een netwerk.

  1. Samba4 Active Directory Domain Controller instellen - Deel 1 tot 14
  2. Hoe lokale en netwerkbestandssystemen (Samba en NFS) in Linux te koppelen/ontkoppelen
  3. Gebruik van ACL's (toegangscontrolelijsten) en het koppelen van Samba/NFS-shares
  4. Hoe u een SambaCry-kwetsbaarheid (CVE-2017-7494) in Linux-systemen kunt oplossen

Dat is alles! In deze handleiding hebben we u laten zien hoe u Samba4 instelt voor het anoniem en veilig delen van bestanden tussen Ubuntu- en Windows-machines. Gebruik het onderstaande feedbackformulier om uw mening met ons te delen.