尽管定义了接口,但 Ubuntu samba 共享文件夹仍可从外部访问

尽管定义了接口,但 Ubuntu samba 共享文件夹仍可从外部访问

我的问题是,尽管我定义了接口并仅绑定了接口,但我的 samba 共享文件夹仍然可以从本地网络外部访问。我想确保共享文件夹只能在我的本地网络中访问。配置更改后,我重新启动服务sudo service smbd restart。我将不胜感激任何帮助。

我的设置(smb.conf)的几行:

[global]
interfaces = 192.168.254.0/24
bind interfaces only = yes

[...]

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = myname
security = user

[shared]
Comment = Samba Shared Directory
path = /home/myuser/shared
writable = yes
guest ok = yes
read only = no
force user = nobody
create mask = 0775
directory mask = 0775
force create mode = 0775
force directory mode = 0775

答案1

看起来您正在将所有流量从外部路由器 IP 转发到应该受到防火墙策略保护的 Linux 主机。

检查您的路由器是否有可能只转发来自外部(ssh)的所需流量并拒绝所有其他流量。

如果路由器无法完成这项工作,请尝试在 Linux 主机上使用 iptables。下面的 iptables 命令默认拒绝所有传入流量,只允许任何人使用 ssh,只允许来自本地网络的 cifs。最后记录所有将被丢弃的流量以进行故障排除。

请先检查并仅在您具有本地访问权限时实施它们,以确保您没有将自己锁定在外。

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -s 192.168.254.0/24 -m state --state NEW -j ACCEPT
iptables -I INPUT ! -s 192.168.254.0/24 -j LOG --log-level 4 --log-prefix "traffic dropped: "

答案2

听起来您已将 Linux 计算机设置为 LAN 上的 DMZ 计算机。这意味着发送到路由器 IP 地址的所有流量都将转发到该计算机。

这意味着端口 139 上的所有流量都将被转发到您的 Linux 机器,并且由于它来自路由器,因此它将到达绑定到 192.168.254.0/24 的接口上的 Linux 机器。

您可以添加hosts allow 192.168.254.0/24到您的全局部分

如果你确实想确保阻止这种访问,你可以添加一个 iptables 规则,例如:

iptables -A INPUT ! -s 192.168.254.0/24 --dport 139 -J DROP

相关内容