2.8 网络文件系统

1. samba

1.1 samba服务简介

smb:Server Message Block
cifs:Common Internet File System Miscrosoft
Windows使用smb协议系统共享文件
Linux使用cifs协议共享文件

1.2 samba基本信息

信息 说明
smb.service 服务启动脚本
/etc/samba 主配置目录
/etc/smb.conf 主配置文件
samba_share_t 安全上下文
139 445 端口
samb-common 安装包

1.3 samba的安装和启用

企业的存储分离机制
samba的作用:Linux和Windows可以实现数据的互通

1.3.1 Windows共享文件

  1. Windows共享文件

高级共享:配置权限
运行:查看共享
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. Linux访问共享的数据

安装samba 的客户端

smbclient -L //192.168.0.6
smbclient -L //192.168.0.6/自己设置的下载项 -U LENOVO

在这里插入图片描述挂载:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.3.2Linux共享文件

1.3.2.1 启用samba服务

getenforce
enforcing

安装samba服务端,samba测试端(用于最后测试)

dnf search samba
dnf install samba.x86_64 samba-common.noarch samba-client -y

samba用户必须是本地用户
添加yao用户,westos用户

smbpasswd -a yao
smbpasswd -a westos

列出用户

pdbedit -L

删除用户

pdbedit -x yao

在这里插入图片描述

重启服务并测试

systemctl restart smb.service
firewall-cmd --permanent  --add-service=samba
firewall-cmd --reload
smbclient -L 192.168.0.18
smbclient -L 192.168.0.18 -U yao

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

1.3.2.2 samba用户访问家目录

selinux是enforcing时,不允许访问用户的家目录
在这里插入图片描述

getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on

在这里插入图片描述

smbclient //192.168.0.18/yao -U yao
smb: \>ls

在这里插入图片描述

1.3.2.3 访问自己创建的目录

mkdir /westos
touch /westos/file{1..10}

生成新的配置文件

cd /etc/samba
mv smb.conf smb.conf.bak		//备份操作
mv smb.conf.example smb.conf

在这里插入图片描述

semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos

在这里插入图片描述

编辑配置文件
写入315行:

	[WESTOS]					//共享名称
	comment = local dir westos	//共享说明
	path = /westos				//共享路径
vim /etc/samba/smb.conf
systemctl restart smb.service

在这里插入图片描述

测试

smbclient -L //192.168.0.18 -U yao
smbclient -L //192.168.0.18/WESTOS -U yao

在这里插入图片描述

1.3.2.4 共享系统级别的目录

编辑配置文件
写入319行:

	[MNT]
	comment = /mnt dir
	path = /mnt
vim /etc/samba/smb.conf
systemctl restart smb.service

在这里插入图片描述

检查安全上下文

ls -Zd /mnt

mnt的上下文不能轻易改,可能会造成只有smb可以访问,其他人不能访问
samba开启所有读的功能

getsebool -a | grep samba
setsebool -P samba_export_all_ro on 

在这里插入图片描述

测试

smbclient //192.168.0.18/MNT -U yao

在这里插入图片描述

1.4 samba访问控制

客户端,服务端都安装samba-client
默认情况下,samba允许任何人访问资源

1.4.1全局配置

  1. 白名单

添加91行:hosts allow = 192.168.0.18
只允许18主机访问samba的资源
18可以进行挂载访问
19不能访问

vim /etc/samba/smb.conf
systemctl restart smb.service

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

  1. 黑名单

(先注释白名单)
添加92行:hosts deny=192.168.0.18
只有18主机不能访问samba的资源
mnt和wesros在19号主机(其他主机)可以访问

vim /etc/samba/smb.conf
systemctl restart smb.service

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

1.4.2 局部配置

(只针对个别共享)
在 [WESTOS] 下添加:hosts allow = 192.168.0.18
共享目录westos可以在18访问
共享目录westos不可以在19访问,但是可以访问共享目录mnt

vim /etc/samba/smb.conf
systemctl restart smb.service

(注意:我共享的是系统目录mnt,现在再次共享mn,t挂载到mnt下,会出现问题,可以挂载media下)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.4.3基于用户的访问控制

设定哪个用户可以访问共享

  1. 用户
    在 [MNT] 下添加:valid users = yao
    只有yao可以访问mnt共享目录
    username是yao,可以访问
    username是westos,不可访问mnt
vim /etc/samba/smb.conf
systemctl restart smb.service

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

  1. 用户组

在 [MNT] 下添加:valid users = +yao
yao的组成员可以访问该资源

