Sådan installeres Samba4 på CentOS 7 til fildeling på Windows


I vores sidste artikel viste vi, hvordan du installerer Samba4 på Ubuntu til grundlæggende fildeling mellem Ubuntu-systemer og Windows-maskiner. Hvor vi så på at konfigurere anonym (usikker) såvel som sikker fildeling.

Her vil vi beskrive, hvordan du installerer og konfigurerer Samba4 på CentOS 7 (fungerer også på RHEL 7) til grundlæggende fildeling mellem andre Linux-systemer og Windows-maskiner.

Vigtigt: Fra og med version 4.0 kan Samba køre som en Samba4 Active Directory Domain Controller, som indeholder kritiske emner til Ubuntu, CentOS og Windows.

Installer Samba4 i CentOS 7

1. Installer først Samba4 og krævede pakker fra standard CentOS-arkiver ved hjælp af værktøjet yum-pakkehåndtering som vist.

# yum install samba samba-client samba-common

2. Efter installation af samba-pakker skal du aktivere samba-tjenester, der skal tillades gennem system firewall med disse kommandoer.

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload

Kontroller Windows Machine Workgroup Settings

3. Før du fortsætter med at konfigurere samba, skal du sørge for, at Windows-maskinen er i den samme arbejdsgruppe, der skal konfigureres på CentOS-serveren.

Der er to mulige måder at se Windows-maskinens arbejdsgruppeindstillinger på:

  • Højreklik på “Denne pc” eller “Denne computer” → Egenskaber → Avancerede systemindstillinger → Computernavn.

  • Alternativt kan du åbne cmd-prompten og køre følgende kommando og derefter kigge efter "arbejdsstationsdomæne" i output som vist nedenfor.

>net config workstation

Konfiguration af Samba4 på CentOS 7

4. Den vigtigste samba-konfigurationsfil er /etc/samba/smb.conf, den originale fil leveres med indstillinger for konfiguration, der forklarer forskellige konfigurationsdirektiver, der kan guide dig.

Men inden du konfigurerer samba, foreslår jeg, at du tager en sikkerhedskopi af standardfilen som denne.

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

Fortsæt derefter med at konfigurere samba til anonyme og sikre fildelingstjenester som forklaret nedenfor.

5. Opret først det delte bibliotek, hvor filerne gemmes på serveren, og indstil de relevante tilladelser til biblioteket.

# mkdir -p /srv/samba/anonymous
# chmod -R 0775 /srv/samba/anonymous
# chown -R nobody:nobody /srv/samba/anonymous

Du skal også ændre SELinux-sikkerhedskonteksten for den delte samba-bibliotek som følger.

# chcon -t samba_share_t /srv/samba/anonymous

6. Åbn derefter samba-konfigurationsfilen til redigering, hvor du kan ændre/tilføje sektionerne nedenfor med de tilsvarende direktiver.

# vi /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
	netbios name = centos
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

7. Kontroller nu de aktuelle samba-indstillinger ved at køre kommandoen nedenfor.

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No

8. Endelig skal du starte og aktivere samba-tjenester til at starte automatisk ved næste opstart og også anvende ovenstående ændringer for at træde i kraft.

# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl start smb.service
# systemctl start nmb.service

9. På Windows-maskinen skal du åbne "Netværk" fra et Windows Stifinder-vindue og derefter klikke på CentOS-værten, ellers prøv at få adgang til serveren ved hjælp af dens IP-adresse (brug ifconfig-kommandoen for at få IP-adresse).

e.g. \2.168.43.168.

10. Dernæst skal du åbne biblioteket Anonym og prøve at tilføje filer derinde for at dele med andre brugere.

Opsæt Samba4 Secure File Sharing

11. Start først med at oprette en samba-systemgruppe, føj derefter brugere til gruppen og indstil en adgangskode til hver bruger som sådan.

# groupadd smbgrp
# usermod tecmint -aG smbgrp
# smbpasswd -a tecmint

12. Opret derefter et sikkert bibliotek, hvor de delte filer opbevares, og indstil de relevante tilladelser til biblioteket med SELinux-sikkerhedskontekst til samba.

# mkdir -p /srv/samba/secure
# chmod -R 0770 /srv/samba/secure
# chown -R root:smbgrp /srv/samba/secure
# chcon -t samba_share_t /srv/samba/secure

13. Åbn derefter konfigurationsfilen til redigering og rediger/tilføj afsnittet nedenfor med de tilsvarende direktiver.

# vi /etc/samba/smb.conf
[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

14. Bekræft igen samba-konfigurationsindstillingerne ved at køre følgende kommando.

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

Press enter to see a dump of your service definitions

# Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure
	read only = No
	valid users = @smbgrp

15. Genstart Samba-tjenester for at anvende ændringerne.

# systemctl restart smb.service
# systemctl restart nmb.service

16. Gå til Windows-maskine, åbn "Netværk" fra et Windows Stifinder-vindue, og klik derefter på CentOS-værten, ellers prøv at få adgang til serveren ved hjælp af dens IP-adresse.

e.g. \2.168.43.168.

Du bliver bedt om at angive dit brugernavn og din adgangskode for at logge ind på CentOS-serveren. Når du har indtastet legitimationsoplysningerne, skal du klikke på OK.

17. Når du er logget ind, vil du se alle de samba-delte mapper. Del nu nogle filer sikkert med andre tilladte brugere på netværket ved at slippe dem i Sikker mappe.

Du kan også tjekke disse nyttige artikler om Samba-fildeling på et netværk.

  1. Sådan monteres/afmonteres lokale og netværk (Samba & NFS) filsystemer i Linux
  2. Brug af ACL'er (adgangskontrolister) og montering af Samba/NFS-aktier
  3. Sådan løses SambaCry-sårbarhed (CVE-2017-7494) i Linux-systemer

I denne vejledning viste vi dig, hvordan du konfigurerer Samba4 til anonym og sikker fildeling mellem CentOS og andre Linux-systemer såvel som Windows-maskiner. Del eventuelle tanker med os via kommentarfeltet nedenfor.