当我尝试使用地址\\REPO (REPO 的 NETBIOS 名称)连接到我的CentOS 6.2 x86_64服务器的 samba 共享时,它超时并显示错误;如果我直接通过 IP 这样做,它工作正常。此外,尽管我的 samba 设置正确,但我的服务器无法作为 WINS 服务器正常工作(详情请参见下文)。
如果我停止 iptables 服务,一切正常。
我使用此页面作为使用哪些端口的参考:http: //www.samba.org/samba/docs/server_security.html
具体来说:
UDP/137 - used by nmbd
UDP/138 - used by nmbd
TCP/139 - used by smbd
TCP/445 - used by smbd
我真的真的真的很想保留下面的安全 iptables 设计,但只是解决这个特定问题。
SMB配置文件
[global]
netbios name = REPO
workgroup = AWESOME
security = user
encrypt passwords = yes
# Use the native linux password database
#passdb backend = tdbsam
# Be a WINS server
wins support = yes
# Make this server a master browser
local master = yes
preferred master = yes
os level = 65
# Disable print support
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
# Restrict who can access the shares
hosts allow = 127.0.0. 10.1.1.
[public]
path = /mnt/repo/public
create mode = 0640
directory mode = 0750
writable = yes
valid users = mangs repoman
IPTables 配置脚本
# Remove all existing rules
iptables -F
# Set default chain policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Allow incoming SSH
iptables -A INPUT -i eth0 -p tcp --dport 22222 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22222 -m state --state ESTABLISHED -j ACCEPT
# Allow incoming HTTP
#iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# Allow incoming Samba
iptables -A INPUT -i eth0 -p udp --dport 137 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 137 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 138 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 138 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 139 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 139 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 445 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 445 -m state --state ESTABLISHED -j ACCEPT
# Make these rules permanent
service iptables save
service iptables restart**strong text**
您的症状与 NMB 不可达一致。您的 IPTables 配置对我来说看起来不错。它可以像 nmbd 服务没有启动一样简单。在尝试弄清楚为什么无法通过名称访问全新的 Samba 服务时,我遇到了这个问题。
结果我选择放弃 NETBIOS 名称解析并改用 DNS(效果更好)。因此,我只需要端口 445 即可运行,从而使防火墙配置更小。