Linux系统工程师 3.5 -- 网络文件系统管理

目录

Samba服务

1.sambia服务简介

2.samba基本信息

3.samba的安装与启用

4.samba中添加用户

5.samba用户访问

6.samba服务共享目录

#目录的访问

#目录建立

#系统级目录

7.samba的访问控制

全局访问控制:

单个目录访问控制及配置参数:

8.匿名用户登录

9.autofs+samba

实验:

配置方式:

10.多用户认证

问题提出

解决

nfs服务

1.nfs服务的启用及测试

2.nfs配置

3.nfs配置参数

不指定用户参数:显示为nobody

指定用户为1000,组为1000:显示为westos

指定root用户挂载不转换身份:显示为root

4.nfs+autofs自动挂载

5.iscsi

服务器端:

客户端:

6.永久挂载和删除设备 

 永久挂载:

 删除设备:


Samba服务

1.sambia服务简介

作用:
smb = Server Message Block    Sum
cifs = Common Internet File System Miscrosoft
windows系统文件共享是甬道的协议smb
smb是由miscrosoft+sun
Linux cifs

2.samba基本信息

服务启动脚本:    smb.service
主配置目录:    /etc/samba/
主配置文件:    /etc/samba/smb.conf
安全上下文:    samb_share_t
端口:        139    445
安装包:    samba    samba-common.noarch    samba-client.x86_64
                服务主体            配置文件                        客户端

3.samba的安装与启用

samba的安装:
dnf install samba samba-common.noarch samba-client.x86_64 -y
启用:enable
火墙添加:
firewall-cmd --permanent --add-service=samba

smbclient -L //172.25.254.120

hostnamectl:查看系统版本

4.samba中添加用户

smbpassqd -a westos    westos用户必须在smba服务器中真实存在,smb密码是独立的密码,与westos登陆密码无关
smbpasswd -a lee    当lee用户不存在时显示添加失败

(vim /etc/hosts    172.25.254.120 westosa_storage.westos.org    添加本地解析,使访问更快)

5.samba用户访问

pdbedit    -L    查看smb用户
    -x    删除smb用户

smbclient -L //172.25.254.120 -U westos        登录westos
smbclient //172.25.254.120/westos -U westos    //ip/共享文件夹    -U登录用户
Enter SAMBA\westos's password:
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*    selinux影响,smb用户不能访问自己的家目录,需要打开该权限    (在配置文件中有说明 27行)

6.samba服务共享目录

cd /etc/samba/
cp smb.conf.example smb.conf -p        用配置文件模板覆盖主配置文件

#目录的访问

setsebool -P samba_enable_home_dirs on    调整selinux中的smb波尔直,使用户可以访问家目录

#目录建立

mkdir westos_share
touch /westos_share/file{1..3}

vim /etc/samba/smb.conf
[westos_share]        共享名称
comment = westos share    说明
path = /westos_share    制定共享的路径

systemctl restart smb.service        重启服务
smbclient -L /172.25.254.120 -U westos    查看显示共享成功
smbclient //172.25.254.120/westos_share -U westos    当查看文件时又出现selinux报错


查看配置文件30行提示:用户自己建立的目录如需通过smb共享,则需要指定安全上下文samba_share_t
semanage fcontext -a -t samba_share_t '/westos_share(/.*)?'
restorecon -RvvF /westos_share/

#系统级目录

直接在配置文件中添加
[etc]
comment = 系统说明
path = /etc
smbclient -L /172.25.254.120 -U westos    查看显示共享成功
                    但当查看文件会出现不同的错误情况
                    查看配置文件根据44行提示设置
getsebool -a |grep samba
samba_export_all_ro --> off    设为on 时 selinux将不再对samba服务访问文件时的安全上下文进行限制
samba_export_all_rw --> off    写限制

setsebool -P samba_export_all_ro on    设置开启

7.samba的访问控制

全局访问控制:

91行 hosts allow = 172.25.254.120    #只允许120号主机访问当前samba服务器hosts deny 表示拒绝(此处设定的是全局访问控制,影响本台smb服务的所有共享)

单个目录访问控制及配置参数:

[westos_share]
comment = westos share
path = /westos_share
hosts allow = 172.25.254.120    #在最后添加表示westos_share 这个共享目录被限制只能被120号主机访问(针对单个目录生效)
browseable = no            #在列出共享资源列表时隐藏共享目录(yes表示显示此目录)
valid users = westos        #此共享只能通过samba用户westos登录
valid users = @westos        # @ 或 + 表示westos组成员可以访问此共享资源目录
writable = yes            #可写
write list = westos        #对westos用户可写
write list = +westos        # + 或 @ 表示对westos组成员可写

