Kaip įdiegti „Samba“ „Ubuntu“ failų bendrinimui sistemoje „Windows“


„Samba“ yra nemokama/atviro kodo ir populiariai naudojama programinė įranga, skirta dalytis failais ir spausdinimo paslaugomis tarp „Unix“ tipo sistemų, įskaitant „Linux“ ir „Windows“ kompiuterius tame pačiame tinkle.

Šiame vadove parodysime, kaip nustatyti „Samba4“ pagrindiniam failų bendrinimui tarp „Ubuntu“ sistemų ir „Windows“ mašinų. Mes apimsime du galimus scenarijus: anoniminį (nesaugų) ir saugų failų bendrinimą.

Atkreipkite dėmesį, kad pradedant nuo 4.0 versijos, „Samba“ galima naudoti kaip „Active Directory“ (AD) domeno valdiklį (DC). Mes sukūrėme specialią „Samba4 Active Directory“ domeno valdiklio nustatymo seriją, kurią sudaro pagrindinės „Ubuntu“, „CentOS“ ir „Windows“ temos.

  1. „Samba4 Active Directory“ domeno valdiklio nustatymas

Įdiekite ir sukonfigūruokite „Samba“ „Ubuntu“

„Samba“ serverį galima įdiegti iš numatytųjų „Ubuntu“ saugyklų naudojant „apt“ paketų tvarkyklės įrankį, kaip parodyta.

$ sudo apt install samba samba-common python-dnspython

Kai buvo įdiegtas „Samba“ serveris, atėjo laikas sukonfigūruoti „Samba“ serverį taip: nesaugus anoniminis ir saugus failų bendrinimas.

Tam turime redaguoti pagrindinį „Samba“ konfigūracijos failą /etc/samba/smb.conf (kuris paaiškina įvairias konfigūravimo direktyvas).

Pirmiausia sukurkite atsarginę „Samba“ konfigūracijos failo kopiją taip.

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

Vėliau mes sukonfigūruosime „Samba“ anoniminėms ir saugioms failų bendrinimo paslaugoms, kaip paaiškinta toliau.

Svarbu: prieš pereidami toliau, įsitikinkite, kad „Windows“ mašina yra toje pačioje darbo grupėje, kuri bus sukonfigūruota „Ubuntu“ serveryje.

Prisijunkite prie „Windows“ kompiuterio, dešiniuoju pelės mygtuku spustelėkite „Šis kompiuteris“ arba „Mano kompiuteris“ → Ypatybės → Išplėstiniai sistemos nustatymai → Kompiuterio pavadinimas, kad patikrintumėte darbo grupę.

Arba atidarykite komandų eilutę ir peržiūrėkite ją vykdydami žemiau esančią komandą ir ieškokite „darbo vietos domeno“.

>net config workstation

Kai žinosite savo „Windows“ darbo grupės laiką judėti į priekį ir sukonfigūruoti „Samba“ serverį dalytis failais.

Anonimas „Samba“ failų bendrinimas

Pirmiausia sukurkite bendrą samba katalogą, kuriame bus saugomi failai.

$ sudo mkdir -p /srv/samba/anonymous_shares

Tada kataloge nustatykite reikiamus leidimus.

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

Dabar atidarykite konfigūracijos failą.

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

Tada redaguokite arba keiskite direktyvos nustatymus, kaip aprašyta toliau.

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

Dabar patikrinkite dabartinius „samba“ nustatymus vykdydami toliau pateiktą komandą.

$ 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

Tada paleiskite „Samba“ paslaugas iš naujo, kad atliktumėte aukščiau nurodytus pakeitimus.

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

Eikite į „Windows“ kompiuterį ir „Windows Explorer“ lange atidarykite „Tinklas“. Spustelėkite „Ubuntu“ pagrindinį kompiuterį (mūsų atveju - „TECMINT“) arba bandykite prieiti prie „Samba“ serverio naudodami jo IP adresą.

\2.168.43.168

