Vyhledávání na webu

Jak nainstalovat Sambu na Ubuntu pro sdílení souborů ve Windows


Samba je bezplatný/open source a populárně používaný software pro sdílení souborů a tiskových služeb mezi systémy podobnými Unixu, včetně hostitelů Linux a Windows ve stejné síti.

V této příručce si ukážeme, jak nastavit Samba4 pro základní sdílení souborů mezi systémy Ubuntu a počítači se systémem Windows. Pokryjeme dva možné scénáře: anonymní (nezabezpečené) a také zabezpečené sdílení souborů.

Doporučená četba: Jak nainstalovat Samba4 na CentOS/RHEL 7 pro sdílení souborů ve Windows

Upozorňujeme, že počínaje verzí 4.0 lze Sambu používat jako řadič domény (DC) služby Active Directory (AD). Uspořádali jsme speciální sérii pro nastavení Samba4 Active Directory Domain Controller, která obsahuje klíčová témata v Ubuntu, CentOS a Windows.

  1. Nastavení řadiče domény Samba4 Active Directory

Nainstalujte a nakonfigurujte Sambu v Ubuntu

Server Samba je k dispozici pro instalaci z výchozích repozitářů Ubuntu pomocí nástroje správce balíčků apt, jak je znázorněno.

sudo apt install samba samba-common python-dnspython

Po instalaci serveru samba je nyní čas nakonfigurovat server samba jako: nezabezpečený anonymní a zabezpečené sdílení souborů.

K tomu potřebujeme upravit hlavní konfigurační soubor Samby /etc/samba/smb.conf (který vysvětluje různé konfigurační direktivy).

Nejprve zálohujte původní konfigurační soubor samby následovně.

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

Poté přistoupíme k konfiguraci samby pro anonymní a zabezpečené sdílení souborů, jak je vysvětleno níže.

Důležité: Než budete pokračovat, ujistěte se, že počítač se systémem Windows je ve stejné pracovní skupině, která bude nakonfigurována na serveru Ubuntu.

Zkontrolujte nastavení pracovní skupiny Windows Machine

Přihlaste se do počítače se systémem Windows, klikněte pravým tlačítkem na „Tento počítač“ nebo „Tento počítač Vlastnosti Pokročilá nastavení systému Název počítače pro ověření pracovní skupiny.

Případně otevřete příkazový řádek a zobrazte jej spuštěním příkazu níže a vyhledejte „doménu pracovní stanice“.

>net config workstation

Jakmile poznáte svou pracovní skupinu Windows, je čas pokročit vpřed a nakonfigurovat server samba pro sdílení souborů.

Anonymní sdílení souborů Samba

Nejprve začněte vytvořením sdíleného adresáře samba, kde budou soubory uloženy.

sudo mkdir -p /srv/samba/anonymous_shares

Poté nastavte příslušná oprávnění k adresáři.

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

Nyní otevřete konfigurační soubor.

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

Dále upravte nebo upravte nastavení direktivy, jak je popsáno níže.

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

Nyní ověřte aktuální nastavení samby spuštěním příkazu níže.

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

Poté restartujte služby Samba, abyste provedli výše uvedené změny.

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

Testování anonymního sdílení souborů Samba

Přejděte do počítače se systémem Windows a z okna Průzkumníka Windows otevřete „Síť“. Klikněte na hostitele Ubuntu (v našem případě TECMINT) nebo se pokuste o přístup k serveru samba pomocí jeho IP adresy.

\2.168.43.168

Poznámka: Pomocí příkazu ifconfig získejte IP adresu svého serveru Ubuntu.

Poté otevřete adresář Anonymní a zkuste do něj přidat soubory, které chcete sdílet s ostatními uživateli.

Bezpečné sdílení souborů Samba

Chcete-li chránit sdílení samba heslem, musíte vytvořit skupinu „smbgrp“ a nastavit heslo pro každého uživatele. V tomto příkladu používám aaronkilik jako uživatele a heslo jako „tecmint“.

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

Poznámka: Režim zabezpečení samba: security=user vyžaduje, aby klienti zadali uživatelské jméno a heslo pro připojení ke sdíleným složkám.

Uživatelské účty Samba jsou oddělené od systémových účtů, můžete si však volitelně nainstalovat balíček libpam-winbind, který se používá k synchronizaci systémových uživatelů a hesel s databází uživatelů samby.

sudo apt install libpam-winbind

Poté vytvořte zabezpečený adresář, kde budou sdílené soubory uloženy.

sudo mkdir -p /srv/samba/secure_shares

Dále nastavte příslušná oprávnění k adresáři.

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

Nyní otevřete konfigurační soubor.

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

Dále upravte nebo upravte nastavení direktivy, jak je popsáno níže.

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

Stejně jako předtím spusťte tento příkaz, abyste viděli aktuální nastavení samby.

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

Jakmile provedete výše uvedené konfigurace, restartujte služby Samba, aby se změny projevily.

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

Testování bezpečného sdílení souborů Samba

Stejně jako dříve na počítači se systémem Windows a otevřete „Síť “ z okna Průzkumníka Windows. Klikněte na hostitele Ubuntu (v našem případě TECMINT). Pokud ne, můžete přejít k dalšímu kroku.

Zkuste se k serveru připojit pomocí jeho IP adresy, např. Líbí se mi to \\192.168.43.168. Poté zadejte přihlašovací údaje (uživatelské jméno a heslo) pro uživatele aaronkilik a klikněte na OK.

Nyní uvidíte všechny sdílené adresáře, kliknutím na Zabezpečit je otevřete.

Některé soubory můžete bezpečně sdílet s jinými povolenými uživateli v síti jejich přetažením do tohoto adresáře.

Povolte Sambu v UFW Firewallu v Ubuntu

Pokud máte ve svém systému povolený/aktivní firewall UFW, musíte přidat pravidla, která Sambě umožní projít vaším firewallem.

K otestování jsme použili schéma sítě 192.168.43.0. Spusťte níže uvedené příkazy a zadejte svou síťovou adresu.

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

Můžete se také podívat na tyto užitečné články týkající se sdílení souborů Samba v síti.

  1. Nastavení řadiče domény Samba4 Active Directory – část 1 až 14
  2. Jak připojit/odpojit místní a síťové (Samba a NFS) souborové systémy v Linuxu
  3. Použití seznamů ACL (Access Control List) a připojení sdílených složek Samba/NFS
  4. Jak opravit chybu zabezpečení SambaCry (CVE-2017-7494) v systémech Linux

To je vše! V této příručce jsme vám ukázali, jak nastavit Samba4 pro anonymní a bezpečné sdílení souborů mezi počítači Ubuntu a Windows. Chcete-li se s námi podělit o jakékoli myšlenky, použijte níže uvedený formulář zpětné vazby.