vim /etc/samba/smb.conf
systemctl restart smb.service

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

1.5 samba命令参数

所有设定在服务端成生效

chmod 777 /westos
  1. 读写权限

yao和westos用户对/westos目录不可写,两人属于other
samba不允许写
开启写的功能
在 [WESTOS] 下添加:writeable=yes(注意:samba虽然可写,但还是要参考本地文件权限)

vim /etc/samba/smb.conf
systemctl restart smb.service

客户端

mount -o username=yao,password=westos //192.168.0.18WESTOS /mnt
cd  /mnt
touch  file

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

  1. 设定用户身份

上面的实验使用的是用户yao创建文件,但是,在客户端查看到的依旧是root用户
在这里插入图片描述在这里插入图片描述

在 [WESTOS] 下添加:write list =westos(服务器用户的yao)
只有用户yao可写

vim /etc/samba/smb.conf
systemctl restart smb.service

客户端

mount -o username=yao,password=westos //192.168.0.18WESTOS /mnt
cd  /mnt
touch  file

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

  1. 设定用户组身份

在 [WESTOS] 下添加:write list=@yao,只有yao组的成员可写
write list=+yao

vim /etc/samba/smb.conf
systemctl restart smb.service

客户端

mount -o username=yao,password=westos //192.168.0.18WESTOS /mnt
cd  /mnt
touch  file

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

  1. 浏览权力

在 [WESTOS] 下添加:browswable=no ,共享隐藏(即改即生效)
用户无法浏览共享资源

vim /etc/samba/smb.conf
systemctl restart smb.service

客户端

smbclient -L //192.168.0.18

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

  1. 匿名用户登陆权限

在 [WESTOS] 下添加:gust ok=yes(匿名用户可以访问)
在[GLOBAL]下添加:map to guest = bad user(必须写到global全局119行,否则不生效)
匿名用户可以直接使用共享
匿名用户:smbclient //192./WESTOS

vim /etc/samba/smb.conf
systemctl restart smb.service

客户端

mount -o username=guest,password="" //192.168.0.18WESTOS /mnt
df
smbclient //192.168.0.18/WESTOS

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

1.6 samba客户端的多用户认证

(每个人的认证都是独立的)

  1. 服务端

简化配置文件(此时,共享不可写)
在这里插入图片描述

  1. 客户端

登陆的westos用户是samba下发的账号,和主机上的westos用户不同
其他人应该使用自己的samba账号

cd /media
touch file
chmod 777 /media(客户端挂载后)

在这里插入图片描述

客户端漏洞:

此时登陆的westos是没有认证samba的用户
理论上可以对/media中的资源进行访问,但是不合理;
原则应该是,只有认证的用户才可以去查看samba的资源
该主机只有root用户注册了samba,但是,没有认证的westos系统账号依然可以看见samba的资源

su - westos
cd /media
ls

在这里插入图片描述

漏洞策略:对挂载安全设定

在客户端安装samba认证安全插件

dnf install cifs-utils -y

要求:
有挂载参数;
将密码账号写到文件里(隐藏密码);
设置多用户认证方式(让每个用户认证完,自己去挂载)

vim /root/smb_auth
username=yao
password=westos
chmod 600 /root/smb_auth

在这里插入图片描述在这里插入图片描述设定认证方式

sec=ntlmssp(3.8以上的版本)

在这里插入图片描述

mount //192.168.0.18 /WESTOS /media -o credentials=/root/smb_auth,multiuser,sec=ntlmssp
su - westos
cifscreds add -u westos 129.168.0.18		//认证,输入18的主机密码
cd /media
ls

如果上一次密码输入有误,需要clear一次

cifscreds clear -u westos 192.168.0.18
cifscreds add -u westos 192.168.0.18 

现在wesros可以使用自己的账号查看文件内容

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

2. NFS

2.1 安装并启用NFS

NFS是Linux和unix之间共享

服务端:

安装并启用

dnf install nfs-utils  -y
systemctl enable --now nfs-server
showmount -e 192.168.0.18	//查看18号主机的共享

在这里插入图片描述rpcbind分配端口,用端口去找mountd去查找有没有资源可以访问,
如果有,则去指引寻找nfs,没有的话,mountd会拒绝

火墙添加策略

firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
firewall-cmd --permanent --add-service=mount
firewall-cmd --reload
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload

客户端:

showmount -e 192.168.0.18

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

2.2 nfs服务的基本共享方式

(和samba的不同是,不需要认证,用到的用户都是nfs)

服务端:
在/etc/exports文件中写入:/westos *(ro)

