Windows
CIFS/SMB 操作所需的 TCP/IP 埠
如果我想允許兩台防火牆電腦之間的 Windows 網路驅動器,我需要打開埠 137-139,還是埠 445 就足夠了?我必須送出表單並獲得批准才能打開防火牆埠,而且我不想要求比我需要的更多的開放埠。這裡的所有機器都是 Windows XP 或更高版本。
注意:當我說“Windows 網路驅動器”時,我並不完全確定我指的是 SMB 還是 CIFS,我也不完全清楚這兩種協議之間的區別。
埠 137-139 用於 NetBios/名稱解析。如果沒有它,您將不得不通過 IP 地址而不是 NetBIOS 名稱來訪問機器。
\\192.168.1.100\share_name
反對的例子\\my_file_server\share_name
因此,如果您只能使用 IP 地址,則埠 445 就足夠了。
此配置對我有用: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