实现安全Samba的六种简单途径
时间:2006-12-28 来源:CUDev
允许正确的人轻松地访问资源,防止非授权的入侵者得到你不想让他们看到的信息,所谓安全就是在这两者之间取得一个平衡。Samba全面的配置选项列 表使你可以正确地根据你的需要调整安全策略。这里给出了一些重要的选项,通过配置这些选项你可以让合法的用户使用Samba而几乎不会让其他任何人访问 Samba。
口令
很多安全策略都是基于口令。用户名和口令这一组合仍然是用户认证的最有效方式之一,换句话说,就是口令确保安全。利用容易得到并且使用简单的网络监听工具可能是件困难的事情,但从线路中监听一个口令已经变成一件相当简单事情。
在网络中限制口令的传输
Windows在传送和接受口令时使用了几种不同的方法,但这对用户是透明的。即使到了Windows 2000 Service Pack 3,明码电文仍然是这些方法之一。基本上,用户名和口令被打包,然后在没有任何保护访问措施的情况下在网络中传送。
第一步是将“加密口令”选项设置为Yes。这将使Samba不再使用明码电文口令。然而,在缺省情况下, Samba将使用一种老式的LAN Manager格式来加密口令。虽然不是明文,但这种加密过于简单,攻击者可以通过穷举将口令破解,所以并不推荐这种方式。
关闭LAN Manager口令加密方式,你可以添加Lanman Auth选项并设置为No。这将断开所有非Windows NT/2000/XP 的客户机和服务器,因为只有对方是NT的认证方式时,才能进行通信。NT认证方式比LAN Manager口令加密更加难以被破解。实际上,存在两种不同的NT认证版本,但这两个版本对目前的处理能力来说都已经足够安全了。
何处得到你的口令
一旦知道了口令被安全传输,你就要开始考虑策略问题。Samba十分灵活,使得你可以应用本地UNIX服务器、独立的Windows服务器、 Windows 2000域,或者LDAP服务器来告诉它哪类客户机应该或不应该被允许连接到服务器。无论你选择哪个,Samba服务器将和你正在使用的认证用户系统具有 同样的安全性。因此,简而言之,小心的选择Samba服务器可信任的系统。
如果你要求用户记住他们自己的口令,而不是把口令记在显眼的地方。限制访问企业系统的用户的用户名和口令唯一性对于使用单点登陆是非常重要的。通过使用一个现有的用户名和口令基础架构,你可以让Samba和现有的基础架构很好的融合。
空口令
勿庸置疑,允许你的用户使用空口令会将你的整个主机暴露在潜在的敌人面前。但仍有许多企业允许使用空口令。Samba可以使你通过让管理员拒绝空口令或无效口令的用户进行连接来鼓励用户选择一个口令。这一点通过增加Null Passwords属性并设置为No来实现。
对共享级安全说不
Samba可以建立共享级安全。在这个机制中,共享被指派一个口令,而无需一个认证用户在连接一个共享验证时提供一个用户名和口令。尽管共享级安全在小环 境中看上去不错,但这会因为所有人都共享同一个口令而变得十分不安全。不仅是可以轻松的发现这个唯一的口令,而且当你更换口令而必须通知用户这个变化时, 这会变得异常繁琐。
限制主机
通过Samba控制访问者的另一个方法是,控制主机的连接列表。实际上,Samba在主机级别有两种方法可以控制访问。
谨慎选择接口
如果Samba系统安装了多个网卡,你可以限制Samba应答请求的接口。例如,如果你在专用网络中使用一块网卡并且用另一块连接公用的Internet,由于你同时用服务器进行NAT,你可以告诉Samb只应答来自专用网络中的请求。
这可以通过设置Bind Interfaces Only属性为Yes来实现。这将告诉Samba只应答来自指定接口的请求。下一步是 通过增加一个接口属性和指定支持的接口来指定可接受的接口。这个接口属性将接受UNIX接口名或者接口的IP地址。
允许主机
Samba控制哪些主机可以获得访问的第二种方法是使用Hosts Allow属性。这个属性允许你编辑列表指定哪些主机可以进行访问。这个地址列表可以是地址/子网掩码形式,所以你可以同时允许整个子网进行访问。例如, 如果你的专用网络使用保留的A类地址(10.x.x.x),你可以指定10.或者10.0.0.0/255.0.0.0以使专用网络中的任何计算机都可以 访问Samba服务器。
如果正在使用DHCP和IP地址,但你想将访问限制在部分主机上,可以在Hosts Allow属性中编辑他们的主机名。除此之外,还有一个Hosts Deny属性允许你拒绝某个主机的访问。
防火墙
当然,你也可以在防火墙级禁用对Samba运行非必要的端口。这样可以有效的限制防火墙另一侧的主机对Samba的访问。如果想用防火墙阻断对Samba 的通信,你只需要关闭TCP/135, UDP/135, UDP/137, UDP/138, UDP/139, 和TCP/139端口。这将有效的禁止对Samba服务器的访问,以及对你的网络中其他任何Windows服务器的访问。
拒绝浏览
可以使你的系统更安全的方法之一是,防止用户知道它的存在。通过拒绝用户浏览你的系统,你可以在很大程度上减少系统成为被攻击目标的可能性。
关闭浏览共享的方法很简单。一个方法是将每个共享区域的browseable选项设置为No。你也可以在共享名后加一个$符号。这个符号是Windows将共享设为不可见的标准方法。
另一个选择是,通过手动地建立包含一系列限制的IPC$共享,这些限制可以禁止用户进行连接,你可以关闭所有的浏览连接。这个IPC$共享是一个隐藏的进 程间通信共享,中小企业用户用它进行诸如浏览等事情。要想禁止对所有共享的浏览,你可以创建IPC$共享区域并设置hosts deny = 0.0.0.0/0。你还可以设置hosts allow = 127.0.0.1以使本地计算机可以使用IPC$共享。
简单的病毒防护
在大多数环境中,用户可以访问的文件共享中不应该有可执行文件存在。用户可以在文件共享中保存他们的文档,电子表格,演示稿等。可以配置Samba使得不 允许某些类型的文件存储在文件共享中。这可以通过每个共享中的Veto Files属性实现。在Veto Files选项中,文件类型之间用斜线字符(/)隔开,并且支持标准通配符星号(*)和问号(?)。如果想拒绝EXE文件,COM文件,或DLL文件,你 可以象这样设置Veto files的属性:
Veto files = /*.exe/*.com/*.dll/
这将阻止这些类型文件的访问和存储,并且能有效的防止Samba服务器传播大多数类型的Windows蠕虫和病毒。你可能希望禁止一些其他文件类型以有效的拒绝那些被用来传播病毒的文件扩展名。