我在工作中设置了一个 Samba 服务器,用于一些简单的事情,例如打印机和文件夹共享。有一个“内部”子网和 VLAN,以及一个“来宾”子网和 VLAN。Samba 运行在同一台 Debian 机器上,该机器还充当防火墙和路由器,使用 Shorewall。这台机器为每个 VLAN 提供了一个虚拟接口。(eth1.1、eth1.2 等)
以前我只是在防火墙配置中不允许来宾 VLAN/子网访问 Samba。但现在员工希望 Samba 提供的共享打印机可以在来宾 VLAN 上访问,以便来宾可以使用我们的打印机。
因此,我将来宾 VLAN 添加到 Samba 绑定的接口,并为每个共享创建了一堆访问列表,如下所示:
hosts deny = all
hosts allow = 10.1.1., 10.1.2., 10.1.2.3
这似乎完美无缺,允许访客浏览和连接打印机,但不允许无密码共享。然而,有一个意想不到的后果 - 所有连接到内部网络的 Windows PC 的 NetBIOS 名称现在对访客网络上的客户端可见。我猜是 Samba 的 WINS 服务器使它们在访客网络上可用。由于它们位于不同的子网/VLAN 上,我不认为任何连接实际上可能实现,但我甚至不希望名称可见。
我想要做的是确保 Samba 服务器提供的打印机在来宾网络上可以轻松浏览,但我不希望内部子网中所有其他 PC 的 NetBIOS 名称出现在来宾子网上。理想情况下,我根本不想改变“内部”子网上 WINS 的行为,因为这样可以正常工作。事实上,我相信某些设备(例如支持网络的扫描仪,Windows 计算机上的专有驱动程序)依赖于 NetBIOS 才能被发现,我认为 WINS 服务器可能有助于提高目前工作速度和可靠性。
我在这里找到了 Samba 的 WINS 的一些配置详细信息: https://www.samba.org/samba/docs/using_samba/ch07.html
但是,我担心使用其中的一些选项会使我想要完成的相对简单的任务变得过于复杂。最好的解决方法是什么?
答案1
停用 WINS,仅使用 DNS。由于 Windows Server 上的 WINS 允许 NetBIOS 名称在 VLAN 之间填充,就像您的漏洞。
所以对我来说,这是一项你拥有但不想要的功能。你没有理由不使用 DNS 系统。