Porty TCP / IP niezbędne do działania CIFS / SMB

44

Jeśli chcę zezwolić na dyski sieciowe Windows między dwoma komputerami z zaporą ogniową, czy muszę otworzyć porty 137-139, czy port 445 jest wystarczający? Muszę przesłać formularz i uzyskać zgodę na otwarcie portów zapory ogniowej i nie chcę prosić o więcej otwartych portów, niż potrzebuję. Wszystkie komputery tutaj są z systemem Windows XP lub nowszym.

Uwaga: kiedy mówię „dyski sieciowe Windows”, nie jestem do końca pewien, czy mam na myśli SMB czy CIFS, i nie jestem całkowicie pewien różnicy między tymi dwoma protokołami.

Jonathan
źródło

Odpowiedzi:

58

Porty 137-139 służą do rozpoznawania nazw NetBios / nazw. Bez tego będziesz musiał uzyskiwać dostęp do maszyn po adresie IP w przeciwieństwie do nazwy NetBIOS. Przykład \\192.168.1.100\share_nameprzeciwny\\my_file_server\share_name

Dlatego port 445 jest wystarczający, jeśli możesz pracować tylko z adresami IP.

Tim
źródło
W mojej witrynie nazwy NetBIOS są zawsze takie same jak nazwy DNS. Jeśli więc powiem o komputerach według nazwy hosta, czy system Windows będzie mógł znaleźć maszynę za pośrednictwem DNS bez korzystania z NetBIOS?
Jonathan
5
Tak długo, jak klient ma działający system DNS, powinien on wystarczyć.
Tim
1
czy to działa również z publicznymi adresami IP? Czy wystarczy otworzyć port 445 w zaporze sieciowej modemu / routera ADSL?
Hrqls,
11
@Hrqls Teoretycznie tak, ale otwarcie AFAIK na cały świat jest bardzo złym pomysłem.
Samuel Harmer,
@ Styne666, całkowicie się zgadzam. Co więcej: otwieranie czegokolwiek, co nie ma odpowiedniego zabezpieczenia, na cały Internet jest ogólnie złym pomysłem. Zalecam użycie trybu transportu IPsec, aby go przynajmniej chronić.
dess
7

Ta konfiguracja działała dla mnie: 137 / UDP, 138 / UDP, 139 / TCP i 445 / TCP. Źródło i dodatkowe informacje pod adresem : http://www.icir.org/gregor/tools/ms-smb-protocols.html .

Oto więc reguły iptables dla mojego serwera Samba:

# The router doesn't need SMB access.
-A INPUT -s 192.168.1.1 -p udp --dport 137 -j REJECT
-A INPUT -s 192.168.1.1 -p udp --dport 138 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 139 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 445 -j REJECT

# Actual Samba ports
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Juan
źródło
4
Biorąc pod uwagę, że OP zapytał o komputery z systemem Windows i ich poziom zrozumienia iptables jest całkowicie nieznany, byłoby to lepiej napisane niż jako zupełnie inny plik konfiguracyjny systemu.
DarkMoon,
1
W języku angielskim, UDP 137 i 138, TCP 139 i 445
Arlen Beiler