在 Linux 上保护 Samba 服务器的 10 种方法
如果您托管 Samba 服务器,请务必特别注意保护服务器免受攻击者的攻击。
要点
- 启用 SMB 流量加密,以防止未经授权的访问和网络攻击。使用传输层安全性 (TLS) 来保护 Linux Samba 服务器的流量。
- 使用 /etc/samba/smb.conf 配置文件对共享资源实施严格的访问控制和权限。定义访问、权限和限制规则,以确保只有授权用户才能访问资源。
- 为 SMB 用户帐户强制使用强且唯一的密码以增强安全性。定期更新 Linux 和 Samba 以防范漏洞和网络攻击,并避免使用不安全的 SMBv1 协议。
- 配置防火墙规则以限制对 SMB 端口的访问,并考虑网络分段以将 SMB 流量与不受信任的网络隔离。监视 SMB 日志中的可疑活动和安全事件,并限制访客访问和匿名连接。
- 实施基于主机的限制来控制对特定主机的访问并拒绝对其他主机的访问。采取额外的安全措施来强化您的网络并强化您的 Linux 服务器。
SMB(服务器消息块)协议是互联环境中文件和打印机共享的基石。然而,Samba 的默认配置可能会带来重大的安全风险,使您的网络容易受到未经授权的访问和网络攻击。
如果您托管 Samba 服务器,则需要对已设置的配置格外小心。以下 10 个关键步骤可确保您的 SMB 服务器保持安全并受到保护。
1. 启用 SMB 流量加密
默认情况下,SMB 流量不加密。您可以通过使用 tcpdump 或 Wireshark 捕获网络数据包来验证这一点。加密所有流量以防止攻击者拦截和分析流量至关重要。
建议您设置传输层安全性 (TLS) 来加密和保护 Linux Samba 服务器的流量。
2. 对共享资源实施严格的访问控制和权限
您应该实施严格的访问控制和权限,以确保连接的用户无法访问未经请求的资源。 Samba 使用中央配置文件 /etc/samba/smb.conf,允许您定义访问和权限规则。
使用特殊语法,您可以定义要共享的资源、授予对这些资源的访问权限的用户/组,以及是否可以浏览、写入或读取资源。以下是声明资源并对其实施访问控制的示例语法:
[sambashare]
comment= Samba Example
path = /home/your_username/sambashare
browseable = yes
writable = yes
valid users = @groupname
在上面的行中,我们添加了一个带有路径的新共享位置,并且对于有效用户,我们将对共享的访问权限限制为仅单个组。还有多种其他方法可以定义对共享的控制和访问。您可以从我们关于如何使用 Samba 在 Linux 上设置网络共享文件夹的专用指南了解更多信息。
3. 为 SMB 用户帐户使用强且唯一的密码
为 SMB 用户帐户实施强大的密码策略是基本的安全最佳实践。作为系统管理员,您应该创建或敦促所有用户为其帐户创建强大且唯一的密码。
您还可以通过使用工具自动生成强密码来加速此过程。或者,您还可以定期轮换密码,以降低数据泄露和未经授权访问的风险。
4.定期更新Linux和Samba
针对各种网络攻击的最简单的被动防御形式是确保您运行关键软件的更新版本。 SMB 很容易出现漏洞。它始终是攻击者有利可图的目标。
过去存在多个严重的 SMB 漏洞,导致系统完全被接管或机密数据丢失。您必须使操作系统及其上的关键服务保持最新。
5.避免使用SMBv1协议
SMBv1 是一种不安全的协议。始终建议无论何时使用 SMB,无论是在 Windows 还是 Linux 上,都应避免使用 SMBv1,而仅使用 SMBv2 及更高版本。要禁用 SMBv1 协议,请将此行添加到配置文件中:
min protocol = SMB2
这可确保使用的最低协议级别为 SMBv2。
6. 实施防火墙规则以限制对 SMB 端口的访问
配置网络的防火墙以允许访问 SMB 端口,通常仅来自可信来源的端口 139 和端口 445。这有助于防止未经授权的访问,并降低来自外部威胁的基于 SMB 的攻击的风险。
您还应该考虑安装 IDS 解决方案以及专用防火墙,以便更好地控制和记录流量。不确定使用哪个防火墙?您可能会从最佳免费 Linux 防火墙列表中找到最适合您使用的一款。
7. 实施网络分段以将 SMB 流量与不受信任的网络隔离
网络分段是将计算机网络的单个整体模型划分为多个子网的技术,每个子网称为一个网段。这样做是为了提高网络的安全性、性能和可管理性。
要隔离 SMB 流量与不受信任的网络,您可以为 SMB 流量创建单独的网段,并将防火墙规则配置为仅允许 SMB 流量进出该网段。这使您可以集中管理和监控 SMB 流量。
在Linux上,您可以使用iptables或类似的网络工具来配置防火墙规则来控制网段之间的流量。您可以创建规则以允许进出 SMB 网段的 SMB 流量,同时阻止所有其他流量。这将有效地将 SMB 流量与不受信任的网络隔离。
8. 监控 SMB 日志中的可疑活动和安全事件
监控 SMB 日志中的可疑活动和安全事件是维护网络安全的重要组成部分。 SMB 日志包含有关 SMB 流量的信息,包括文件访问、身份验证和其他事件。通过定期监控这些日志,您可以识别潜在的安全威胁并减轻它们。
在Linux 上,您可以使用journalctl 命令并将其输出通过管道传输到grep 命令来查看和分析SMB 日志。
journalctl -u smbd.service
这将显示负责管理 SMB 流量的 smbd.service 单元的日志。您可以使用-f选项实时跟踪日志,或使用-r选项首先查看最新条目。
要在日志中搜索特定事件或模式,请将journalctl 命令的输出通过管道传输到grep。例如,要搜索失败的身份验证尝试,请运行:
journalctl -u smbd.service | grep -i "authentication failure"
这将显示包含文本“身份验证失败”的所有日志条目,使您能够快速识别任何可疑活动或暴力尝试。
9.限制访客访问和匿名连接的使用
启用来宾访问允许用户在不提供用户名或密码的情况下连接到 Samba 服务器,而匿名连接允许用户在不提供任何身份验证信息的情况下进行连接。
如果管理不当,这两个选项都可能带来安全风险。建议您将这两个功能都关闭。为此,您需要在 Samba 配置文件中添加或修改几行。以下是您需要在 smb.conf 文件的全局部分中添加/修改的内容:
map to guest = never
restrict anonymous = 2
10. 实施基于主机的限制
默认情况下,任何主机(IP 地址)都可以不受限制地访问公开的 Samba 服务器。所谓访问,是指建立连接,而不是字面上的访问资源。
要允许访问特定主机并拒绝休息,您可以使用主机允许和主机拒绝选项。以下是添加到配置文件以允许/拒绝主机的语法:
hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny = 0.0.0.0/0
在这里,您命令 Samba 拒绝除本地主机和 192.168.1.0/24 网络之外的所有连接。这也是保护 SSH 服务器安全的基本方法之一。
现在您知道如何保护您的 Samba Linux 服务器
Linux 非常适合托管服务器。然而,每当您处理服务器时,您都必须小心行事并格外小心,因为 Linux 服务器始终是威胁者的有利可图的目标。
最重要的是,您要付出真诚的努力来强化您的网络和强化您的 Linux 服务器。除了正确配置 Samba 之外,您还应该采取一些其他措施来确保您的 Linux 服务器免受攻击者的攻击。