当我尝试连接到我的CentOS 6.2 x86_64服务器的 samba 共享使用地址\\回购(REPO 的 NETBIOS 名称),超时并显示错误;如果我直接通过 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 设计,但只是想修复这个特定的问题。
服务管理控制台
[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**
答案1
您的症状与 NMB 无法访问一致。您的 IPTables 配置对我来说看起来不错。原因可能很简单,因为 nmbd 服务未启动。我在尝试找出为什么无法通过名称访问全新的 Samba 服务时就遇到了这个问题。
答案2
事实证明,我选择放弃 NETBIOS 名称解析,而使用 DNS(效果更好)。因此,我只需要端口 445 即可运行,从而减少防火墙配置。