mount //172.25.254.120/westos_share /mnt/ -o username=westos,password=westos         将westos_share 挂载到/mnt/下,之后建立的文件将自动归属到该共享目录中

chmod 777 /mnt/           #给其读写等权限

touch /mnt/file               #用该方法可以测试该共享目录的写权力是否开放。

8.匿名用户登录

默认情况下匿名用户不能使用samba资源
smbclient //172.25.254.120/westos_share    报错"tree connect failed: NT_STATUS_ACCESS_DENIED"

119行    map to guest = bad user        #将没有身份的用户映射为guest账号
[westos_share]
guest ok = yes                         #此共享目录允许guest用户登录

smbclient //172.25.254.120/westos_share    #没有指定用户登陆成功,为guest匿名登录方式,此处不需要密码,直接回车,可以正常显示。
mount //172.25.254.120/westos_share /mnt/ -o username=guest    #指定为匿名用户挂载


9.autofs+samba

实验:

mount //172.25.254.120/westos_share /westos/samba/ (目的)

在客户端下载dnf install autofs -y
设定使用时自动挂载,不用时自动卸载

配置方式:

vim /etc/auto.master        #编写配置文件
/westos /etc/auto.share
/westos    最终挂载点的上层目录
/etc/auto.share    子挂载策略文件,名称自定义,且在系统中默认不存在
vim /etc/auto.share
samba        -fstype=cifs,username=westos,password=westos    ://172.25.254.120/westos_share
最终挂载点的相对路径    挂载参数                挂载服务器ip及资源
            -fstype 挂载资源的文件系统类型

vim /etc/autofs.conf    配置文件
timeout = 5    挂载资源在5秒以上无任何程序使用则自动卸载(默认时间为300秒)
systemctl restart autofs.service

10.多用户认证

问题提出

>root挂载在/mnt/中的共享资源也能被普通用户查看,出现越级漏洞
>用户挂载时要书写账号/密码,可以被查看

解决

dnf install cifs-utils -y    安装多用户插件

vim /root/smbpasswd    将账户密码写入文件并设定安全权限
username=westos        
password=westos
chmod 600 /root/smbpasswd

mount -o credentials=/root/smbpasswd,multiuser,sec=ntlmssp //172.25.254.120/westos_share /mnt/
    credentials    参数指定密码文件后密码被隐藏
    multiuser    多用户认证参数,没有通过认证的用户不可以使用smb上的资源
    sec=ntlmssp    用户使用到的认证方式

su - westos
ls /mnt/    报错
cifscreds --help
cifscreds add -u westos 172.25.254.120    此处如果输错密码也能登进,但仍被禁用
cifscreds clearall    删除所有后重新添加
ls /mnt/    可以正常显示

nfs服务

1.nfs服务的启用及测试

dnf install nfs-utils.x86_64 -y        电脑中已安装好
systemctl enable --now nfs-server.service
2049    nfs 的端口
less /etc/services            查看所有在etc下服务的端口
netstat -antlupe  | grep 2049        查看端口

nfs的启用:
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
客户端测试:
[root@westosb ~]# showmount -e 172.25.254.120	列出nfs服务器中的共享资源
Export list for 172.25.254.120:

2.nfs配置

vim /etc/exports    共享策略文件
/westosdir      *(ro,sync) 172.25.254.220(rw,sync,no_root_squash)
共享目录              共享参数
exportfs -rv        使共享策略文件生效

3.nfs配置参数

sync				更改成功后同步数据
async				时时同步(更准确,但更占资源)
rw				读写
ro				只读
no_root_squash			root用户挂载不转换身份
anonuid=1000,anongid=1000	指定挂载时使用用户为1000,不是默认的nobody

测试:	在服务器上	创建要共享的目录/westosdir 并给她777权限
			编写共享策略文件 参数自定
			使共享策略文件生效
	在客户端	挂载/westosdir 到 /mnt
                        mount 172.25.254.120:/westosdir /mnt/
			新建/mnt/file文件<F2>
			ls -lR /mnt查看新建文件的信息

不指定用户参数:显示为nobody

指定用户为1000,组为1000:显示为westos

 

指定root用户挂载不转换身份:显示为root

 

4.nfs+autofs自动挂载

参看上一节autofs内容
dnf install autofs -y	安装服务
vim /etc/auto.master	主配置文件
/westos    /etc/auto.nfs
/westos	        最终挂载点的上层目录
/etc/auto.nfs	子挂载策略文件,名称自定义,且在系统中默认不存在 

