linux之CIFS文件系统

Linux系统中CIFS文件系统

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可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现

 实验环境:

reset 虚拟机server和desktop
server虚拟机
1.设置IP信息 
172.25.254.147
2.配置yum源
3.修改服务端主机名server
hostnamectl set-hostname server

desktop虚拟机
1.设置IP信息
172.25.254.247
2.配置yum源
3.修改客户端主机名client
hostnamectl set-hostname client

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                     ##火墙开机不自启

3.设置内核级火墙为警告模式(情况1)

getenforce    	 				##查看内核级火墙状态
Enforcing                                       ##如果显示为Enforcing
setenforce 0                                    ##设置内核级火墙为警告模式

4.增加smb用户,增加的smb用户必须是系统中已经存在的用户

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

 

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.147         		##不知道root密码。查看不了里边的内容

3.用smb用户westos身份显示内容

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

4.匿名用户访问共享服务器的文件共享地址

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

5.用smb身份westos登陆smb

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

smb用户挂载和创建文件

客户端:

mount -o username=westos,password=westos //172.25.254.147/westos /mnt  ##挂载
cd /mnt            
touch file{1..5}   ##创建五个file文件   

服务端:

ls /home/westos
file1  file2  file3  file4  file5
服务端:
[root@server westos]# ls /home/westos
file1  file2  file3  file4  file5

三.smaba的访问控制

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

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

客户端

smbclient //172.25.254.147/westos -U westos

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

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

重新在客户端以westos身份登陆查看内容,成功

smbclient //172.25.254.147/westos -U westos

2.smb域名修改

查看smb的主配置文件

rpm -qc samba-common
vim /etc/samba/smb.conf
89行 workgroup = WESTOS
systemctl restart smb.service ##重启服务可以不做
smbclient //172.25.254.147/westos -U westos
##域名由MYGROUP修改成WESTOS

3.smb访问允许(白名单)

vim /etc/samba/smb.conf
96行   hosts allow =172.25.254.247  

白名单之外的用户是无法访问的:

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

白名单上的用户可以访问:

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

4.smb访问拒绝(黑名单)

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

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

smbclient //172.25.254.147/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/

5.客户端用户可以查看到刚建立的目录

smbclient //172.25.254.147/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       ##开放权限

4.客户端可以看到/mnt里的内容

smbclient //172.25.254.147/mnt -U westos

共享目录的功能设定

1.所用用户都可以写

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

2.对于特定的组的用户可写

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

3.隐藏目录

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

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

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

5.匿名用户上传的文件

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

五.smb的多用户挂载

在配置文件设置匿名用户不允许访问的前提下,客户端root用户以服务端westos身份挂载访问共享目录之后,切换到客户端student用户,竟然可以访问共享目录和创建目录。显然是不安全不合理的
客户端设置smb安全锁,使得客户端限制没有通过smb认证的客户不可以用用户身份.

1.客户端安装认证插件

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

2.查看该软件的连机帮助

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.147/linux /mnt/
cifscreds add [-u username] [-d] <host|domain>       ##添加认证用户
cifscreds clear [-u username] [-d] <host|domain>     ##清除指定已认证的用户
cifscreds clearall                                   ##清除所有认证用户
cifscreds update [-u username] [-d] <host|domain>    ##更新认证信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值