Linux中nfsiscsi共享服务的部署及安全优化详解

Posted 是大姚呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中nfsiscsi共享服务的部署及安全优化详解相关的知识,希望对你有一定的参考价值。

nfs、iscsi共享服务的部署及安全优化

1、nfs服务简介

NFS(Net File System)即网络文件系统,它是由SUN公司研制的UNIX表示层协议,能够使客户端主机访问网络上其余主机的文件系统资源。nfs的数据传输优化和安全性能要比samba好,其客户端和服务端组件是一体的,其服务由软件包nfs-utils提供,samba服务使用的是139、445固定端口,nfs默认使用的是2049端口,nfs被访问时的工作流程如下图所示:
在这里插入图片描述
当客户端主机访问nfs服务器上的共享资源时,会先访问服务器上的rpc-bind服务,rpc-bind会为客户端主机分配一个随机的访问端口号,客户端主机使用该端口号进一步访问服务器上的mounted软件,mounted软件负责对nfs服务器上所有共享资源进行控管,当客户端主机需要访问的共享资源存在时,mounted程序会进一步带领客户端主机通过2049端口访问nfs服务的共享资源,由于rpc-bind为客户端主机分配的访问端口号是随机的,所以nfs的安全性能要比samba好。

2、nfs基本信息

安装包nfs-utils
服务脚本nfs-server
共享配置文件/etc/exports
默认使用端口2049

3、nfs的安装与启用

实验步骤:
1)在westosa中安装nfs-utils(虚拟机默认安装过)并开启nfs-server服务,在nfs服务器westosa的防火墙中永久添加nfs、rpc-bind、mountd,刷新火墙使设定生效,编辑/etc/exports文件指定共享目录、共享列表和共享参数,完成后exportfs -rv使文件生效(!不能重启nfs-server服务)
在这里插入图片描述
在这里插入图片描述
2)此时在客户端主机westosb中可以通过以下两种方式访问共享资源:
方法一: showmount -e nfs服务器IP(相当于smbclient -L)查看nfs服务器上的所有共享资源
方法二: mount nfs服务器IP:/共享目录 挂载点挂载共享文件系统到访问客户端的指定位置处进行访问
在这里插入图片描述

4、nfs配置参数

anonuid=1000,anongid=1000 		##指定用户身份
sync 							##更改生成后同步数据到服务器
async 							##时时同步数据到服务器
rw 								##读写挂载
ro 								##只读挂载
no_root_squash 					##以root用户挂载不转换身份

实验步骤:
1)在进行参数设置之前,为了不使共享的本地文件系统的权限设定限制我们写入文件,需要将共享目录的权限设置为777,在nfs服务器westosa中编辑/etc/exports文件指定以只读方式挂载,完成后exportfs -rv使文件生效,此时挂载共享文件系统到访问客户端westosb的指定位置处后不能执行新建、删除文件等操作
在这里插入图片描述
编辑/etc/exports文件指定所有人以只读方式挂载,172.25.254网段的主机以读写方式挂载,此时挂载共享文件系统到访问客户端westosb(172.25.254.233)的指定位置处后可以执行新建、删除文件等操作
注意: 进行多个共享用户ro、rw权限设置时,后面的设定会覆盖掉前面的设定
在这里插入图片描述
2)在nfs服务器westosa的/etc/exports文件中不设定参数指定用户、用户组身份时,在客户端主机westosb挂载共享目录后,在共享目录中新建文件,查看新建文件的属性,其用户、用户组身份默认为nobody;使用id号指定用户、用户组身份时,在客户端主机westosb挂载共享目录后,在共享目录中新建文件,查看新建文件的属性得到的结果和在nfs服务器westosa共享目录查看新建文件属性得到的结果不一定相同,这是因为westosa、westosb中相同id号对应的用户可能不同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)在nfs服务器westosa的/etc/exports文件中设定no_root_squash即使用root用户身份挂载时不转换身份,此时在客户端主机westosb挂载共享目录后,在共享目录中新建文件,分别在westosa、westosb中查看新建文件的属性,其用户、用户组身份固定为root
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、nfs服务客户端共享优化—autofs自动挂载

a)nfs+autofs

实验步骤:
1)在客户端主机westosb中安装autofs软件并启动autofs服务,编辑主配置文件/etc/autofs.conf 设置资源闲置时间超出多久后自动卸载挂载资源
在这里插入图片描述
2)这里我们将nfs服务器westosa的共享目录/westosdir挂载到/westos/nfs下,在客户端主机westosb中编辑策略文件/etc/auto.master写入最终挂载点的上级目录、指定挂载子策略文件,编写挂载子策略文件/etc/auto.nfs指定将资源以指定参数方式挂载到最终挂载点,重启autofs服务后有westos目录,进入westos目录,查看目录显示目录中无内容,但此时执行cd命令可以直接进入最终挂载点nfs目录中,cd命令相当于执行了挂载操作,此时df查看可以看到共享资源WESTOS挂载到/westos/nfs下;cd切换出最终挂载点nfs目录,等待资源闲置时间超过主配置文件/etc/autofs.conf设置的资源闲置时间限制后,df查看可以看到共享资源WESTOS自动卸载
在这里插入图片描述
在这里插入图片描述
这里vers参数表示挂载时nfs使用协议的版本,挂载后可以mount命令查看到所设定的协议版本,卸载并编写挂载子策略文件/etc/auto.nfs修改挂载时nfs使用协议的版本,挂载后可以mount命令查看到协议版本号修改成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

