Udostępnianie plików w sieci działa dobrze tylko wtedy, gdy protokół i zapora mówią tym samym językiem. W praktyce chodzi o SMB port, czyli najczęściej TCP/445, a w starszych konfiguracjach także o NetBIOS z portami 137-139. Poniżej wyjaśniam, co naprawdę oznaczają te porty, jak sprawdzić je na Linuksie i jak ustawić je tak, żeby działały bezpiecznie, a nie „na żywioł”.
Najkrócej: w nowoczesnej sieci pracuj głównie na 445, a 139 zostaw tylko dla zgodności wstecznej
- 445/TCP to dziś podstawowy port dla bezpośredniego SMB over TCP.
- 139/TCP pojawia się wtedy, gdy wchodzi NetBIOS i starsza zgodność.
- 137/UDP i 138/UDP to elementy starego stosu NetBIOS, które zwykle nie są potrzebne w nowych wdrożeniach.
- Na Linuksie najpierw sprawdź, czy Samba rzeczywiście nasłuchuje, zanim zaczniesz grzebać w firewallu.
- SMB nie powinien być wystawiany do internetu bez bardzo dobrego powodu; do dostępu zdalnego lepszy jest VPN.
- Jeśli wszystko wygląda poprawnie, a połączenie nadal nie działa, winne bywają DNS, uprawnienia albo zła ścieżka do udziału.
Jak działa SMB i dlaczego najczęściej chodzi o TCP 445
SMB to protokół udostępniania plików, drukarek i kilku innych zasobów w sieci. Najprościej mówiąc: gdy komputer ma otworzyć udział \\serwer\udział albo połączyć się z Sambą z Linuksa, komunikacja idzie właśnie tym kanałem, a dziś standardowym transportem jest TCP/445. To dlatego w większości nowoczesnych środowisk jedna poprawna reguła firewallu rozwiązuje więcej niż połowę problemów z dostępem.
Ja traktuję ten port jako punkt startowy, nie jako jedyną odpowiedź na każde pytanie o udostępnianie. Znaczenie ma też to, czy usługa słucha na wszystkich interfejsach, czy tylko na konkretnym adresie, oraz czy po drodze nie blokuje jej DNS, uwierzytelnianie albo polityka zapory. To prowadzi prosto do pytania o starsze porty NetBIOS, które nadal potrafią namieszać.
Skąd bierze się port 139 i cały zestaw NetBIOS
W starszych sieciach SMB działał przez NetBIOS, czyli dodatkową warstwę nazw i sesji. W praktyce oznacza to porty 137, 138 i 139, a czasem także 137/TCP, bo różne implementacje opisują ten stos nieco szerzej. Dziś używa się ich głównie po to, żeby utrzymać zgodność ze starszym sprzętem albo starymi konfiguracjami, a nie dlatego, że są lepszym wyborem.
| Port | Rola | Kiedy go spotkasz |
|---|---|---|
445/TCP |
Bezpośredni SMB over TCP | Nowoczesne Windows, Samba, większość współczesnych środowisk |
139/TCP |
Sesja SMB przez NetBIOS | Starsze urządzenia, legacy konfiguracje, kompatybilność wsteczna |
137/UDP |
Usługa nazw NetBIOS | Rozwiązywanie nazw w starszych sieciach |
138/UDP |
Datagramy NetBIOS | Starsze funkcje rozgłoszeniowe i komunikacja pomocnicza |
W Sambie domyślna wartość smb ports to 445 139, więc oba warianty bywają aktywne równolegle. W mojej ocenie to ważny sygnał: jeśli nie masz powodu wspierać NetBIOS, nie trzymaj go otwartego „na wszelki wypadek”. Za chwilę pokażę, jak sprawdzić, co faktycznie nasłuchuje na Linuksie.
Jak sprawdzić nasłuch i dostępność na Linuksie
Najpierw sprawdzam lokalnie, czy usługa w ogóle słucha na właściwym porcie. Potem weryfikuję to z innego hosta, bo port może być otwarty lokalnie, a mimo to zablokowany przez firewall albo filtrowanie na routerze.
systemctl status smbd
journalctl -u smbd -n 50
testparm -s
ss -tulpn | grep -E ':(445|139)\b'
smbclient -L //192.168.1.10 -U jan
nmap -Pn -p 139,445 192.168.1.10
Jeśli ss pokazuje 127.0.0.1:445, Samba słucha tylko lokalnie i zdalny klient nie ma prawa się połączyć. Jeśli widać 0.0.0.0:445 albo adres interfejsu LAN, usługa nasłuchuje poprawnie, a problem zwykle leży dalej: w firewallu, nazwie hosta, uprawnieniach albo w złej ścieżce do udziału. Ten rozdział warto przeczytać razem z zasadami bezpiecznej ekspozycji, bo otwarty port bez kontroli to szybka droga do kłopotów.
Jak bezpiecznie otworzyć udostępnianie plików w sieci
Na serwerze plików z Linuksem nie otwieram SMB szeroko „do internetu”. Otwieram je tylko tam, gdzie naprawdę trzeba: w zaufanej podsieci, na VPN-ie albo w kontrolowanym segmencie sieci. W praktyce blokuję także ruch wychodzący TCP/445 na publiczny internet, bo to ogranicza ryzyko przypadkowej ekspozycji i niepotrzebnej komunikacji.
- Sieć lokalna - zezwalam tylko z konkretnej podsieci, na przykład z zakresu biurowego lub domowego.
- Legacy sprzęt - zostawiam 139 tylko wtedy, gdy naprawdę mam stary klient, drukarkę albo NAS, który nie umie pracować wyłącznie na 445.
- Dostęp zdalny - wolę VPN niż wystawianie SMB na świat. To prostsze do kontrolowania i zwykle bezpieczniejsze operacyjnie.
- Publiczny internet - 445 nie powinien tam wisieć bez bardzo konkretnego powodu i dodatkowych zabezpieczeń.
W firewalld najwygodniej jest użyć gotowej usługi samba, a w ufw da się to zawęzić do jednej podsieci, na przykład komendą w stylu sudo ufw allow from 192.168.1.0/24 to any port 445 proto tcp. Dobrą praktyką jest też wcześniejsze ustalenie, czy naprawdę potrzebujesz NetBIOS, czy wystarczy sam 445, bo to upraszcza konfigurację i zmniejsza powierzchnię ataku. Gdy porty są już ustawione rozsądnie, zostaje jeszcze najczęstszy problem: „wszystko wygląda dobrze, a połączenie i tak nie działa”.
Co zrobić, gdy udział nie otwiera się mimo otwartego portu
Jeśli udział nie otwiera się mimo otwartego portu, nie zaczynam od zgadywania. Sprawdzam kolejno usługę, adres, nazwę i autoryzację, bo właśnie tam zwykle ginie czas.
- Czy usługa Samby działa i nie wywaliła się po zmianie konfiguracji.
- Czy serwer naprawdę nasłuchuje na 445, a nie tylko na
localhost. - Czy firewall przepuszcza ruch z właściwej podsieci, a nie „z całego świata”.
- Czy nazwa hosta i DNS wskazują właściwy adres, zwłaszcza gdy NetBIOS jest wyłączony.
- Czy konto ma prawa do udziału i do systemowego katalogu, a nie tylko do jednego z nich.
- Czy klient i serwer dogadują się co do wersji SMB, bo czasem problemem jest nie port, lecz negocjacja protokołu.
Dobrym testem jest smbclient -L, bo od razu pokazuje, czy serwer odpowiada i czy użytkownik widzi listę udziałów. Jeżeli zdalny skan pokazuje 445 jako otwarty, a lokalne połączenie nadal się wywraca, winowajcą najczęściej jest uwierzytelnianie, uprawnienie albo błędna ścieżka do udziału. To dobry moment, żeby przejść od diagnozy do ustawień, które w 2026 roku są po prostu najbardziej rozsądne.
Jakie ustawienia wybrałbym dziś na serwerze plików
Gdybym dziś konfigurował serwer plików od zera, zostawiłbym TCP/445 jako podstawę, a 139 trzymał tylko tam, gdzie naprawdę potrzebuję kompatybilności wstecznej. W typowej sieci LAN wyłączyłbym NetBIOS, ograniczył dostęp do zaufanych adresów i nie wystawiałbym Samby bezpośrednio na publiczny adres IP. Jeśli potrzebny jest dostęp spoza biura, wybrałbym VPN, a w środowiskach Windowsowych rozważyłbym SMB over QUIC tam, gdzie pasuje do infrastruktury i polityk bezpieczeństwa.
Najkrótsza wersja decyzji brzmi więc tak: 445 jest dziś standardem, 139 jest wyjątkiem, a otwarte SMB poza zaufaną siecią to ryzyko, którego nie warto zostawiać bez kontroli. Jeżeli po wdrożeniu reguł coś nadal nie działa, wróć do prostego schematu: sprawdź nasłuch, firewall, nazwę hosta i uprawnienia. W praktyce to właśnie te cztery rzeczy rozwiązują większość problemów szybciej niż jakiekolwiek zgadywanie.