实验二 Samba服务器配置

  • 2020 年 3 月 14 日
  • 笔记

实验二

实 验 基 本 信 息

实验名称:Samba服务器配置

实验时间:    年 月 日

实验地点: 

实验目的:

    1. 了解Samba环境及协议
    2. 掌握Samba的工作原理
    3. 掌握主配置文件Samba.conf的主要配置
    4. 掌握Linux和Windows客户端共享Samba服务器资源的方法

实验要求

1、简单文字说明,关键位置截图补充,Samba配置文件中的关键参数,使用注释标明。

2、实验过程中,出现任何错误,详细描述排错的过程。

3、实验完成后,当场演示实验结果。

实验过程描述

任务1: 配置yum源,使用光盘镜像安装Samba服务包。

(1) 挂载光驱:虚拟机→可移动设备→勾选CD/DVD;虚拟机→设置,如下图所示,确保CentOS7放在“光驱”中。

2)连接xshell操作

如下所示:

(3) rpm -qa |grep samba //安装完后查看软件安装情况 出现如下即为配置成功:

任务2:匿名访问(不需要密码的分享),物理主机匿名访问Samba服务器上的共享目录/tmp和/public。

  1. 输入命令

  1. 配置smb.conf文件

global] ;全局配置

workgroup = WORKGROUP ; 工作组名称

server string = Samba Server Version %v ;主机简单说明

netbios name = Host1 ;netbios名称

interfaces = 192.168.40.0/24 ;允许哪个接口提供服务,监听哪些网卡

hosts allow = 127.空格192.168.8. ;允许哪些地址的主机访问

log file = /var/log/samba/log.%m ;日志文件位置

max log size = 500 ;最大日志文件大小

security = user ;Samba服务器的安全模式

map to guest = Bad User ;匿名共享

[tmp] ;共享目录名称,也叫节名,每节定义一个共享项目

comment = Template Directories ;目录说明

browseable = yes ;是否让所有的用户看到这个项目

writable = yes ;是否可写

path=/tmp ;共享文件夹路径

guest ok = yes ;单纯分享时,让用户随意登入的设定值

  1. 查看配置文件语法是否正确

  1. 启动服务器并查看端口是否打开

 

 • nmb:进行NetBIOS名称解析,主要使用UDP端口137、138来解析名称。

• smb:管理Samba服务器上的共享目录、打印机等,主要使用TCP端口、139、445来传输数据。

  1. 在服务器(本地)检查共享情况

  1. 关闭防火墙和selinux重启服务器

  1. 在windos中访问共享

 

任务3:使用用户名访问(需要密码的分享),每用户可以登陆访问(可读写)共享目录project,但Samba服务器上自己的主目录,只能用户自己访问(可读写),其他用户无权访问。

 1、Samba服务器上创建共享目录/home/project 并设置相应权限

注意:2是扩展属性,你的文件的权限变为-rwxrws—表示其他用户执行问件时具有所有者组的权限,若是4770则权限变为:-rwsrwx—,表示其他用户执行文件时,具有与所有者相当的权限

  1. 修改配置文件/etc/samba/smb.conf

3、创建共享用户,根据权限访问共享目录(说明:Samba使用Linux系统的本地用户账户,但需要为系统账户专门设置Samba密码。客户端访问时,系统将提交的用户信息与Samba服务器端的信息进行比对地,如果相符,并且也符合Samba服务器其他安全设置,客户端与Samba服务器才能成功建立连接。)

4、修改用户密码

5、创建和管理Samba的共享用户,设置密码为4321(可以使用pdbedit命令来创建和管理Samba用户。)

6、 查看结果 pdbedit -L //读取passdb.tdb数据库文件,列出所有共享用户

7、 可以使用smbpasswd命令,修改共享用户的密码

8、可以使用 pdbedit -x 用户名 //删除samba共享用户

9、重启服务

10、在本地查看结果

11、Windows 客户端利用账户lisi 访问

 

 

 

⚫ 在共享目录中创建文件和目录

 

