1.1 任务概述
1.1.1 业务场景
有部分企业对Samba共享的权限设置有更精细的要求。如有部分员工可以读写,另外一部分只有读的权限。甚至有要求,只有指定IP地址范围的电脑能有权限。
具体任务描述,看服务配置部分。
1.1.2 教学目标
通过案例任务的学习,学习者能收获:
- 理解hosts项对客户端限制的方法
- 掌握读写白名单的设置方法
- 能利用独立配置文件进行精细权限控制
-
1.1.3 组织评价
根据教师的演示,结合操作流程,在给定的时间内,基本完成任务的配置,level 1
- 能结合操作流程,独立或经咨询帮助下,基本完成任务的配置,level 2
- 在level2 基础上,能独立、相对流畅的完成配置任务,level 3
- 能熟练、流畅、快速的独立完成任务,level 4
- 在level 4的基础上,指导同学,积极参与帮助同学完成配置任务,level 5
- 其他的则达不到要求,level 0, 是任务抽查的重点。
- 如果有其他违反课堂组织纪律的,扣分。
1.2 知识导读
1.2.1 hosts配置项
对于Samba的安全性,常用valid users来确定访问的用户范围。但涉及到那些IP、那些域用户的范围,就需要用到hosts 配置项。1.2.1.1 配置项hosts的原型
hosts allow = 127. 192.168.12. 192.168.13.
hosts deny = 127. .sale.com .net client1
说明: 空格分割多段, IP地址省主机位,但后缀.
号不省。 域名省前缀,主机名省,域名不省
当 allow和deny同时存在可能冲突时,allow优先1.2.1.2 示例1
部门内部的共享目录是/companydata/sales
,共享名是[sales], 规定在 192.168.65.0/24网段中,只允许192.168.65.20访问,网段内其他主机不能访问。
「主要配置如下」[root@w ~]# vim /etc/samba/smb.conf #关键配置部分,其他省略
[sales]
comment = sales
path = /companydata/sales
hosts deny = 192.168.65.
hosts allow = 192.168.65.20
1.2.1.3 示例2
部门内部的共享目录是/companydata/sales
,共享名是[sales]。规定规定, .sale.com和.net
域的客户端不能访问,并且主机名为client1的也不能访问
「主要配置如下」
[root@w ~]# vim /etc/samba/smb.conf #关键配置部分,其他省略
[sales]
comment = sales
path = /companydata/sales
hosts deny = .sale.com .net client1
1.2.2 白名单write list
read only = No
或 writable = Yes
是针对所有人的通用权限。如果需要限定可写用户的范围,需要使用write list =
白名单。
1.2.2.1 示例1
部门内部的共享目录是/companydata/sales
,共享名是[sales]。规定所有都可以访问,但sales组和manager才可以写。
「主要配置」
[root@w ~]# vim /etc/samba/smb.conf #关键配置部分,其他省略
[sales]
comment = sales
path = /companydata/sales
guest ok = yes ## 允许匿名访问
write list = @sales, manager
1.2.3 独立配置文件
smb.conf单配置文件,无法为具体的,尤其是高权限用户单独精细的配置选项。可以使用针对不同用户和组的独立的配置文件,来精细配置
- 在/etc/samba/目录,新增 smb.conf.[user] | [group]
- 在主配置文件smb.conf中 引入 :
### smb.conf [global] config file=/etc/samba/smb.conf.%U ## %U 当前登录的用户名,匹配;%G, 组名,是SAMBA变量
1.3 业务配置
1.3.1 子任务:使用独立配置文件配置网络可见属性
1.3.1.1 任务描述
samba服务器上有一个/var/tech共享目录,共享路径为[tech], 对tech组和boss都可写。但此目录只有boss帐号可见。1.3.1.2 任务分析
需要采用独立配置文件来实现。
网络可见的配置项是browseable =
。因为是单一配置文件,是针对所有用户的。也即:
如果browseable =no
,则tech组和boss都不可见。yes则都可见。
因此,需要针对boss单独设置。1.3.1.2 实施步骤
一、创建用户和组[root@w ~]# groupadd tech [root@w ~]# useradd -g tech -s /sbin/nologin tech1 [root@w ~]# useradd -s /sbin/nologin boss [root@w ~]# smbpasswd -a boss ## pdbedit -a boss [root@w ~]# smbpasswd -a tech1 ## pdbedit -L
二、创建目录,设定权限
[root@w ~]# mkdir -p /var/tech
[root@w ~]# chown boss:tech /var/tech -R
[root@w ~]# chmod 775 /var/tech -R
三、创建分离的配置文件
[root@w ~]# cd /etc/samba
[root@w samba]# cp smb.conf smb.conf.boss
[root@w samba]# vim smb.conf.boss
'''' 添加如下内容
[tech]
comment = tech's data
path = /var/tech
write list = @tech,boss
; browseable = yes ### 可以不写,默认可见
'''保存退出
[root@w samba]# vim smb.conf
''' 将smb.conf.boss文件包含,用登录用户名%U配置文件
[global]
.....
config file=/etc/samba/smb.conf.%U
[tech]
comment = tech's data
path = /var/tech
write list = @tech,boss
browseable = no ## 不可见
'''保存退出
四、启动服务,安全设置
[root@w ~]# cd
[root@w ~]# systemctl start smb
[root@w ~]# firewall-cmd --perm --add-service=samba ## 添加过不是再添加
[root@w ~]# firewall-cmd --reload
[root@w ~]# setenfore 0
1.4 拓展迁移
1.4.1 综合案例
1.4.1.1 案例描述
公司有4个部门:系统sys, 开发dev, 设计pd和测试test。个人以Windows7/10为主;部分开发人员使用Linux。服务器CentOS7.需设计一套用在CentOS上的安全的文件共享方案。具体需求:
- sys组具有管理所有samba空间的权限
- 各小组都有自己的网络共享目录,除本组和sys组外,其他不可访问
- 每个用户都有自己的网络目录;
- 公共临时目录,可以匿名访问,所有用户都只读,都不可写
- dev和test的共享目录,只能内部访问,其他不能访问;
1.4.1.2 思路和方案
可以扫教材的二维码,学习
要点和流程概要如下:
- 创建对应的目录,都是/share目录下
- 创建对应的组和用户
- 用chown, chmod变更文件所有者和权限,多用户对同一文件的权限可以采用setfacl更精细设定
- 设置smb.conf