b)多个共享目录名称的自动匹配挂载

实验步骤:
1)在nfs服务器westosa的共享目录/westosdir下建立多个子目录,在客户端主机westosb中编写挂载子策略文件/etc/auto.nfs指定将共享子目录/westosdir/westos1以指定参数方式挂载到子目录对应的最终挂载点/westos/westos1,重启autofs服务后,进入westos目录,查看目录显示目录中无内容,但此时执行cd命令可以直接进入共享子目录对应的最终挂载点westos1中,cd命令相当于执行了挂载操作,此时df查看可以看到指定的共享子目录挂载到其对应的最终挂载点下,但执行cd命令无法可以直接进入共享子目录/westosdir/westos2对应的最终挂载点westos2中,这是因为我们在挂载子策略文件中没有进行相应的设定
在这里插入图片描述
在这里插入图片描述
2)当需要在挂载时进行多个共享子目录名称的自动匹配时,需要在编写挂载子策略文件/etc/auto.nfs时使用通用匹配符*、&,重启autofs服务后,进入westos目录执行cd命令可以直接进入任意共享子目录对应的最终挂载点,此时df查看可以看到相应的共享子目录挂载到其对应的最终挂载点下
在这里插入图片描述

6、iscsi设备共享

samba和nfs共享的是文件系统的读写权限,iscsi直接共享的是设备的读写权限。其具体共享方式如下:

实验步骤:
1)在iscsi服务器westosa添加一块新的硬盘/dev/vdb,使用交互式分区方式fdisk /dev/vdb在该硬盘上新建一个大小为2G的设备/dev/vdb1
在这里插入图片描述在这里插入图片描述
2)在iscsi服务器westosa中安装iscsi服务端软件targetcli并启动target服务在这里插入图片描述
在这里插入图片描述
3)这时我们可以执行targetcli命令在iscsi服务器westosa中进行共享设备的建立:建立内部共享名称;建立外部共享名称(这里必须使用iqn即iscsi限定名称,日期用-连接,域名要反写);建立内部共享名称和外部共享名称关联;建立认证密钥,这些所有的设定都会保存在/etc/target/saveconfig.json文件中。接着在防火墙中永久添加iscsi服务的3260端口(端口可执行targetcli命令ls查看得到),刷新火墙使设定生效
在这里插入图片描述
在这里插入图片描述
4)在iscsi客户端westosb中安装iscsi服务端软件iscsi-initiator-utils,此时在客户端可以执行iscsiadm命令发现-p指定主机上的共享设备,但此时无法-l 连接到该共享设备,因为客户端iscsi服务认证文件/etc/iscsi/initiatorname.iscsi中的认证密钥与服务器端的认证密钥不一致,认证无法通过
在这里插入图片描述
在这里插入图片描述
5)修改客户端iscsi服务认证文件中的认证密钥使其与服务器端的认证密钥一致,重启客户端iscsid服务,此时认证通过可以-l连接到该共享设备,fdisk -l可以查看到登入的共享设备/dev/sda
在这里插入图片描述
6)-u可以临时登出该共享设备,fdisk -l查看到系统中无该共享设备,但重启客户端iscsi服务后fdisk -l可以再次查看到登入的共享设备

在这里插入图片描述
如果需要在客户端永久删除该共享设备,需要先-u临时登出共享设备,再-o delete删除该设备,即清空/var/lib/iscsi中的相关记录
在这里插入图片描述
在这里插入图片描述
7)重新在客户端可以执行iscsiadm命令发现-p指定主机上的共享设备,-l连接到该共享设备,fdisk -l可以查看到登入的共享设备

在这里插入图片描述
8)此时可以对该共享设备/dev/sda进行设备管理,为其划分分区建立新设备后格式化其文件系统,接着可以挂载新划分的设备到指定位置处
在这里插入图片描述
在这里插入图片描述
如果需要使新划分的设备在开机时自动挂载到指定位置处,在编写自动挂载策略文件/etc/fstab时需要加入 _netdev 参数说明该设备类型为网络共享设备,否则系统将无法启动
在这里插入图片描述
9)卸载设备,先-u临时登出共享设备,再-o delete删除该设备,此时在服务器端可以执行targetcli命令,clearconfig confirm=True清除服务器上所有共享设备的设定
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上是关于Linux中nfsiscsi共享服务的部署及安全优化详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux中部署YUM仓库及NFS共享服务

Linux系统部署YUM远程仓库及NFS共享服务

Linux下安装部署Samba共享盘的操作手册

零基础学习云计算及大数据DBA集群架构师Linux系统网络服务及安全配置1.4-1.8

apache调优隐藏版本信息及404重定向

samba文件共享及账户映射