访问控制
Samba的访问控制通过hosts allow(配置允许访问的客户端)、hosts deny(配置拒绝访问的客户端)两个参数实现。
在Samba中使用hosts allow、hosts deny参数时,该参数可以出现在全局配置部分,用于允许或拒绝可连接到Samba服务器的客户端,也可以出现在具体的共享资源配置中用于允许或拒绝可访问该资源的客户端。如果在全局配置部分的hosts allow、hosts deny优先级与具体共享资源的配置发生冲突时会怎么样呢?通过Samba的工作过程不难看出Samba客户端首先要可以连接到Samba服务器,才能访问其共享资源,所有全局配置部分的hosts allow、hosts deny优先级与具体共享资源的配置发生冲突时使用以下规则。
(1)全局配置中hosts deny指定客户端,此时无法访问Samba服务器任何共享资源。
(2)全局配置中hosts allow指定客户端,分以下几种情况。
①:如具体共享资源中只指定了hosts deny且与全局配置不冲突时,客户端可以访问具体共享资源。
②:如具体共享资源中只指定了hosts allow且是全局配置的子集时,只有具体共享资源中指定的客户端可以访问。
③:如具体共享资源中既指定了hosts allow又指定了hosts deny时,首先根据hosts allow与hosts deny生效规则得出具体共享资源允许或拒绝的客户端,再根据上面两条规则得出最终的结果。
1.使用IP地址控制
在hosts allow及hosts deny时,可通过使用IP地址精确允许或拒绝特定客户端访问Samba服务器,下面看几个例子。
(1)不允许IP地址为192.168.0.20的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = 192.168.0.20
(2)只允许IP地址为192.168.0.25的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts allow = 192.168.0.25
(3)下面的例子中,IP地址为192.168.0.99的客户端可以访问Samba服务器上的smbtest目录吗?当然是允许访问,为什么呢?因为在Samba中hosts allow比hosts deny优先级要高。
[smbtest]
   path = /test
   hosts allow = 192.168.0.99
   hosts deny = 192.168.0.99
2.使用网段控制
在hosts allow及hosts deny时,可通过使用子网允许或拒绝特定客户端访问Samba服务器,在表示子网时可以使用192.168.0.0/24、192.168.0.或192.168.0.0/255.255.255.0表示192.168.0.0子网掩码24位子网。下面看几个例子。
(1)不允许192.168.0.0/24所有客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = 192.168.0.
(2)只允许192.168.0.0/24所有客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts allow = 192.168.0.
(3)不允许192.168.0.0/24但不包括192.168.0.99的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = 192.168.0.
   hosts allow = 192.168.0.99
(4)只允许192.168.0.0/24但不包括192.168.0.99的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts allow = 192.168.0. EXCEPT 192.168.0.99
3.使用域名控制
在hosts allow及hosts deny时,可通过使用域名允许或拒绝特定客户端访问Samba服务器器,在表示域名时可以使用FQDN表示某个具体的客户端或用域名表示某个域的所有客户端。下面看几个例子。
(1)不允许FQDN为client1.example.com的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = client1.example.com.
(2)只允许example.com域的所有客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts allow = .example.com
(3)不允许example.com区域但不包括192.168.0.99的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = .example.com
   hosts allow = 192.168.0.99
(4)只允许example.com但不包括IP地址为192.168.0.99的客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts allow = .example.com EXCEPT 192.168.0.99
4.使用通配符控制
在hosts allow及hosts deny时,可通过使用通配符代表特定客户端集。可以使用的通配符主要有:ALL表示所有客户端,*表示任意个字符,?表示一个字符,LOCAL表示本地计算机。下面看几个例子。
(1)拒绝除了192.168.0.99及192.168.0.100以外的所有客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = ALL
   #多个匹配条件需用空格分隔。
   hosts allow = 192.168.0.99 192.168.0.100
(2)除了192.168.0.0/24网段的客户端(不包括192.168.0.99)以外拒绝所有客户端访问Samba服务器上的smbtest目录。
[smbtest]
   path = /test
   hosts deny = ALL
   hosts allow = 192.168.0 EXCEPT 192.168.0.99
对于使用hosts allow及hosts deny的各种形式,看一个综合例子:只允许192.168.0.0/24、192.168.1.0/24及192.168.2.0/24连接到Samba服务器,只允许.example.com域,但不包括192.168.0.99的客户端访问名为smbtest的共享目录,只允许192.168.1.0/24的客户端访问名为smbtest1的共享。
(1)在[global]标签下加入如下参数。
[global]
   hosts allow = lo 192.168.0. 192.168.1. 192.168.2.
(2)在具体共享资源中加入如下参数。
[smbtest]
   path = /test
   hosts allow = .example.com EXCEPT 192.168.0.99
 
[smbtest1]
   path = /test1
   hosts allow = 192.168.1.
 
转载:http://blog.sina.com.cn/s/blog_63c8c46401014umd.html

最新文章

  1. iOS之开发中常用的颜色及其对应的RGB值
  2. iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)
  3. R语言进阶
  4. Java设计模式之-----工厂模式(简单工厂,抽象工厂)
  5. 【MVVMLight小记】一.快速搭建一个基于MVVMLight的silverlight小程序
  6. linux服务器下添加字体
  7. Python网络爬虫Scrapy框架研究
  8. 3D跑酷遇到的问题
  9. 【转】Android中Application类用法
  10. PHP判断用户所在国家并跳转对应的目录
  11. 通过messenger实现activity与service的相互通信
  12. 安装MySQldb出错解决方法
  13. 用physdiskwrite在VMware虚拟机上安装m0n0wall【转】
  14. 《C Primer Plus 第五版》读书笔记
  15. FZU1862(线段树 或者 DP)
  16. RH133读书 笔记(4) - Lab 4 System Services
  17. 直流电机驱动PWM频率(转)
  18. sqlmap tamper的使用
  19. html->html5->css->javascript(js)->jQuery->AJAX->JSON
  20. 高仿腾讯QQ即时通讯IM项目

热门文章

  1. codevs:1313 质因数分解:已知正整数 n是两个不同的质数的乘积,试求出较大的那个质数 。
  2. PHP ltrim() 函数
  3. ZR#1004
  4. load、loads和 dump、dumps的区别
  5. QTextToSpeech Win7奔溃
  6. springboot配置Filter的两种方法
  7. 廖雪峰Git教程2
  8. Leetcode: 24 Game
  9. SOD 框架
  10. Oracle中RAISE异常