samba服务搭建以及客户端挂载

一、samba服务介绍

        Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

        端口号:

        139   tcp/udp

        445   tcp/udp

        模式:C/S模式

二、实验过程

         windows作为客户端访问服务器

        1、先在linux上查看一下要安装的软件包

        yum list | grep samba

图示三个软件包

samba-client.x86_64

#客户端软件,主要提供Linux主机作为客户端时所需要的指令集

 samba-common-libs.x86_64 

#主要提供samba服务器的设置文件与设置文件语法检验程序

samba.x86_64         

#服务端软件

 2、安装完毕后,启动服务

systemctl start smb

3、设置服务开机自启

systemctl enable smb

4、开启服务后,查看smb服务使用的端口是否正常监听

netstat -lntup | grep smb

只要发现139和445端口都处于LISTEN状态,就说明服务成功启动了。

5、用户的创建

        (1)先在系统中创建用户

                useradd -s /sbin/nologin tom

                useradd -s /sbin/nologin jim

 #创建用户,但该用户无法登陆系统。可以保护主机的安全

        (2)在samba服务中添加用户

                smbpasswd -a tom

                smbpasswd -a jim

#将用户添加到samba服务器中并设置访问密码

        smbpasswd tom

#如果忘记密码,可以通过该命令进行修改

        (3)查看添加到samba服务器中的用户

                pdbedit -L

        (4)创建IT组,并把用户添加到IT组里

        groupadd IT

        usermod -G IT tom

        usermod -G IT jim

    6、共享文件夹的配置

        mkdir /share        #创建一个共享文件夹、

        chgrp IT /share        #改变文件或目录所属的用户组

        chmod 770 /share

        cp /etc/passwd/share        #向共享文件中复制一个文件

     7、配置smb.conf文件

        vim /etc/samba/smb.conf

        在文件最后一行添加如下内容:

        [smbshare]        #设置共享名,即其他成员看到的共享文件夹的名称

                comment = This is a share file        #共享文件的描述

                path = /share        #共享文件的路径,要写绝对路径

                public = no         #不公平

                valid users = tom       

        #允许访问共享的用户,多个用户之间用逗号隔开。或者直接添加组valid users = @组名

                write list = tom        #允许写入共享的用户

                配置完毕后重启服务

        查看更多配置信息,可以查看文章末尾的扩展笔记

          8、防火墙的配置

                代码如下:

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.91.0/24
service name=samba accept'

        设置完重载防火墙

        firewall-cmd --reload

        SElinux(内核防火墙)的配置(两种方法)

        (1)关闭SElinux

        vim /etc/selinux/config

        将SELINUX=enforcing改为disabled

        (2)设置Selinux对/share/ 文件放行

        chcon -R -t samba_share_t /share

#####SELINUX的三种模式

        Disabled、Permissive 和 Enforcing

 Disable工作模式(关闭模式)

      SElinux被关闭

Permissive工作模式(宽容模式)

      SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。

        然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。

Enforcing工作模式(强制模式)

        从此模式的名称就可以看出,在 Enforcing 模式中, SELinux 被启动,并强制执行所有的安全策略规则。

三、演示过程

        1、windows访问samba服务器

