11.24 cifs通用网络文件系统

1.cifs和samba的介绍

CIFS (Common Internet File System),通用Internet文件系统。在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。

CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议超文本传输协议的一个实现。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

samba是由微软和sun公司一起建立起来的,是用来让windows和linux进行文件传输,sun公司是类linux公司,。
 

实验环境
server虚拟机重置:
设定主机名字server
IP地址 :物理机+100
yum 源配置好 
如果遇到无法挂载,查看uid,然后kill 9 uid

Desktop重置:

设定主机名字client
IP 地址:物理机+20
yum源配置好

2.samba的安装与使用

server端:
1)文件安装

yum install samba samba-common samba-client


2)打开服务

systemctl start smb


3)火墙关闭

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service


4)samba用户的创立,查看,删除

一、添加用户

smbpasswd -a student      ##必须服务端存在的用户

二、列举用户

pdbedit -L


三、删除用户

pdbedit -x student

现在创建两个用户,一个名为student,一个为westos

5)内核防火墙

getenforce
setenforce 0    ##设置为警告模式

client端
1)客户端安装

yum install samba-client -y

2)查看用户的登陆

匿名用户:smbclient -L //172.25.254.185


以用户身份查看:smbclient -L //172.25.254.185 -U westos

3)用户登陆

匿名登陆:smbclient //172.25.254.152/westos    ##登陆不上


指定用户登陆:smbclient //172.25.254.152/westos -U westos

挂载上传:将server的目录挂载到client上。
存储分离手段:众多服务器收集到的信息存储到一个不对外开放的存储器,抵抗攻击,一个主机挂掉以后,别的主机还可以从存储器取出数据。

mount -o username=westos,password=westos //172.25.254.152/westos /mnt

实验可以看出,登陆的是westos 的家目录

2.samba的配置文件

设置server端配置文件:vim /etc/samba/smb.conf

1)设置域名

89         workgroup = MYGROUP  改为  workgroup = westos

 workgroup = westos:

查看结果,domain变为westos


2)samba的访问控制


控制一:允许访问家目录


内核开启的状态下,开启samba
setsebool -P samba_enable_home_dirs on

实验结果


控制二:黑白名单


hosts allow=172.25.254.152

172.25.254.85登陆

172.25.254.105登陆


hosts deny= 172.25.254.152

172.25.254.85登陆

172.25.254.105登陆


3.共享文件的设定

server端

1)创建文件/westos,配置文件内编写目录

mkdir /westos


配置文件内编写
322         [wen]                                  ##共享自己创建的文件
323         comment=shis file           ##说明
324         path = /westos                  ##绝对路径
325
326         [mntdir]
327         comment=mnt directory
328         path=/mnt                        ##系统原来的目录

2)访问


用户自己创建的文件:修改安全上下文    ##不修改安全上下文无法访问
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF

如果是共享系统建立的文件,必须开放selinux对samba的权限
getsebool -a |grep samba
setsebool -P samba_export_all_rw on  #开启读写

3)samba的配置文件:vim /etc/samba/smb.conf    ##修改完重启服务

修改一:可写配置

writable = yes


修改目录权限 chmod 777 /westos


上传

!ls :查看可以上传的文件,        ##为当前目录的文件


修改二:指定用户和组可写

指定某一个用户可写
write list = westos


组可写 @ +
write list = @westos

测试student用户无法写

现在修改student的额外组为westos

测试可以写

修改三:指定用户和组可以登陆

那些用户可以登陆访问
valid users = student

测试student用户可以登陆。westos用户不可登陆


组可以访问
valid users = +student

测试twetos不可以登陆

修改westos的额外用户组为student

测试westos可以登陆

修改四:smbclient -L //172.25.254.152/wen -U westos 下面的目录可以发现


是否可以发现共享的目录    ##可发现所有的共享目录
browseable = yes

测试前

修改为

修改后无法看到wen的文件

修改五:以超级用户身份登陆

admin users = westos                  ##westos 以超级用户身份登陆

修改前上传一个文件

在server查看所属用户

修改为

重新上传文件

server端查看拥有者为root用户

修改六:匿名用户登陆共享目录


windows的匿名名字guest
linux的匿名名字anonymous
映射名字 map to guest= bad user

server端
guest ok = yes                                    ##允许匿名用户登陆
map to guest = bad user                  ##映射windows的匿名用户到linux的你名用户

client端:

smbclient  //172.25.254.185/wen -U guest

4.samba的多用户挂载

客户端root用户挂载后,切换到普通用户后,普通用户可以看到挂载目录的内容。存在安全问题

客户端的samba安全锁:限制没有通过认证的用户访问samba

client端
1)安装

yum install cifs-utils.x86_64 -y
查看手册

2)创建认证文件

建立文件 vim /root/smbpass
编写内容
username=westos
password=westos

3)修改权限 只有用户有权限600

chmod 600 /root/smbpass

4)客户端root用户挂载


mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.152/wen /mnt/
                              指定认证方式    普通用户可以认证    多用户登陆

5)切换用户查看/mnt

6)添加用户认证

添加用户cifscreds add -u student 172.25.254.152
输入密码:用户的密码

如果添加错误
[hello@client ~]$ cifscreds add -u student 172.25.254.152
You already have stashed credentials for 172.25.254.152 (172.25.254.152)
If you want to update them use:
    cifscreds update
清除
cifscreds clearall
重新挂载会清除记录


5.自动挂载

vim /etv/fstab

//172.25.254.185/wen  /mnt  cifs defaults,username=student,password=student  0   0



 

猜你喜欢

转载自blog.csdn.net/qq_41627390/article/details/84571930