12、在Linux客户端中使用账号zhangsan访问共享

 

⚫ 利用账户zhangsan挂载目录到本地

 

⚫ 访问共享文件夹,并创建文件和文件夹。

 

 

⚫ zhangsan修改用户“lisi“(Windows客户端登陆)创建的文件”lisi.txt”,不可以修改。

 

 

文件夹消失,与需求不符合

13、进一步修改,满足需求

 

  1. 在Samba服务器上,我们把共享的目录/project设置 为2770,但是却不能设置Windows共享用户lisi在这个目录下创建的文件的权限。由此,引入两个参数。

 

 

⚫ create mode – 定义用户在此共享资源中创建的文件的权限。Samba在新建文件时,会把dos文件的权限映射成对应的unix权限。如果不设置,create mode =0744 (默认)。

⚫ directory mode – 这个配置与create mode参数类似,只是它是应用在新创建的目录上。如果不设置, directory mode =0755 (默认)

计算机配置差,不能同时运行两台服务器,只进行windos系统测试

14、继续修改:每位用户只能删除自己的文件,不能删除其他用户建立的文件。命令如下图所示

 

测试:Windows客户端zhangsan删除lisi的文件,如下图所示。

 

测试2:Linux客户端zhangsan删除lisi的文件,不可以删除,修改文件内容,成功。

 

回答问题

  1. Samba服务器有什么安全风险?

实验中为了搭建服务器关掉了防火墙和SElinux不利于系统安全

 防火墙

  Samba 有很多特性可以限制哪些人能访问哪些共享文件 — 限制特定用户名的访问、强制要求密码、检查组成员或在网络层过滤。后面的参数,比如 allow hosts 和 smb ports,它们对 IP 地址和 User Datagram Protocol (UDP)/TCP 端口进行操作,提供了一种简单的方法来控制哪些主机可连接到 Samba 服务器上。

  如果能识别哪些设备连接到服务器,比如属于内部网络,或者甚至是某个特定的子网或一组服务器,那么就实现了网络层控制。这是第一道防线:如果攻击者无法连接到设备,那么设备会更安全。

  在 Samba 守护进程中控制网络网络访问,这听上去是完美的解决方案,但其实有更好的方法。为了确定远程连接是否满足要求,Samba 首先要接受连接,因为 Samba 只有在完成连接后才能获取详细信息。如果是想要防止不符合要求的用户连接到 Samba,那么防止 Samba 看到这些连接更有意义。Samba 中的所有配置都只会影响 Samba,因此必须为其他的守护进程(比如 web 服务器和文件传输)找到类似的解决方案。

在典型环境中,网络安全不是由系统管理员而是由其他 IT 员工负责。在主机层(而不是应用程序层)控制访问能够实现业务分离,而且会减少由于更改 smb.conf 而导致的错误

使用防火墙保护 Samba

  有多种不同的方法来设计 Samba 的防火墙策略,选择时要考虑网络布局以及谁或哪些主机需要访问 Samba 服务器等事项。从较高的层面来看,您可以选择保护整个主机或只关注 Samba。

  如果您想要保护整个主机,那么您就不必担心 Samba 使用哪个端口。以下代码是一个简单策略,只允许来自 10.0.0.0/8 专用网络的流量传输到本地服务器:

iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

  第一个命令向 INPUT 链添加了一条规则,它将规则添加到当前的规则列表中。该规则设置了来自源网络(-s)10.0.0.0/8 的所有内容都跳到 ACCEPT 目标,它将会接受数据包。第二个命令允许来自现有会话的包,这是通过调用带有 -m state 的状态匹配器实现的。匹配器会追踪哪些连接离开主机。传出的连接的响应包被认为是 established 或 related,因此规则的其余部分会接受这些包。

  最后一个命令设置 INPUT 链丢弃数据包的默认策略。如果数据包不是来自 10.0.0.0/8 网络或者不是主机生成的连接的一部分,那么它不会被接受。

实验成绩

 

 

 

教师签名: