本文将学习一下几个方面的内容,将会结合具体的实验来一步步实现.
1、 用户账号的映射
2、 使用IP对客户端进行访问控制
3、 使用域名对客户端进行访问控制
4、 使用通配符对客户端进行访问控制
5、 设置samba的权限
6、 设置samba的隐藏共享
7、 Samba客户端的配置
8、 Samba的排错
Samba服务器的常规配置很容易就可以实现,但是并不能够满足企业的实际需求, 需要做更加详细的配置.
(一)、用户账号的映射
samba服务器的账号 对应一个同名的系统账号, 就造成了这样的安全缺陷:只要知道samba服务器的samba账号,就等于知道了服务器的系统账号,只要破解其密码,从而加以利用,就可以来攻击samba服务器.
对于这个问题可以用账号的映射功能来加以解决.
方式:建立一个账号映射关系表,里面记录着samba账号和虚拟账号的对应关系,客户端访问时使用虚拟账号登录.这样告诉客户端用户的samba账号就不是和系统账号相对应的那个账号,而又可以访问samba服务器.
下面是具体实现的步骤
1、 开启用户账号映射功能,在全局设置中添加一行
2、 编辑smbusers,smbusers保存账号映射关系,添加一行用户的账号映射关系
把sale1映射为sky apple
3、重启samba服务
4、验证,在windows客户端用sky 或者apple登录
见下图,登录成功
备注:建议不要把本地系统用户的密码和samba用户的密码设置成为一样.
(二)、使用IP对客户端进行访问控制需要用到host allow和host deny字段
Host allow定义可以访问的客户端
Host deny 定义禁止访问的客户端
案例:公司内部samba服务器上共享了一个目录sales,该目录文件为销售部的共享目录,公司规定192.168.0.0/16这个网段的IP地址都不能访问该目录,但是192.168.1.1/24这个地址可以访问,对于该需求,我们可做如下配置
编辑samba的主配置文件vi /etc/samba/smb.conf
把安全级别改为share模式
在sales共享目录下添加hosts字段,如图
Hosts deny = 192.168.0.0表示拒绝所有来自该网段的IP地址的访问
Hosts allow = 192.168.1.1表示允许该IP地址访问
注意:当hosts deny 和hosts allow字段同时出现的时候,hosts allow优先.
我们在客户端验证一下,用192.168.1.100访问,错误信息如下
这样就达到了IP限制客户端访问的目的
(三)、使用域名对客户端进行限制
示例:公司samba服务器上共享了一个目录public,公司规定.sale.com域和.net域的客户端不能访问,同时,主机名为free的客户端也不能访问
分析:这个案例很明显不适合用IP限制来做, 一个域中可能会有很多台客户端, 可以使用域名限制,如图:
注意:域名和域名之间或域名和主机名之间要用“空格”符号隔开
(四)、使用通配符进行访问控制
示例:samba服务器共享了一个目录sales,规定所有人不允许访问,只有主机名为cli-3e723d915cf.的客户端可以访问
把安全级别改回user
将上面设置的主机名加入到samba服务器的本地hosts文件中,让samba可以解析该地址别忘了重启samba服务
然后到客户端验证一下吧,我们先用boss帐户,可以正常访问
看到上面的共享文件界面后,下面是sales文件夹的内容,访问成功
备注:常用的通配符还有:“*”、“?”、“LOCAL”等
案例:规定 人不能访问sales目录,只允许192.168.1.0网段的IP地址访问,但是192.168.1.100除外
下面我们看看具体的实现步骤
修改配置文件,使用EXCEPT进行设置
用192.168.1.100客户端验证一下
说一下hosts deny 和hosts allow的作用范围
它们的作用范围是不同的,设置在[global]里表示对samba服务器生效,如果设置在目录下,则表示对单一的目录生效
如图:表示只有客户端192.168.1.100能访问samba服务器
如图:表示只有客户端192.168.1.100可以访问public目录
|