vim /etc/exports
exportfs -rv

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

客户端:

showmount -e 192.168.0.18
mount 192.168.0.18:/westos /media 	//互联网远程目录的表示方式,远程目录挂载到/media
cd /media
ls

在这里插入图片描述

2.3 nfs配置中的常用参数

  1. 写权限

无法创建文件touch
在这里插入图片描述

服务端:

在/etc/exports文件中写入:/westos *(rw)

vim /etc/exports
exportfs -rv

客户端

mount 192.168.0.18:/westos  /media
cd /media
touch file
ls

在这里插入图片描述

  1. 修改用户身份

服务端查看客户端创建的新文件的用户和用户组是nfs:nobady
注意,系统本身目录的权限:chmod 777 /westos
在这里插入图片描述

服务端

设定客户端创建文件的用户身份是超级用户root
在/etc/exports文件中写入:/westos *(rw,no_root_squash)

vim /etc/exports
exportfs -rv

客户端

cd /media
touch file

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

  1. 指定用户身份

服务端

在/etc/exports文件中写入:/westos *(rw,anonuid=1001)

vim /etc/exports
exportfs -rv

客户端

cd /media
touch file

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

  1. 组身份的转换

服务端
在/etc/exports文件中写入:/westos *(rw,anongid=1001)

vim /etc/exports
exportfs -rv

客户端

cd /media
touch file

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

  1. async:实时同步数据到服务器
  2. sync:更改生成后同步数据到服务器

3. autofs自动挂载文件系统服务的部署

自动挂载,自动卸载

客户端

安装软件

dnf install autofs -y
systemctl enable --now autofs.service
ls -ld /net
cd /net/192.168.0.18/westos
ls
  1. 修改默认等待时间

默认等待300秒才可以卸载

修改配置文件的15行:timeout=5

vim /etc/autofs.conf
systemctl restart autofs
cd /net/192.168.0.18/westos		//自动挂载
cd								//自动卸载

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

  1. samba的挂载策略

(在一个相同的目录下,不能写2个挂载点)
(将2者samba和nfs写到一个文件里)

添加/etc/auto.master主挂载策略文件的14行:/media /etc/auto.nfs

vim /etc/auto.master
systemctl restart autofs.service

在这里插入图片描述
建立文件/etc/auto.nfs

nfs	192.168.0.18:/westos
samba -fstype=cifs,username=lee,password=westos //192.168.0.18/WESTOS /media/samba		//用这些参数将设备挂载到samba目录/media
vim /etc/auto.nfs
systemctl restart autofs.service

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

cd /media
ls			//没有内容,但是可以cd  samba
cd samba	//自动挂载
cd nfs
df

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

4. iscsi磁盘共享服务的部署

以上实验共享的是文件系统

18:服务端
19:客户端

18中有5G 的硬盘,进行磁盘分区

fdisk /dev/sdb
udevadm settle

在这里插入图片描述

4.1 iscsi设备部署

服务端:

安装插件

dnf install targetcli -y
systemctl enable --now target.service
targetcli			//进入新的环境
/> ls

在这里插入图片描述

建立共享的设备

/> /backstores/block create westos_storage /dev/sdb1

建立共享名称

/> /iscsi create iqn.2021-02.org.westos:storage

关联设备

/> /iscsi/iqn.2021-02.org.westos:storage/tpg1/luns create /backstores/block/westos_storage

设置密码

/> /iscsi/iqn.2021-02.org.westos:storage/tpg1/acls create iqn.2021-02.org.westos:westoskey
ls
exit			//退出

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

设置火墙策略(端口3260)

firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload

在这里插入图片描述

客户端:

安装客户端软件

dnf search iscsi
vim /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid
iscsiadm -m discovery -t st -p 192.168.0.18
iscsi -m node -T iqn.2021-02.org.westos:storage -p 192.168.0.18 -l
fdisk -l

man iscsiadm
-m:操作模式node结点认证
-l 登陆
-p设备IP端口
-T:设备名称
-t:发现设备的类型
在这里插入图片描述

4.2 iscsi设备删除

客户端

如果挂载了iscsi设备,就要先卸载umount

iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 192.168.0.18 -u			//退出登录
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 192.168.0.18 -o delete	//删除认证信息
tree /var/lib/iscsi/

在这里插入图片描述

服务端

targetcli
/> ls
/> /iscsi delete iqn.2021-02.org.westos:storage
/> clearconfig confirm=True			//永久删除所有的设定
/> ls

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

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/114102393
2.8