zoukankan      html  css  js  c++  java
  • samba服务的高级进阶配置

    本文将学习一下几个方面的内容,将会结合具体的实验来一步步实现。
    1、 用户账号的映射
    2、 使用IP对客户端进行访问控制
    3、 使用域名对客户端进行访问控制
    4、 使用通配符对客户端进行访问控制
    5、 设置samba的权限
    6、 设置samba的隐藏共享
    7、 Samba客户端的配置
    8、 Samba的排错
    Samba服务器的常规配置很容易就可以实现,但是并不能够满足企业的实际需求,所以需要做更加详细的配置。
    (一)、用户账号的映射
    因为samba服务器的账号必须对应一个同名的系统账号,所以就造成了这样的安全缺陷:只要知道samba服务器的samba账号,就等于知道了服务器的系统账号,只要破解其密码,从而加以利用,就可以来攻击samba服务器。
    对于这个问题可以用账号的映射功能来加以解决。
    方式:建立一个账号映射关系表,里面记录着samba账号和虚拟账号的对应关系,客户端访问时使用虚拟账号登录。这样告诉客户端用户的samba账号就不是和系统账号相对应的那个账号,而又可以访问samba服务器。
    下面是具体实现的步骤
    1、 开启用户账号映射功能,在全局设置中添加一行
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    2、 编辑smbuserssmbusers保存账号映射关系,添加一行用户的账号映射关系
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    把sale1映射为sky apple
    3、重启samba服务
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     4、验证,在windows客户端用sky 或者apple登录
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     见下图,登录成功
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     备注:建议不要把本地系统用户的密码和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模式
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     在
    sales共享目录下添加hosts字段,如图
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     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服务的高级进阶配置 - zhuzhu - 津津计较
     (三)、使用域名对客户端进行限制
    示例:公司samba服务器上共享了一个目录public,公司规定.sale.com域和.net域的客户端不能访问,同时,主机名为free的客户端也不能访问
    分析:这个案例很明显不适合用IP限制来做,因为一个域中可能会有很多台客户端,所以可以使用域名限制,如图:
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     注意:域名和域名之间或域名和主机名之间要用“空格”符号隔开
    (四)、使用通配符进行访问控制
    示例:samba服务器共享了一个目录sales,规定所有人不允许访问,只有主机名为cli-3e723d915cf.的客户端可以访问
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     把安全级别改回
    user
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     将上面设置的主机名加入到
    samba服务器的本地hosts文件中,让samba可以解析该地址
    clip_image028
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
     别忘了重启
    samba服务
    然后到客户端验证一下吧,我们先用boss帐户,可以正常访问
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     
    看到上面的共享文件界面后,下面是sales文件夹的内容,访问成功
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     备注:常用的通配符还有:“*”、“?”、“LOCAL”等
    案例:规定所以人不能访问sales目录,只允许192.168.1.0网段的IP地址访问,但是192.168.1.100除外
    下面我们看看具体的实现步骤
    修改配置文件,使用EXCEPT进行设置
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     用
    192.168.1.100客户端验证一下
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     最后说一下
    hosts deny hosts allow的作用范围
    它们的作用范围是不同的,设置在[global]里表示对samba服务器生效,如果设置在目录下,则表示对单一的目录生效
    如图:表示只有客户端192.168.1.100能访问samba服务器
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     如图:表示只有客户端
    192.168.1.100可以访问public目录
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     (五)、设置
    samba的权限
    案例:公司samba服务器上有个共享目录sales,公司规定只有boss账号和sales组的账号可以完全控制,其他人只有读取的权限
    分析:前面我们学习的writable字段已经不能够满足要求了,因为:当writable = yes时,表示所有人都可以写入,当writable = no时则表死所有人都不可以写入,这时候就要用到write list字段了
    实现的步骤如下(省略的步骤可参照前一篇文章):
    1、 建立sales组,在组中建立两个账号sale1sale2,建立账号boss
    2、 将账号映射到smbpasswd账号,使用smbpasswd –a 账号名
    3、 编辑smb配置文件
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     4、
    重载smb服务service smb reload
    5、 在客户端验证一下(省略)
    (六)、samba的隐藏共享的设置
    处于安全的考虑,该功能往往用在较为私密的目录,或是比较重要的目录上。从而保证只有管理员或者一些重要人员才知道samba服务器上有这个目录,而其他的员工则不知道。
    Browseable字段可以实现该功能
    下面通过一个案例来说明
    案例:samba服务器有一个共享目录sales,只有boss用户可以浏览并访问该目录,其他人都不可以浏览和访问该目录
    分析:通过为boss单独建立一个配置文件,并且让boss访问的时候能够读取这个单独的配置文件即可。
    具体实现的步骤如下:
    boss建立独立的配置文件
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     编辑
    smb.conf主配置文件,添加一行
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     在主配置文件中设置隐藏该目录
    browseable = no
    clip_image052
    编辑独立配置文件
    boss的独立配置文件中删除browseable = no
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     重新启动一下
    samba服务
    在客户端验证一下
    boss访问,可以看到sales目录
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     用其他用户访问则看不到该目录,比如用
    sale1登录,如下,没有sales目录
    clip_image058
    (七)、samba客户端的配置
    linux客户端访问samba共享有两种方式
    1、 使用smbclient命令
    首先确保客户端已经安装了samba-client软件包
    查看目标主机共享目录列表的方式:
    smbclient –L 目标IP地址或主机名 –U 登录用户名%密码
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     下面是匿名登录的情况,不用输入密码,直接回车即可,匿名登录看不到
    sales共享目录,因为这是一个隐藏的共享目录,只有boss帐户可以访问
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     备注:不同用户使用
    smbclient浏览的结果可能不同,根据服务器设置而定,比如权限的设置
    2、 smbclient支持命令行的共享访问方式
    格式:smbclient //目标IP地址或主机名/共享目录名 –U 用户名%密码
    例:用sale1访问public目录
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     成功登录后,支持命令可以用
    help得到
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     3、
    使用mount命令在客户端挂载共享目录
    格式:mount –t cifs //目标IP地址或主机名/共享目录名 挂载点 –o username=用户名
    实例:使用sale2账号挂载IP地址为192.168.1.1samba服务器的共享目录public到客户机的/mnt
    samba服务的高级进阶配置 - zhuzhu - 津津计较
     备注:cifs表示samba所使用的文件系统
    (八)、samba的排错思路
    1、看错误信息
    2、看配置文件,使用配置文件检查工具
    3、看日志文件的记录,切换到另一个终端对日志文件进行监控
    使用:tail –F /var/log/messages
    4、 使用testparm命令检测
    5、 使用smbclient命令进行测试,如果客户端不能和服务器连接,会出现不同种类的出错信息,可根据不同的出错信息进行判断错误的原因
    u tree connect failed(可能是hosts deny字段的设置有问题)
    u Connection refused(可能是smbd进程未开启,确保smbdnmbd进程开启,并使用netstat –a检查netbios使用的139端口是否处于监听状态
    u Session setup failed(可能是输入了错误的用户名和密码)
    u Your server software is being unfriendly(可能是服务器软件存在问题,配置smbd时使用了错误的参数)

     
  • 相关阅读:
    .NET Core开发的iNeuOS物联网平台部署在Ubuntu操作系统,无缝跨平台。助力《2019 中国.NET 开发者峰会》。
    iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习三大模块
    .Net for Spark 实现 WordCount 应用及调试入坑详解
    实际项目中,看 ECharts 和 HighCharts 渲染性能对比,表面看衣装,本质看内功!!!
    iNeuOS云操作系统,.NET Core全系打造
    《ServerSuperIO Designer IDE使用教程》- 7.增加机器学习算法,通讯采集数据与算法相结合。发布:4.2.5 版本
    《ServerSuperIO Designer IDE使用教程》- 6.增加与阿里云物联网(IOT)对接服务,实现数据交互。发布:v4.2.4 版本
    《ServerSuperIO Designer IDE使用教程》- 5.树形结构管理设备驱动,小版本更新。发布:v4.2.3.1版本
    《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本
    物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务
  • 原文地址:https://www.cnblogs.com/huapox/p/3509888.html
Copyright © 2011-2022 走看看