在windows上按windows键+R键

         在输入框中输入\\192.168.91.133(服务器的IP地址)

        2、弹出一个登陆验证框,输入用户和密码

        3、 进入文件,可以看到服务器中的文件

        4、打开文件夹可以看到里边的文件

 

        5、可以在共享文件夹中实现下载和上传

 

         linux作为客户端访问服务器

        (1)下载samba客户端      

        yum install samba-client

        (2)我们先匿名登陆一下服务器,查看服务器中的资源

         smbclient -L 192.168.91.133

        

        #这里会提示你输入密码,直接回车就行

        可以看到服务器中的共享文件夹是smbshare

            (3)登陆服务器

                smbclient -U tom //192.168.91.133 /smbshare

        注意这里的共享文件夹名称是配置文件中的名称

        (4)登陆后可以输入help可以查看相关操作

                put         上传

                mput        批量上传

                #上传文件所在的目录是你当前所在的目录

                get        下载

                mget        批量下载

                rm        删除文件

        linux客户端临时挂载samba服务器

                1、在客户端创建一个挂载点

                        mkdir /mnt/smb

                2、进行挂载

                        mount -o username = tom //192.168.91.133/smbshare /mnt/smb

         

                         如果出现这种错误

                        yum install cifs-utils.x86_64

                        需要安装一个安装包

                3、然后输入tom的密码     

                        df -Th

                        挂载成功后可以看到samba服务器上的文件夹

                同样,可以实现上传和下载

        Linux客户端实现永久挂载

  1. vim /etc/fstab
  2. //IP/smbshare  /挂载点    cifs     username=用户名,password=密码        0 0

       3.mount -a

       4.通过这种方式可以将samba服务器挂载到客户端上,以后开机系统会默认挂载samba资源到本地,可以直接把文件存储到共享文件夹中。这时使用的就是服务器的空间。

        5.但是通过这种方式挂载的服务器,会存在一个问题

        因为文件里挂载的用户是tom,那么服务器中其他用户就失去了意义,服务器中做的用户限制也就失去了意义。

        6.基于这种问题,我们可以做些改进

        使用multiuser多用户认证模式

        新建一个文件

           Vim /root/user.txt

        写入如下内容:

                username=tom

                password=12345

               vim /etc/fstab

        把samba服务器的配置修改一下

        将username=tom,password=12345修改为

        credentials=/root/user.txt,multiuser,sec=ntlmssp

        

        #credentials表示借用/root/user.txt中的用户来进行挂载

       可以把/root/user.txt中的数据当成一个管理员的账户,借用管理员的身份进行服务挂载,但不允许普通用户查看修改。(因为是在root目录下)

          Multiuser:通过多用户认证的方式来进行认证

        sec=ntlmssp:安全认证方式为ntlmssp

        保存退出

        重新挂载一下

        umount /mnt/smb

        mount -a

        实验演示

        useradd tom

        useradd jim

        切换用户

        su – tom

        cifscreds add ServerIP

        将用户添加到samba数据库中,并且输入tom的密码

如果密码输入错误

cifscreds update ServerIP 重新输入密码

然后是jim,jim在samba服务配置中设置的是禁止访问

 一般这种方式更适用于现实中主机的管理:给每台主机都进行samba服务的挂载,然后给予每台主机一个相对应的账户,就可以在服务器中进行用户的权限限制。

 四、补充知识点

共享参数:

[共享名]

comment = 任意字符串

说明:comment是对该共享文件的描述,可以是任意字符串

path = 共享目录路径

说明:path用来指定共享目录的路径

browseable = yes/no

说明:browseable用来指定该共享文件是否可以浏览,如果想查看隐藏文件夹,要在IP地址后边加上共享文件夹的名称。

\\114.114.114.114\filename

writable = yes/no

说明:writable用来指定该共享文件是否可写

available =yes/no

说明:available用来指定该共享资源是否可用

admin users = 该共享的管理者

说明:admin users用来指定该共享的管理员(对该共享具有完全的控制权)

valid users = 允许访问该共享的用户

invalid users = 禁止访问该共享的用户

write list = 允许写入该共享的用户 (组名前面要加上一个加号)

#当与writable同时存在时,writable的权限高于write list

#write list = john,+IT

public = yes/no

说明:public用来指定该共享是否允许guest账户访问

guest ok = yes/no

说明:意义同”public”

host allow = 192.168.1.

说明:允许192.168.1.0/24网段访问

host deny = 192.168.1.3

说明:禁止192.168.1.3主机访问

host allow =192.168.1. except 192.168.1.3

说明:允许192.168.1.0/24网段访问,除了192.168.1.3

我使用的是4.6.2-8版本,发现hosts deny命令不起作用,想要禁止IP地址的同学可以使用hosts allow = …… except

五、清除Windows主机上的登陆账户的缓存信息

如果要进行多个用户登陆访问实验,可以利用这个进行清除之前登陆的用户缓存信息

打开命令行输入

net use * /delete

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值