上次小编已经介绍的配置已经可以使企业内部的资源通过网络得以共享,并分配适当的共享权限来管理共享目录。对于很多企业来说,这远远不能达到要求。下面小编来介绍Samba的高级功能。
用户账号映射
通过上节的介绍,Samba用户账号保存于smbpasswd文件中,而且用于访问Samba服务器的账号必须对应一个同名的系统账号,只要破解其密码,就可以加以利用。这一点就增加了服务器的安全隐患,可以采用用户账号映射功能来解决这个问题。
其实用户账号的映射很简单。如果我们告诉用户的Samba账号不是本地系统的账号,而又可以访问Samba服务器,那么问题就解决了。
因此,要建立一个账号映射关系表,里面记录着Samba账号和虚拟账号的对应关系。客户端访问Samba服务器时使用虚拟账号登录。
我们需要在主配置文件中做如下修改
添加的这行字段是为了开启用户账号的映射功能
然后我们找到这个文件,打开它
最后一行是小编添加的,意思就是左边的tom代表的是Samba用户名,右边对应的是映射账号名。
然后我们修改好后,重启smb服务
然后我们打开win7,来继续访问Samba服务器
这里小编输入的是dog映射账号名,cat也是一样的效果
OK,这里已经成功访问了。
客户端访问控制
我们可以用valid users字段来控制用户访问。如果大型企业存在大量用户,这种方法就显得有点笨拙了。例如,要进入某个ip子网或某个域的客户端访问该资源时,使用valid users字段将无法实现客户端的访问控制。下面将使用hosts allow和hosts deny两个字段来实现此功能。
(1)hosts allow和hosts deny字段的作用
hosts allow字段定义可以访问的客户端。hosts deny字段定义禁止访问的客户端。
(2)使用IP地址进行限制
现在我们做一个假设,我们拒绝192.168.10网段的IP地址访问共享目录,但是允许192.168.10.254这台主机访问该目录
我们编辑主配置文件,将安全级别设置为share
然后我们在共享目录mez下进行限制,这里会有一个疑问,这里的允许拒绝会不会冲突,答案是我们允许了该网段的主机,允许的权限是优先的,所以,并不会妨碍该主机的访问,我们可以验证一下
首先我们设置完毕,重启smb服务
然后来到win7下,可以看到正式这个地址的主机,然后我们继续访问Samba服务器
我们看到mez文件夹还是能够正常访问。
如果要同时拒绝多个网段的IP地址(网段IP地址之间要用空行隔开)访问smb服务器,我们只需要这样写
hosts deny=192.168. 172.17.
这句话表示我们拒绝192.168网段和172.17这个网段的地址访问该目录。
(3)使用域名进行限制
这里和IP地址的限制类似,小编就来举例
hosts deny=.mez.com .net jack
这里就表示,拒绝.mez.com和.net域和主机名为jack的客户端访问。如www.mez.com,ftp.mez.com,www.mez.net都无法访问
(4)使用通配符进行访问控制
hosts deny=all
hosts allow=mez
这里的all不是名称为all的主机,而是拒绝所有的客户端访问,我们又在下面加上了一句,这里只允许mez主机访问
常用的通配符还有“*”,“?”,“LOCAL”等。
我们可以看出allow的优先级大于deny,下面还有一个情况,允许一个网段,但排除在外某台特定IP
hosts deny=all
hosts allow=192.168.10. EXCEPT 192.168.10.10
表示允许192.168.10网段的主机访问,但是192.168.10.10这台主机排除在外,也就是不能访问
最后再补充一下
hosts deny和hosts allow的作用范围
把这两个字段放在不同的位置上,它们的作用范围是不一样的。设置在[global]里,表示对Samba服务器生效。如果设置在目录下,则表示只对单一目录生效。
[global]
hosts deny=all
hosts allow=192.168.10.254
表示只有192.168.10.254可以访问Samba服务器。
[mez]
hosts deny=all
hosts allow=192.168.10.254
只有192.168.10.254可以访问mez目录。