nfs、iscsi共享服务的部署及安全优化
1.nfs 的基本信息
1.1nfs服务简介
NFS(Net File System)即网络文件系统,它是由SUN公司研制的UNIX表示层协议,能够使客户端主机访问网络上其余主机的文件系统资源。nfs的数据传输优化和安全性能要比samba好,其客户端和服务端组件是一体的,其服务由软件包nfs-utils提供,samba服务使用的是139、445固定端口,nfs默认使用的是2049端口。当客户端主机访问nfs服务器上的共享资源时,会先访问服务器上的rpc-bind服务,rpc-bind会为客户端主机分配一个随机的访问端口号,客户端主机使用该端口号进一步访问服务器上的mounted软件,mounted软件负责对nfs服务器上所有共享资源进行控管,当客户端主机需要访问的共享资源存在时,mounted程序会进一步带领客户端主机通过2049端口访问nfs服务的共享资源,由于rpc-bind为客户端主机分配的访问端口号是随机的,所以nfs的安全性能要比samba好。
1.2 NFS的基本信息
信息 | 解释 |
---|---|
nfs-utils | 安装包 |
nfs-server | 服务脚本 |
/etc/exports | 共享配置文件 |
默认端口 | 2049 |
2. nfs 的安装与启用
[root@westos_storage ~]# dnf install nfs-utils.x86_64 -y //安装
[root@westos_storage ~]# systemctl enable --now nfs-server.service //启用
添加火墙策略
[root@westos_storage ~]# firewall-cmd --permanent --add-service=nfs
[root@westos_storage ~]# firewall-cmd --permanent --add-service=mountd
[root@westos_storage ~]# firewall-cmd --permanent --add-service=rpc-bind
[root@westos_storage ~]# firewall-cmd --reload
netstat -antlupe | grep 2049 //查看端口
showmount -e 172.25.254.100 //访问本机的共享资源
3.nfs配置参数
anonuid=1000,anongid=1000 #指定用户身份
sync #更改生成后同步数据到服务器
async #时时同步数据到服务器
rw #读写
ro #只读
no_root_squash #root用户挂载不转换身份
建立实验环境:
mkdir /westosdir /建立挂载目录
chmod 777 /westosdir/ //更改权限
touch /westosdir/westosfile{1..3}
1、所有文件只读共享
vim /etc/exports //编写配置目录
cat /etc/exports
/westosdir *(ro,sync) //只读共享
exportfs -rv //使配置文件生效
showmount -e 172.25.254.100 //查看共享目录
mount 172.25.254.100:/westosdir /mnt 挂载
2、对200主机读写共享,其他主机只读共享
在服务端:
在客户端(172.25.254.200): 创建文件成功 ,可以进行读写共享
在服务端(172.25.254.100): 创建文件失败,只能可读共享, 当客户端挂载共享到本地目录后,使用到的用户身份是服务器上的nobody,
3、指定客户端在挂载时挂载用户是id=1000
在服务端(172.25.254.100):
在客户端(172.25.254.200):
在服务端(172.25.254.100):
4、no_root_squash即使用root用户身份挂载时不转换身份
在服务端(172.25.254.100):*
在客户端(172.25.254.200):
在服务端(172.25.254.100):*
4.nfs自动挂载
dnf install autofs -y //安装自动挂载软件
vim /etc/auto.master //编辑主挂载策略文件
/westos /etc/auto.nfs
最终挂载点的上层目录 子策略文件
vim /etc/auto.nfs // 编辑子策略文件,该文件默认不存在,需要自行建立
nfs -rw 172.25.254.100:/westosdir
最终挂载点的相对路径 挂载参数 nfs服务器上共享出来的资源
systemctl restart autofs.service //重启服务
cd /westos/nfs //进入该目录,发现自动挂载
df
dnf install autofs -y //安装自动挂载软件
5.iscsi设备共享
在服务端:
**磁盘分区**
virt-manager //给服务端新建一块5G大小的硬盘
fdisk -l 查看
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
fdisk /dev/vdb 建立磁盘分区
Command (m for help): n
SelCommand (m for help): pect (default p):
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759): +2G
Command (m for help): p
Command (m for help): wq
**共享策略**
dnf install targetcli -y //安装与启用targetcli共享策略管理软件
systemctl enable --now target
targetcli 用此命令编写共享策略
/backstores/block create westos:storage1 /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
exit
**火墙策略**
firewall-cmd --permanent --add-port=3260/tcp
//开放服务的端口
firewall-cmd --reload
在客户端:
**客户端安装与配置**
dnf install iscsi-initiator-utils.x86_64 -y //安装客户端软件
systemctl status iscsid 对客户端配置控制服务
systemctl status iscsi 客户端对于资源利用的服务
iscsiadm -m discovery -t st -p 172.25.254.100 //共享信息查询
mode 指定要识别的识别理性 指定资源主机ip
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.100 -l
访问名称 登陆设备
//登陆共享设备,访问失败,需要指定共享key
vim /etc/iscsi/initiatorname.iscsi //指定共享key
InitiatorName=iqn.2021-08.org.westos:westoskey
systemctl restart iscsid.service
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.100 -l
//登陆成功
fdisk -l
Disk /dev/sda: 2 GiB, 2147483648 bytes, 4194304 sectors
fdisk /dev/sda 建立分区
Command (m for help): n
Select (default p):
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303):
Command (m for help): p
Command (m for help): wq
mkfs.xfs /dev/sda1 格式化设备
mount /dev/sda1 /mnt/ 挂载
6.永久挂载设备
blkid 查看设备id
vim /etc/fstab
UUID=5043c23e-c632-4cac-9607-6ff161df4ba1 /mnt xfs defaults,_netdev 0 0
//指定此设备在挂载时先启用网络和iscsi服务后生效
reboot
df 发现仍然挂载着 ,
网络设备因为网络通信的缘故可能发生名称变化,所以推荐挂载时用设备的id进行设备的指定
7.卸载设备
umount /mnt
tree /var/lib/iscsi //在客户端读取到的服务器的所有数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.100 -u
//退出登陆
fdisk -l //退出登陆后,设备消失,但数据还在,重启iscsi服务后设备会自动出现
systemctl restart iscsi
fdisk -l
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.100 -u
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.100 -o delete 删除客户主机中此网络 设备的数据
tree /var/lib/iscsi
fdisk -l
在服务端:清除服务器中iscsi的共享数据
[root@westos_storage ~]# targetcli
/> ls
/> clearconfig confirm=True
/> ls