我怎样才能禁用SAMBA广播function?

我不需要任何广播/自动发现,一切都是确定性的,并严格configuration在我的networking。 我仍然放弃由防火墙垃圾邮件SAMBA广播,不能我只是禁用他们,以保持我的networkingstream量清洁?

杀nmbd

编辑启动smbd和nmbd的rc / init脚本,以便它们不运行nmbd。 nmbd是samba的自动发现组件。 禁用它将会减lessstream量。

http://www.samba.org/samba/docs/man/manpages-3/nmbd.8.html

至less在Debian中,您可以在smb.conf文件中使用“disable netbios = yes”选项。 我认为这比编辑init脚本更好。 这样,每次被升级覆盖时就不必编辑初始化脚本。

只要在configuration文件中使用disable netbios = yes就不会阻止从init.d脚本运行nmbd。 杀死nmbd后,你需要从脚本手动注释nmbd选项,因为nmbd将在重新启动samba服务或重启后重新启动。

您可以使用以下命令检查netbios是否不再运行:

netstat -an | grep 137 (or 138)

这将显示您的系统上是否有侦听器使用端口号137(netbios名称)和138(Netbios数据报)处于活动状态。

我实际上做了一些关于netbios的iptable规则,而不是禁用它。
(但是,当然你可以在[global]部分通过smb.conf文件添加disable netbios = yes来禁用它)。

我正在运行一个专用服务器,但他们实际上不断告诉我有netbios攻击,所以我为我的客户做了一个VPN。
(如果你通过路由器运行服务器,你不需要build立一个VPN,但是如果你使用TCP / IP的远程连接进行networking共享,我真的build议你做一个)

所以有我的解决scheme(取决于你的路由器的IP分配你的192.168.0.0/24取代你的IP范围):

首先通过iptables拒绝netbios端口使用的所有连接:

 iptables -A INPUT -p udp -m udp --dport 137 -j REJECT iptables -A INPUT -p udp -m udp --dport 138 -j REJECT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j REJECT iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j REJECT 

这是阻止:

  • NetBios名称服务的UDP端口137
  • NetBios数据报服务的UDP端口138
  • NetBios会话服务的TCP端口139
  • NetBios Microsoft发现服务的TCP端口445

其次,您将接受所有本地(或VPN)客户端通过iptables访问netbios端口:

 iptables -A INPUT -p udp -m udp -s 10.8.0.0/24 --dport 137 -j ACCEPT iptables -A INPUT -p udp -m udp -s 10.8.0.0/24 --dport 138 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 10.8.0.0/24 --dport 139 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 10.8.0.0/24 --dport 445 -j ACCEPT 

根据这个configuration,将接受从10.8.0.110.8.0.254的所有IP连接。

您可能会发现有关IP路由的更多信息: https : //en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation

我希望有帮助。