1.1 任务概述

1.1.1 业务场景

有部分企业对Samba共享的权限设置有更精细的要求。如有部分员工可以读写,另外一部分只有读的权限。甚至有要求,只有指定IP地址范围的电脑能有权限。
具体任务描述,看服务配置部分。

1.1.2 教学目标

通过案例任务的学习,学习者能收获:

  1. 理解hosts项对客户端限制的方法
  2. 掌握读写白名单的设置方法
  3. 能利用独立配置文件进行精细权限控制
  4. 树立信息安全的概念和维护安全的意识

    1.1.3 组织评价

  5. 根据教师的演示,结合操作流程,在给定的时间内,基本完成任务的配置,level 1

  6. 能结合操作流程,独立或经咨询帮助下,基本完成任务的配置,level 2
  7. 在level2 基础上,能独立、相对流畅的完成配置任务,level 3
  8. 能熟练、流畅、快速的独立完成任务,level 4
  9. 在level 4的基础上,指导同学,积极参与帮助同学完成配置任务,level 5
  10. 其他的则达不到要求,level 0, 是任务抽查的重点。
  11. 如果有其他违反课堂组织纪律的,扣分。

    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访问,网段内其他主机不能访问。
    「主要配置如下」
    1. [root@w ~]# vim /etc/samba/smb.conf #关键配置部分,其他省略
    2. [sales]
    3. comment = sales
    4. path = /companydata/sales
    5. hosts deny = 192.168.65.
    6. 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 = Nowritable = 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单配置文件,无法为具体的,尤其是高权限用户单独精细的配置选项。可以使用针对不同用户和组的独立的配置文件,来精细配置

  1. 在/etc/samba/目录,新增 smb.conf.[user] | [group]
  2. 在主配置文件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

image.png
image.png
image.png
三、创建分离的配置文件

[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上的安全的文件共享方案。具体需求:

  1. sys组具有管理所有samba空间的权限
  2. 各小组都有自己的网络共享目录,除本组和sys组外,其他不可访问
  3. 每个用户都有自己的网络目录;
  4. 公共临时目录,可以匿名访问,所有用户都只读,都不可写
  5. dev和test的共享目录,只能内部访问,其他不能访问;

1.4.1.2 思路和方案

可以扫教材的二维码,学习
要点和流程概要如下:

  1. 创建对应的目录,都是/share目录下
  2. 创建对应的组和用户
  3. 用chown, chmod变更文件所有者和权限,多用户对同一文件的权限可以采用setfacl更精细设定
  4. 设置smb.conf