Samba to darmowe, otwartoźródłowe oprogramowanie, które umożliwia bezproblemowe udostępnianie plików i drukarek między komputerami z różnymi systemami operacyjnymi, głównie Linux i Windows. Działa w oparciu o protokół sieciowy SMB/CIFS, dzięki czemu komputery w sieci lokalnej widzą serwer Linuxa tak, jakby był zwykłym dyskiem sieciowym Windows. To niezastąpione narzędzie w firmach i domach, które pozwala na stworzenie centralnego, bezpiecznego magazynu danych dla każdego użytkownika.
Głównym celem Samby jest to, aby komputery z Windowsem, Linuksem i macOS-em w końcu zaczęły gadać wspólnym językiem, pozwalając Ci na święty spokój przy przerzucaniu plików między różnymi systemami. Chodzi po prostu o wygodę – zamiast trzymać dane w dziesięciu miejscach, tworzysz jeden centralny dysk sieciowy, gdzie każdy ma swój bezpieczny kąt i dostęp tylko do tego, co trzeba.
Czy Samba jest bezpieczna? Bezpieczeństwo serwera Samba zależy bezpośrednio od wdrożonej konfiguracji oraz wersji protokołu SMB. Współczesne implementacje (Samba 4.x) wspierają natywne szyfrowanie AES-128/256-GCM w ramach protokołów SMBv2/SMBv3, co eliminuje podatność na podsłuch sieciowy i ataki typu man-in-the-middle. Krytycznymi punktami zapalnymi pozostają błędy administratora: brak bezwzględnego wyłączenia przestarzałego standardu SMBv1, podatnego na exploity zdalnego wykonania kodu (RCE), oraz nieprawidłowa segmentacja uprawnień (np. nadużywanie flagi guest ok), która otwiera wektor ataku dla infekcji ransomware w sieci lokalnej.
Samba działa w architekturze klient-serwer, opierając się na dwóch kluczowych demonach systemowych (procesach tła) oraz protokole SMB (Server Message Block):
workgroup (np. workgroup = WORKGROUP), który przypisuje serwer do konkretnej grupy roboczej Windows.server min protocol = SMB3 wymusza się stosowanie nowoczesnego, bezpiecznego protokołu SMBv3 (posiadającego cechy takie jak natywne szyfrowanie danych AES-CCM/GCM oraz odporność na ataki man-in-the-middle), jednocześnie odcinając przestarzałe i podatne na infekcje ransomware wersje SMBv1 oraz SMBv2.security = user, która wymusza, aby każdy użytkownik musiał wylegitymować się poprawnym loginem i zaszyfrowanym hasłem (baza smbpasswd) przed uzyskaniem jakiegokolwiek dostępu.Częstym błędem przy konfiguracji Samby jest założenie, że standardowe konto użytkownika w systemie Linux automatycznie pozwala na zalogowanie się do zasobów sieciowych z poziomu Windowsa. W praktyce Samba wymaga własnej, niezależnej bazy danych uwierzytelniających, ponieważ systemy Windows i Linux korzystają z zupełnie innych, niekompatybilnych ze sobą algorytmów haszowania haseł.
Mechanizm autoryzacji opiera się na dwóch żelaznych zasadach:
/etc/passwd). Samba nie potrafi stworzyć samodzielnego, wirtualnego konta "w próżni" – zawsze mapuje ona uprawnienia sieciowe na realnego użytkownika systemowego.
smbpasswd -a nazwa_użytkownika. Hasło to jest szyfrowane i zapisywane w specjalnej, zabezpieczonej bazie (najczęściej /var/lib/samba/private/passdb.tdb), skąd serwer pobiera je podczas weryfikacji połączeń z Windowsa.
Aby Twój serwer Samba był nie tylko funkcjonalny, ale i maksymalnie odporny na współczesne zagrożenia sieciowe, wdrożenie poniższych reguł w sekcji [global] pliku konfiguracyjnego powinno być standardem w każdej instalacji:
server min protocol = SMB3. Bezwarunkowo odetnie to starsze systemy, ale zagwarantuje, że cała komunikacja będzie odporna na ataki typu ransomware (brak podatności na exploity z ery SMBv1).
guest ok = no w zaufanych katalogach. Każdy użytkownik musi mieć swoje konto i hasło – brak autoryzacji to najprostsza droga do zainfekowania całego serwera w przypadku złapania wirusa przez jeden z komputerów w sieci.
hosts allow = 192.168.1. 127., aby wskazać, z jakich konkretnie podsieci Samba ma w ogóle przyjmować połączenia. Nawet jeśli ktoś pozna hasło, ale będzie próbował połączyć się spoza zdefiniowanej bezpiecznej sieci (np. przez VPN o innym adresie lub bezpośrednio z internetu), serwer natychmiast odrzuci takie żądanie.
server smb encrypt = required sprawi, że wszystkie przesyłane pliki oraz logowania będą szyfrowane w locie (AES-GCM). Uniemożliwi to podgądanie zawartości dokumentów komukolwiek, kto wepnie się w tę samą sieć lokalną ze snifferem pakietów.