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.
- 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.
- Samba4 Active Directory Domain Controller instellen - Deel 1 tot 14
- Hoe lokale en netwerkbestandssystemen (Samba en NFS) in Linux te koppelen/ontkoppelen
- Gebruik van ACL's (toegangscontrolelijsten) en het koppelen van Samba/NFS-shares
- 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.