Hvordan installere Samba på Ubuntu for fildeling på Windows


Samba er en gratis/åpen kildekode og populært brukt programvare for deling av filer og utskriftstjenester mellom Unix-lignende systemer inkludert Linux- og Windows-verter på samme nettverk.

I denne veiledningen vil vi vise hvordan du setter opp Samba4 for grunnleggende fildeling mellom et Ubuntu-system og Windows-maskiner. Vi vil dekke to mulige scenarier: anonym (usikker) så vel som sikker fildeling.

Merk at fra og med versjon 4.0 kan Samba brukes som en Active Directory (AD) domenekontroller (DC). Vi har organisert en spesiell serie for å sette opp Samba4 Active Directory Domain Controller, som består av nøkkelemner under Ubuntu, CentOS og Windows.

  1. Konfigurere Samba4 Active Directory-domenekontroller

Installer og konfigurer Samba i Ubuntu

Samba-serveren er tilgjengelig for installasjon fra standard Ubuntu-repositoriene ved å bruke apt-pakkebehandlingsverktøyet som vist.

$ sudo apt install samba samba-common python-dnspython

Når samba-serveren er installert, er det nå på tide å konfigurere samba-serveren som: usikker anonym og sikker fildeling.

For dette må vi redigere hovedkonfigurasjonsfilen for Samba /etc/samba/smb.conf (som forklarer ulike konfigurasjonsdirektiver).

Sikkerhetskopier først den originale samba-konfigurasjonsfilen som følger.

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

Etterpå fortsetter vi med å konfigurere samba for anonyme og sikre fildelingstjenester som forklart nedenfor.

Viktig: Før du går videre, sørg for at Windows-maskinen er i samme arbeidsgruppe som skal konfigureres på Ubuntu-serveren.

Logg på Windows-maskinen din, høyreklikk på \Denne PCen eller \Min datamaskin → Egenskaper → Avanserte systeminnstillinger → Datamaskinnavn for å bekrefte arbeidsgruppen.

Alternativt kan du åpne ledeteksten og se den ved å kjøre kommandoen nedenfor og se etter arbeidsstasjonsdomene.

>net config workstation

Når du kjenner Windows-arbeidsgruppen din, er det på tide å gå videre og konfigurere samba-serveren for fildeling.

Anonym Samba-fildeling

Start først med å lage en delt samba-katalog der filene skal lagres.

$ sudo mkdir -p /srv/samba/anonymous_shares

Sett deretter de riktige tillatelsene på katalogen.

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

Åpne nå konfigurasjonsfilen.

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

Rediger eller endre deretter direktivinnstillingene som beskrevet nedenfor.

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

Bekreft nå gjeldende samba-innstillinger ved å kjøre kommandoen nedenfor.

$ 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 deretter Samba-tjenester på nytt for å utføre endringene ovenfor.

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

Gå til Windows-maskinen og åpne \Nettverk fra et Windows Utforsker-vindu Klikk på Ubuntu-verten (TECMINT for vårt tilfelle), eller prøv å få tilgang til samba-serveren ved å bruke IP-adressen.

\2.168.43.168

Merk: Bruk ifconfig-kommandoen for å få Ubuntu-serverens IP-adresse.

Åpne så Anonym-katalogen og prøv å legge til filer der for å dele med andre brukere.

Sikker Samba-fildeling

For å passordbeskytte en samba-andel, må du opprette en gruppe smbgrp og angi et passord for hver bruker. I dette eksemplet bruker jeg aaronkilik som bruker og passord som tecmint.

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

Merk: Samba-sikkerhetsmodus: security = bruker krever at klienter oppgir et brukernavn og passord for å koble til delinger.

Samba-brukerkontoer er atskilt fra systemkontoer, men du kan eventuelt installere libpam-winbind-pakken som brukes til å synkronisere systembrukere og passord med samba-brukerdatabasen.

$ sudo apt install libpam-winbind

Deretter oppretter du den sikre katalogen der de delte filene skal oppbevares.

$ sudo mkdir -p /srv/samba/secure_shares

Deretter setter du de riktige tillatelsene på katalogen.

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

Åpne nå konfigurasjonsfilen.

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

Rediger eller endre deretter direktivinnstillingene som beskrevet nedenfor.

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

Akkurat som før, kjør denne kommandoen for å se dine nåværende samba-innstillinger.

$ 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

Når du er ferdig med konfigurasjonene ovenfor, start Samba-tjenester på nytt for å bruke endringene.

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

Som før, i Windows-maskinen, og åpne \Nettverk fra et Windows Utforsker-vindu. Klikk på Ubuntu-verten (TECMINT for vårt tilfelle). Du kan få feilmeldingen nedenfor, hvis ikke fortsett til neste trinn.

Prøv å få tilgang til serveren ved å bruke IP-adressen, f.eks. \\192.168.43.168 som dette. Skriv deretter inn legitimasjonen (brukernavn og passord) for bruker aaronkilik og klikk OK.

Du vil nå se alle de delte katalogene, klikk på Sikker for å åpne den.

Du kan trygt dele noen filer med andre tillatte brukere på nettverket ved å slippe dem i denne katalogen.

Aktiver Samba i UFW-brannmur i Ubuntu

Hvis du har UFW-brannmur aktivert/aktiv på systemet ditt, må du legge til reglene for å la Samba passere gjennom brannmuren din.

For å teste dette har vi brukt nettverksskjemaet 192.168.43.0. Kjør kommandoene nedenfor som spesifiserer nettverksadressen din.

$ 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

Du kan også sjekke ut disse nyttige artiklene om Samba-fildeling på et nettverk.

  1. Konfigurering av Samba4 Active Directory-domenekontroller – del 1 til 14
  2. Hvordan montere/avmontere lokale og nettverksfilsystemer (Samba og NFS) i Linux
  3. Bruk av ACL-er (tilgangskontrollister) og montering av Samba/NFS-andeler
  4. Slik fikser du SambaCry-sårbarheten (CVE-2017-7494) i Linux-systemer

Det er alt! I denne veiledningen viste vi deg hvordan du konfigurerer Samba4 for anonym og sikker fildeling mellom Ubuntu- og Windows-maskiner. Bruk tilbakemeldingsskjemaet nedenfor for å dele eventuelle tanker med oss.