Samba与其他Windows/Linux系统进行通讯需要打开哪些端口?
时间:2020-01-09 10:44:12 来源:igfitidea点击:
Samba需要打开哪些端口才能与其他Windows/Linux系统通信?
如何配置Linux防火墙,所以如何SMB/CIFS网络协议的确切端口TCP和UDP端口号。
能否提供端口列表以及示例iptables规则?
您可以从名为/etc/services的文件获取端口列表。
为了便于使用,这里需要打开端口以与Windows和Linux桌面系统进行双向samba通信。
- netbios-ns 137/tcp#NETBIOS名称服务
- netbios-dgm 138/tcp#NETBIOS数据报服务
- netbios-ssn 139/tcp#NETBIOS会话服务
- microsoft-ds 445/tcp#(如果使用的是Active Directory)
其他端口:
- LDAP的端口389(TCP)(活动目录模式)
- 2000年及以后,端口445(TCP)NetBIOS已移至445(CIFS)
- SWAT服务的端口901(TCP)(与客户端通信无关)
查找SMB/CIFS网络协议所需的TCP/UDP端口的命令
执行以下命令:
$ grep -i NETBIOS /etc/services
输出示例:
netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp
适用于CentOS/RHEL 5.x和更早版本的iptables规则示例
在代表网络上应作为Samba服务器客户端运行的机器的192.168.1.0/24子网之间打开Samba通信。
在RHEL/CentOS服务器下编辑/etc/sysconfig/iptables。
在RH-Firewall-1-INPUT链的最后LOG和ROP行之前,添加以下行:
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
随时根据您的设置更改规则。
保存并关闭文件。
重新启动防火墙服务,执行:
# /sbin/services iptables restart
仅适用于CentOS/RHEL 6.x的示例iptables规则
-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
保存并关闭文件。
执行以下命令以重新启动防火墙:
# service iptables restart
仅适用于CentOS/RHEL 7.x的示例iptables规则
您需要使用以下命令:
# firewall-cmd --permanent --zone=public --add-service=samba # firewall-cmd --reload
或者
# firewall-cmd --permanent --add-port=137/tcp # firewall-cmd --permanent --add-port=138/tcp # firewall-cmd --permanent --add-port=139/tcp # firewall-cmd --permanent --add-port=445/tcp