vim /etc/auto.nfs
nfs		172.25.254.120:/westosdir
最终挂载点的相对路径	挂载服务器ip及资源

vim /etc/autofs.conf	
timeout = 5		5秒自动刷新

注意:当配置文件中写有两个相同的上级挂载目录时,须将另一个注释掉,否则会有冲突

5.iscsi

服务器加一块硬盘5GB
fdisk -l    查看硬盘信息
fdisk /dev/vdb    ---> /dev/vdb1 +2GB

 

服务器端:

dnf install targetcli -y	安装服务
targetcli
/> ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 0]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 0]
  o- loopback ..................................................... [Targets: 0]
/> /backstores/block create westos:storage1 /dev/vdb1
                        软件中设备的别名	/dev/vdb1系统中真实的设备
/> /iscsi create iqn.2021-08.org.westos:storage1
		建立对外的共享名称,iqn的命名方式
		iscsi限定名称  格式iqn.YYYY-MM.域名反写:别名
/> /iscsi/iqn.2021-08.org.westos:storage1/tpg1/luns create /backstores/block/westos:storage1
		把共享名称和内部指定设备关联
/> iscsi/iqn.2021-08.org.westos:storage1/tpg1/acls create iqn.2021-08.org.westos:westoskey
		为共享设定访问key(此处用westoskey代替实验效果,真实情况下需要用命令生成key)加密字符
/> exit
firewall-cmd --permanent --add-port=3260/tcp	开放服务的端口让客户端可以访问
firewall-cmd --reload

ls显示:蓝色的为目录,紫色的为目录中的命令

设置完成后效果如下:

客户端:

dnf search iscsi
dnf install iscsi-initiator-utils.x86_64 -y	客户端软件
systemctl status iscsid				对客户端配置控制服务
systemctl status iscsi				客户端对于资源利用的服务

实验:

iscsiadm -m discovery -t st -p 172.25.254.120	在服务器未设置火墙的情况下连接失败
	-m:mode	
	-t:指定要识别的设备类型
	-p:指定资源ip
设置火墙后显示连接成功,共享信息可以查询:
172.25.254.120:3260,1 iqn.2021-08.org.westos:storage1

iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -l
	-T:指定要访问的共享设备名
	-l:登录共享设备
因为在客户端没指定服务端的共享key,所以无法登录
设置:	vim /etc/iscsi/initiatorname.iscsi	在此文件中指定共享key
	InitiatorName=iqn.2021-08.org.westos:westoskey

fdisk -l		正常登录后可以查看到服务器的共享硬盘
fdisk /dev/sda		
mkfs.xfs /dev/sda1	
mount /dev/sda1 /mnt/	

 

 

6.永久挂载和删除设备 

 永久挂载:

[root@westosb ~]# blkid		#查看设备信息,因为网络设备名称因为通信缘故可能会发生变化,所以推荐使用设备id进行设备挂载指定
/dev/vda1: UUID="5640a252-d218-4377-917b-f7857918682a" TYPE="xfs" PARTUUID="34fd8722-01"
/dev/vda2: UUID="e79a5f1b-345e-4f76-be18-3f0a069fc81c" TYPE="swap" PARTUUID="34fd8722-02"
/dev/vda3: UUID="62f69d75-abe0-4c6b-a59c-dd69b6f80965" TYPE="xfs" PARTUUID="34fd8722-03"
/dev/sda1: UUID="a567741a-c336-4cdf-b462-a94b8349706e" TYPE="xfs" PARTUUID="f623607b-01"

vim /etc/fstab			编写开机自动挂载命令
UUID=a567741a-c336-4cdf-b462-a94b8349706e /mnt                  xfs     defaults,_netdev  0 0
--此处若不加 _netdev 参数,系统启动会报错 
(网络设备必须在网络和iscsi服务启动后才能识别,/etc/fstab文件的挂载是优选的,会导致系统启动失败)
解决:在启动报错界面输入超级用户密码,编写策略文件,添加_netdev 参数
_netdev 参数:指定此设备在挂载时先启动网络和iscsi服务后在生效

 删除设备:

客户端
vim /etc/fstab	删除网络设备自动挂载信息
umount /mnt	卸载设备

tree /var/lib/iscsi/	在客户端读取到的服务器所有的数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -u	退出登录(仅退出登录,设备消失但数据还在,重启服务后设备会再次出现)
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -o delete	删除客户端中此网络设备识别的数据
systemctl restart iscsi	重启服务
fdisk -l		查看设备

服务器
targetcli
/> clearconfig confirm=True    清空服务器中iscsi的共享数据
/>ls                查看数据显示恢复到原始状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值