Wyszukiwanie w witrynie

Jak zainstalować Sambę na Ubuntu do udostępniania plików w systemie Windows


Samba to bezpłatne/otwarte i powszechnie używane oprogramowanie do udostępniania plików i usług drukowania pomiędzy systemami uniksowymi, w tym hostami Linux i Windows w tej samej sieci.

W tym przewodniku pokażemy, jak skonfigurować Sambę4 do podstawowego udostępniania plików pomiędzy systemami Ubuntu i komputerami z systemem Windows. Omówimy dwa możliwe scenariusze: anonimowy (niezabezpieczony) oraz bezpieczne udostępnianie plików.

Sugerowana lektura: Jak zainstalować Sambę4 na CentOS/RHEL 7 w celu udostępniania plików w systemie Windows

Należy pamiętać, że począwszy od wersji 4.0 Samba może być używana jako kontroler domeny (DC) usługi Active Directory (AD). Zorganizowaliśmy specjalną serię dotyczącą konfigurowania kontrolera domeny Active Directory Samba4, która obejmuje kluczowe tematy dotyczące Ubuntu, CentOS i Windows.

  1. Konfigurowanie kontrolera domeny Active Directory Samba4

Zainstaluj i skonfiguruj Sambę w Ubuntu

Serwer Samba można zainstalować z domyślnych repozytoriów Ubuntu przy użyciu narzędzia do zarządzania pakietami apt, jak pokazano.

sudo apt install samba samba-common python-dnspython

Po zainstalowaniu serwera samby przyszedł czas na skonfigurowanie serwera samby jako: niezabezpieczonego anonimowego i bezpiecznego udostępniania plików.

W tym celu musimy edytować główny plik konfiguracyjny Samby /etc/samba/smb.conf (który wyjaśnia różne dyrektywy konfiguracyjne).

Najpierw wykonaj kopię zapasową oryginalnego pliku konfiguracyjnego Samby w następujący sposób.

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

Następnie przystąpimy do konfigurowania samby dla usług anonimowych i bezpiecznego udostępniania plików, jak wyjaśniono poniżej.

Ważne: zanim przejdziesz dalej, upewnij się, że komputer z systemem Windows znajduje się w tej samej grupie roboczej, która zostanie skonfigurowana na serwerze Ubuntu.

Sprawdź ustawienia grupy roboczej komputera z systemem Windows

Zaloguj się na komputerze z systemem Windows, kliknij prawym przyciskiem myszy „Ten komputer” lub „Mój komputer Właściwości Zaawansowane ustawienia systemu Nazwa komputera, aby zweryfikować grupę roboczą.

Alternatywnie otwórz wiersz poleceń i wyświetl go, uruchamiając poniższe polecenie i poszukaj „domena stacji roboczej”.

>net config workstation

Kiedy już znasz swoją grupę roboczą Windows, czas przejść dalej i skonfigurować serwer Samby do udostępniania plików.

Anonimowe udostępnianie plików Samby

Najpierw zacznij od utworzenia współdzielonego katalogu samby, w którym będą przechowywane pliki.

sudo mkdir -p /srv/samba/anonymous_shares

Następnie ustaw odpowiednie uprawnienia w katalogu.

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

Teraz otwórz plik konfiguracyjny.

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

Następnie edytuj lub zmodyfikuj ustawienia dyrektywy zgodnie z opisem poniżej.

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

Teraz sprawdź bieżące ustawienia Samby, uruchamiając poniższe polecenie.

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

Następnie zrestartuj usługi Samby, aby zastosować powyższe zmiany.

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

Testowanie anonimowego udostępniania plików Samby

Przejdź do komputera z systemem Windows i otwórz „Sieć” w oknie Eksploratora Windows. Kliknij host Ubuntu (w naszym przypadku TECMINT) lub spróbuj uzyskać dostęp do serwera samby, używając jego adresu IP.

\2.168.43.168

Uwaga: użyj polecenia ifconfig, aby uzyskać adres IP serwera Ubuntu.

Następnie otwórz katalog Anonimowy i spróbuj dodać tam pliki, aby udostępnić je innym użytkownikom.

Bezpieczne udostępnianie plików Samby

Aby zabezpieczyć hasłem udział Samby, musisz utworzyć grupę „smbgrp” i ustawić hasło dla każdego użytkownika. W tym przykładzie używam aaronkilik jako użytkownika i hasła jako „tecmint”.

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

Uwaga: tryb zabezpieczeń Samby: security=user wymaga od klientów wprowadzenia nazwy użytkownika i hasła w celu połączenia się z udziałami.

Konta użytkowników Samby są oddzielone od kont systemowych, jednakże opcjonalnie możesz zainstalować pakiet libpam-winbind, który służy do synchronizowania użytkowników systemowych i haseł z bazą danych użytkowników Samby.

sudo apt install libpam-winbind

Następnie utwórz bezpieczny katalog, w którym będą przechowywane udostępnione pliki.

sudo mkdir -p /srv/samba/secure_shares

Następnie ustaw odpowiednie uprawnienia w katalogu.

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

Teraz otwórz plik konfiguracyjny.

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

Następnie edytuj lub zmodyfikuj ustawienia dyrektywy zgodnie z opisem poniżej.

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

Podobnie jak poprzednio, uruchom to polecenie, aby zobaczyć bieżące ustawienia 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

Po wykonaniu powyższych konfiguracji zrestartuj usługi Samby, aby zastosować zmiany.

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

Testowanie bezpiecznego udostępniania plików Samby

Tak jak poprzednio, na komputerze z systemem Windows i otwórz „Sieć” w oknie Eksploratora Windows. Kliknij hosta Ubuntu (w naszym przypadku TECMINT). Może pojawić się poniższy błąd. Jeśli nie, przejdź do następnego kroku.

Spróbuj uzyskać dostęp do serwera przy użyciu jego adresu IP, np. \\192.168.43.168 w ten sposób. Następnie wprowadź dane uwierzytelniające (nazwę użytkownika i hasło) użytkownika aaronkilik i kliknij OK.

Zobaczysz teraz wszystkie udostępnione katalogi. Kliknij Bezpieczne, aby je otworzyć.

Możesz bezpiecznie udostępniać niektóre pliki innym uprawnionym użytkownikom w sieci, upuszczając je w tym katalogu.

Włącz Sambę w zaporze UFW w Ubuntu

Jeśli masz włączoną/aktywną zaporę UFW w swoim systemie, musisz dodać reguły umożliwiające Sambie przejście przez zaporę.

Aby to przetestować, użyliśmy schematu sieci 192.168.43.0. Uruchom poniższe polecenia, podając swój adres sieciowy.

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

Możesz także zapoznać się z tymi przydatnymi artykułami dotyczącymi udostępniania plików Samby w sieci.

  1. Konfigurowanie kontrolera domeny Active Directory Samba4 — część 1 do 14
  2. Jak montować/odmontowywać lokalne i sieciowe systemy plików (Samba i NFS) w systemie Linux
  3. Korzystanie z list ACL (list kontroli dostępu) i montowanie udziałów Samba/NFS
  4. Jak naprawić lukę w zabezpieczeniach SambaCry (CVE-2017-7494) w systemach Linux

To wszystko! W tym przewodniku pokazaliśmy, jak skonfigurować Sambę4 do anonimowego i bezpiecznego udostępniania plików pomiędzy komputerami z systemem Ubuntu i Windows. Skorzystaj z poniższego formularza opinii, aby podzielić się z nami swoimi przemyśleniami.