CIFS / SMB操作所需的TCP / IP端口


44

如果要允许两台防火墙计算机之间的Windows网络驱动器,是否需要打开端口137-139,或端口445是否足够?我必须提交一份表格并获得开放防火墙端口的批准,并且我不想索要比我需要更多的开放端口。这里的所有计算机都是Windows XP或更高版本。

注意:当我说“ Windows联网驱动器”时,我不确定是指SMB还是CIFS,也不清楚这两种协议之间的区别。

Answers:


58

端口137-139用于NetBios /名称解析。没有它,您将必须通过与NetBIOS名称相对的IP地址访问计算机。\\192.168.1.100\share_name反对的例子\\my_file_server\share_name

因此,如果只能使用IP地址,则端口445就足够了。


在我的站点上,NetBIOS名称始终与DNS名称相同。因此,如果我通过主机名引用计算机,Windows是否可以通过DNS在不使用NetBIOS的情况下找到计算机?
乔纳森(Jonathan)

5
只要您具有可用于客户端的功能DNS,它就足够了。
蒂姆(Tim)

1
这也适用于公共IP地址吗?在ADSL调制解调器/路由器的防火墙中打开端口445是否足够?
Hrqls 2015年

11
@Hrqls从理论上讲,是的,但是 AFAIK向全世界开放您的SMB是一个非常糟糕的主意。
塞缪尔·哈默

@ Styne666,完全同意。更重要的是:对整个Internet开放没有足够安全性支持的任何内容通常是个坏主意。我建议至少使用IPsec传输模式来保护它。
des

7

此配置对我有用:137 / UDP,138 / UDP,139 / TCP和445 / TCP。来源和其他信息,位于:http : //www.icir.org/gregor/tools/ms-smb-protocols.html

这些是我的Samba服务器的iptables规则:

# 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

4
鉴于OP完全不了解Windows计算机及其对iptables的了解程度,因此最好将其写成一个完全不同的系统配置文件。
DarkMoon

1
用简单的英语讲,UDP 137和138,TCP 139和445
Arlen Beiler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.