Linux系统中CIFS文件系统

本次实验环境:

server虚拟机
1.设置IP信息( 172.25.254.117)
2.配置yum源
3.修改服务端主机名server
desktop虚拟机
1.设置IP信息
172.25.254.217
2.配置yum源
3.修改服务端主机名desktop

Samba简介:

Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux 和 Windows 系统中进行文件共享、打印机共享更容易实现.Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,提供CIFS(Common Internet File System)协议,由服务器及客户端程序构成.
应用场景:
支付宝用户将个人信息上传,当服务器存储损坏,用户信息丢失了,如何处理?
支付宝用户注册时,注册的那台服务器挂掉,如何处理?
支付宝用户支付时,服务器挂掉会显示支付宝余额不足,这是不允许的,如何处理?
支付宝会用很多台服务器来实现用户注册,防止某台服务器挂掉,影响用户注册。系统和存储放在一块,对外开放的系统安全性要差。所以有一台不共享的存储设备,这台主机是不对外开放的,所有用户信息都放在这台存储设备中(存储分离的手段),当有一台主机损坏时,用户可以通过其他主机来访问存储设备中的用户信息。存储分离-数据被访问更加高效。

CIFS介绍:

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

一. CIFS 文件系统的安装和配置

1.在服务端安装samba samba-common samba-client

yum install samba samba-common samba-client -y  ##安装smb服务

在这里插入图片描述
2.打开samba服务,关闭防火墙

systemctl start smb                             ##开启smb服务
firewall-cmd --list-all                         ##查看火墙策略
systemctl stop firewalld                        ##关闭火墙
systemctl disable firewalld                     ##火墙开机不自启

Linux系统中CIFS文件系统_第1张图片
3设置内核级火墙为警告模式(情况1)
getenforce ##查看内核级火墙状态
Enforcing ##如果显示为Enforcing
setenforce 0 ##设置内核级火墙为警告模式
在这里插入图片描述
4增加smb用户,增加的smb用户必须是系统中已经存在的用户

smbpasswd -a student                         	##添加smb登陆用户student
smbpasswd -a westos                          	##添加smb登陆用户westos,因为westos用户不存在,显示添加失败

Linux系统中CIFS文件系统_第2张图片

useradd westos                               	##创建用户westos
smbpasswd -a westos                          	##添加smb登陆用户westo

在这里插入图片描述

pdbedit -L      				##显示系统中的smb用户                               
pdbedit -x student				##删除某一指定smb用户

在这里插入图片描述

ls -ld /home/westos/                            ##查看共享目录/home/westos/的权限
cd /home/westos                                 
touch westosfile                                ##在/home/westos/创建westosfile

在这里插入图片描述
客户端desktop:
1.安装 samba-client

yum install samba-client -y           		##安装smb客户端

在这里插入图片描述
2.匿名用户在不知道root密码的前提下查看不了内容

smbclient -L //172.25.254.117         		##不知道root密码。查看不了里边的内容

Linux系统中CIFS文件系统_第3张图片
3.用smb用户westos身份显示内容

smbclient -L //172.25.254.117 -U westos  	##用smb用户westos身份显示内容

Linux系统中CIFS文件系统_第4张图片
4.匿名用户访问共享服务器的文件共享地址

smbclient //172.25.254.117/westos   		##匿名用户访问共享服务器的文件共享地址

在这里插入图片描述
5.用smb身份westos登陆smb

smbclient //172.25.254.117/westos -U westos  	##以westos身份访问共享服务器的文件共享地址

Linux系统中CIFS文件系统_第5张图片

二.smb用户挂载

客户端:

mount -o username=westos,password=westos //172.25.254.117/westos /mnt  ##挂载

Linux系统中CIFS文件系统_第6张图片

cd /mnt            
touch file{1..5}   ##创建五个file文件  

在这里插入图片描述服务端可以看到这五个文件
在这里插入图片描述

三.smaba的访问控制

1.服务端设置内核级火墙为强制模式模式(情况2)

getenforce 					##查看内核级火墙状态
Permissive					##之前设置的是警告模式
setenforce 1					##设置内核级火墙为强制模式

在这里插入图片描述
客户端

smbclient //172.25.254.117/westos -U westos

输入密码后,查看内容,我们发现系统提示访问被拒绝
在这里插入图片描述
在服务端查看samba_enable_home_dirs的sebool值,并将其打开。

getsebool -a | grep samba          		##查看sebool值
setsebool -P samba_enable_home_dirs on		##打开开启selinux上控制samba的接口(-P表示永久设定)

Linux系统中CIFS文件系统_第7张图片
Linux系统中CIFS文件系统_第8张图片
重新在客户端以westos身份登陆查看内容,成功

smbclient //172.25.254.117/westos -U westos

Linux系统中CIFS文件系统_第9张图片
2.smb域名修改
查看smb的主配置文件

rpm -qc samba-common

在这里插入图片描述

vim /etc/samba/smb.conf
89行 workgroup = WESTOS
systemctl restart smb.service ##重启服务可以不做

在这里插入图片描述
在这里插入图片描述

smbclient //172.25.254.117/westos -U westos

在这里插入图片描述
域名由MYGROUP修改成WESTOS
3.smb访问允许(白名单)

vim /etc/samba/smb.conf
96行   hosts allow =172.25.254.217  ##smb只允许IP为172.25.254.217虚拟机访问

在这里插入图片描述
在这里插入图片描述
白名单之外的用户是无法访问的:

smbclient //172.25.254.117/westos -U westos    ##IP为172.25.254.117虚拟机,无法访问

在这里插入图片描述
白名单上的用户可以访问:

smbclient //172.25.254.117/westos -U westos     ##只有IP为172.25.254.217虚拟机可以访问

Linux系统中CIFS文件系统_第10张图片
4.smb访问拒绝(黑名单)

vim /etc/samba/smb.conf
97行 hosts deny =172.25.254.117   ##拒绝172.25.25.254.117虚拟机smb访问
systemctl restart smb.service

在这里插入图片描述

黑名单上的用户无法访问:

smbclient //172.25.254.117/westos -U westos   ##172.25.25.254.117虚拟机smb访问共享目录被拒绝

在这里插入图片描述

四.smb共享目录

(一) smb上共享自己建立的目录

1.建立目录

mkdir /westos

2.修改smb的主配置文件

vim /etc/samba/smb.conf
         [linux]  			##用户可以看到的共享名称
         comment = westos dir share	##用户可以看到的共享描述
         path = /westos			##共享目录的绝对路径

在这里插入图片描述
3.重启服务

systemctl restart smb.service 

在这里插入图片描述
4.修改安全上下文

ls -Zd /westos/      					##查看安全上下文
semanage fcontext -a -t samba_share_t '/westos(/.*)?'   ##修改安全上下文
restorecon -RvvF /westos/

Linux系统中CIFS文件系统_第11张图片
5.客户端用户可以查看到刚建立的目录

smbclient //172.25.254.117/linux -U westos

在这里插入图片描述
(二) smb上共享系统目录

1.修改smb的主配置文件

vim /etc/samba/smb.conf
	[mnt]				##共享的系统目录
        comment =mnt directory		##共享系统目录的描述
        path= /mnt			##共享系统目录的绝对路径

在这里插入图片描述
2.重启服务

systemctl restart smb.service

在这里插入图片描述
3.开放权限使得不再对smb读服务有任何限制
前面提到自己建立的目录可以通过修改安全上下文的方式,系统目录也可以通过修改安全上下文使得smb服务可以用。但是系统目录/mnt不是只有smb服务用,如果修改了安全上下文,修改后别的服务用不了,显然是不合理的。
虽然开放权限使得所有人对smb读服务没有任何限制对于系统来说不安全,但是没有办法,满足客户需求,必须怎么做!

getsebool -a | grep samba
setsebool -P samba_export_all_ro on       ##开放权限

Linux系统中CIFS文件系统_第12张图片
Linux系统中CIFS文件系统_第13张图片
4.客户端可以看到/mnt里的内容

smbclient //172.25.254.117/mnt -U westos

Linux系统中CIFS文件系统_第14张图片
(三) 共享目录的功能设定

1.所用用户都可以写

vim /etc/samba/smb.conf
writeable = yes
systemctl restart smb.service

在这里插入图片描述
Linux系统中CIFS文件系统_第15张图片
测试
Linux系统中CIFS文件系统_第16张图片
2.对于特定的组的用户可写

vim /etc/samba/smb.conf
;	writeable = yes   	##屏蔽掉对所有人可写
	write list =@westos	对于组是westos的用户可以写
systemctl restart smb.service

在这里插入图片描述
在这里插入图片描述

usermod -G westos student     ##用户student附加组是westos

Linux系统中CIFS文件系统_第17张图片
Linux系统中CIFS文件系统_第18张图片
3.隐藏目录

vim /etc/samba/smb.conf
browseable = no      ##隐藏
systemctl restart smb.service

在这里插入图片描述
Linux系统中CIFS文件系统_第19张图片

4.设定指定用户为root用户,指定用户上传的文件的拥有人是root

vim /etc/samba/smb.conf
	admin users= westos           ##创建的用户是以root的身份,普通用户上传的文件的拥有人是root
systemctl restart smb.service 

Linux系统中CIFS文件系统_第20张图片
Linux系统中CIFS文件系统_第21张图片
westos用户上传的文件的拥有人是root
在这里插入图片描述
5.匿名用户上传的文件

vim /etc/samba/smb.conf
126	map to guest = bad user
330	guest ok =yes
systemctl restart smb.service

在这里插入图片描述
Linux系统中CIFS文件系统_第22张图片
Linux系统中CIFS文件系统_第23张图片

五.smb的多用户挂载

在配置文件设置匿名用户不允许访问的前提下,客户端root用户以服务端westos身份挂载访问共享目录
Linux系统中CIFS文件系统_第24张图片
切换到客户端student用户,竟然可以访问共享目录和创建目录。显然是不安全不合理的
Linux系统中CIFS文件系统_第25张图片
客户端设置smb安全锁,使得客户端限制没有通过smb认证的客户不可以用用户身份.
1.客户端安装认证插件

yum install cifs-utils -y ##安装认证插件

在这里插入图片描述
2.查看该软件的man文档

man mount.cifs
rpm -qa | grep samba

在这里插入图片描述
3.创建smb用户的认证文件

vim /root/smbpass
username=westos
password=westos
chmod 600 /root/smbpass ##为了安全设置认证文件权限为600

4.挂载

mount -o credentials=/rootsmbpass,sec=ntlmssp,multiuser //172.25.254.117/linux /mnt/

Linux系统中CIFS文件系统_第26张图片

cifscreds add [-u username] [-d]        ##添加认证用户
cifscreds clear [-u username] [-d]      ##清除指定已认证的用户
cifscreds clearall                                   ##清除所有认证用户
cifscreds update [-u username] [-d]     ##更新认证信息

Linux系统中CIFS文件系统_第27张图片
在这里插入图片描述
Linux系统中CIFS文件系统_第28张图片

你可能感兴趣的:(linux)