Pastaba: Norėdami gauti savo „Ubuntu“ serverio IP adresą, naudokite komandą „ifconfig“.

Tada atidarykite „Anonymous“ katalogą ir pabandykite pridėti failų ten, kad galėtumėte jais dalytis su kitais vartotojais.

Saugus „Samba“ failų bendrinimas

Norėdami apsaugoti „samba“ bendrinimą slaptažodžiu, turite sukurti grupę „smbgrp“ ir nustatyti kiekvieno vartotojo slaptažodį. Šiame pavyzdyje aš naudoju „aaronkilik“ kaip vartotoją ir slaptažodį kaip „tecmint“.

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

Pastaba: „Samba“ saugos režimas: saugumas = vartotojas reikalauja, kad klientai įvestų vartotojo vardą ir slaptažodį, kad prisijungtų prie bendrinamų elementų.

„Samba“ vartotojo abonementai yra atskirai nuo sistemos abonementų, tačiau galite pasirinkti įdiegti „libpam-winbind“ paketą, kuris naudojamas sistemos vartotojams ir slaptažodžiams sinchronizuoti su „Samba“ vartotojų duomenų baze.

$ sudo apt install libpam-winbind

Tada sukurkite saugų katalogą, kuriame bus laikomi bendri failai.

$ sudo mkdir -p /srv/samba/secure_shares

Tada nustatykite reikiamus leidimus kataloge.

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

Dabar atidarykite konfigūracijos failą.

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

Tada redaguokite arba keiskite direktyvos nustatymus, kaip aprašyta toliau.

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

Kaip ir anksčiau, vykdykite šią komandą, kad pamatytumėte dabartinius „samba“ nustatymus.

$ 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

Atlikę aukščiau nurodytas konfigūracijas, iš naujo paleiskite „Samba“ paslaugas, kad pritaikytumėte pakeitimus.

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

Kaip ir anksčiau, „Windows“ kompiuteryje atidarykite „Network“ iš „Windows Explorer“ lango. Spustelėkite Ubuntu pagrindinį kompiuterį (TECMINT mūsų atveju). Toliau galite gauti klaidą, jei ne, pereikite prie kito veiksmo.

Pabandykite pasiekti serverį naudodami jo IP adresą, pvz. \192.168.43.168 kaip šis. Tada įveskite vartotojo aaronkilik kredencialus (vartotojo vardą ir slaptažodį) ir spustelėkite Gerai.

Dabar peržiūrėsite visus bendrinamus katalogus, spustelėkite „Saugus“, kad juos atidarytumėte.

Kai kuriuos failus galite saugiai bendrinti su kitais leidžiamais tinklo vartotojais, įvesdami juos į šį katalogą.

Įjunkite „Samba“ „UFW“ užkardoje „Ubuntu“

Jei jūsų sistemoje yra įjungta/aktyvi UFW užkarda, turite pridėti taisykles, kad „Samba“ galėtų pereiti per jūsų užkardą.

Norėdami tai išbandyti, naudojome tinklo 192.168.43.0 schemą. Vykdykite toliau nurodytas komandas nurodydami savo tinklo adresą.

$ 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

Taip pat galite peržiūrėti šiuos naudingus straipsnius apie „Samba“ failų bendrinimą tinkle.

  1. „Samba4 Active Directory“ domeno valdiklio nustatymas - 1–14 dalys
  2. Kaip prijungti/atjungti vietinių ir tinklo („Samba“ ir NFS) failų sistemas sistemoje „Linux“
  3. ACL (prieigos kontrolės sąrašų) naudojimas ir „Samba/NFS Shares“ montavimas
  4. Kaip ištaisyti „SambaCry“ pažeidžiamumą (CVE-2017-7494) „Linux“ sistemose

Tai viskas! Šiame vadove mes parodėme, kaip nustatyti „Samba4“ anoniminiam ir saugiam failų bendrinimui tarp „Ubuntu“ ir „Windows“ mašinų. Norėdami pasidalinti mintimis su mumis, naudokite toliau pateiktą atsiliepimų formą.