Linux nfs使用krb5的方式安全挂载

配置安全的网络nfs文件共享服务

由于本人是使用的rhce模拟考试环境来做的本题目,所以文中说到的实验脚本和评分脚本,以及krb5.keytab文件只有我本套环境独有,如果自己做练习可以不去使用实验脚本和评分脚本,直接进行配置服务并挂载就可以。

对此套环境有兴趣的朋友可以给我留言,看到必回复。

1、首先

服务端(server0)和客户端(desktop0)执行实验脚本

[[email protected] ~]# lab nfskrb5 setup
[[email protected] ~]# lab nfskrb5 setup

2、配置服务端(server0)

2.1 下载kerberos秘钥

[[email protected] ~]# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
--2019-04-16 22:51:45--  http://classroom.example.com/pub/keytabs/server0.keytab
Resolving classroom.example.com (classroom.example.com)... 172.25.254.254
Connecting to classroom.example.com (classroom.example.com)|172.25.254.254|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1242 (1.2K)
Saving to: ‘/etc/krb5.keytab’

100%[==============================================================================>] 1,242       --.-K/s   in 0s      

2019-04-16 22:51:45 (130 MB/s) - ‘/etc/krb5.keytab’ saved [1242/1242]

2.2 修改nfs配置文件

[[email protected] ~]# vim /etc/sysconfig/nfs
...
RPCNFSDARGS="-V 4.2"
...

使用4.2版本,nfs挂载的时候可以将selinux安全上下文同时导出

2.3 启动nfs-secure-server服务并设置开机自动启动

[[email protected] ~]# systemctl start nfs-secure-server
[[email protected] ~]# systemctl enable nfs-secure-server
ln -s ‘/usr/lib/systemd/system/nfs-secure-server.service‘ ‘/etc/systemd/system/nfs.target.wants/nfs-secure-server.service‘
[[email protected] ~]#

2.4 创建共享文件夹并且将文件夹写入/etc/exportfs文件中

[[email protected] ~]# mkdir /securenfs
[[email protected] ~]# chown nfsnobody /securenfs/
[[email protected] ~]# ll -d !$
ll -d /securenfs/
drwxr-xr-x. 2 nfsnobody root 6 Apr 16 22:57 /securenfs/

[[email protected] ~]# vim /etc/exports
...
/securenfs desktop0(sec=krb5p,rw)
...

[[email protected] ~]# exportfs -r
[[email protected] ~]# exportfs
/securenfs        desktop0.example.com

2.5 配置防火墙

[[email protected] ~]# firewall-cmd --permanent --add-service=nfs
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client nfs ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

3、配置客户端(dekstop0)

3.1 下载秘钥文件

[[email protected] ~]# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab

3.2 启动nfs-secure 服务并开机自启动

[[email protected] ~]# systemctl enable nfs-secure
ln -s ‘/usr/lib/systemd/system/nfs-secure.service‘ ‘/etc/systemd/system/nfs.target.wants/nfs-secure.service‘
[[email protected] ~]# systemctl start nfs-secure

3.3 创建挂载点并设定开机自动挂载

[[email protected] ~]# mkdir /mnt/secureshare
[[email protected] ~]# vim /etc/fstab 

server0:/securenfs /mnt/secureshare     nfs     defaults,rw,v4.2,sec=krb5p      0       0

4、测试

4.1 在server0上建立测试文件

[[email protected] ~]# echo "Hello World" >> /securenfs/testfile.txt
临时更改该文件的selinux安全上下文,更改文件的拥有者和权限
[[email protected] ~]# chcon -t public_content_t /securenfs/testfile.txt
[[email protected] ~]# chown ldapuser0:ldapuser0 /securenfs/testfile.txt
[[email protected] ~]# chmod 644 /securenfs/testfile.txt
[[email protected] ~]# ll -Z !$
ll -Z /securenfs/testfile.txt
-rw-r--r--. ldapuser0 ldapuser0 unconfined_u:object_r:public_content_t:s0 /securenfs/testfile.txt
[[email protected] ~]# 

4.2 desktop0查看该文件

因为前边加了-V 4.2的参数,所以public_content_t这个规则也被挂载过来来了

[[email protected] ~]# ll -Z /mnt/secureshare/testfile.txt
-rw-r--r--. ldapuser0 ldapuser0 unconfined_u:object_r:public_content_t:s0 /mnt/secureshare/testfile.txt
[[email protected] ~]#

4.3用ldapuser0用户测试向该文件写入内容

[[email protected] ~]# ssh [email protected]
[email protected]‘s password:
Creating home directory for ldapuser0.
[[email protected] ~]$ echo "I‘m write" >> /mnt/secureshare/testfile.txt
[[email protected] ~]$ cat !$
cat /mnt/secureshare/testfile.txt
Hello World
I‘m write
[[email protected] ~]$

用管理员用户写入无法写入该文件

[[email protected] ~]# echo "test" >> /mnt/secureshare/testfile.txt
-bash: /mnt/secureshare/testfile.txt: Permission denied
[[email protected] ~]#

因为当前是用kerberos安全认证

5、提交评分脚本

[[email protected] ~]# lab nfskrb5 grade
Grading Kerberos NFS...
Checking correct krb5.keytab exists... PASS
Checking for correct RPCNFSDARGS... PASS
Checking nfs-secure-server service is started... PASS
Checking nfs-server service is enabled... PASS
Checking /securenfs directory exists... PASS
Checking for correct /etc/exports file... PASS
Checking if the server knows about the exported directory... PASS

Overall result: PASS
Congratulations! You‘ve passed all requirements.
[[email protected] ~]# lab nfskrb5 grade
Grading exercise Kerberos NFS...
Checking correct krb5.keytab exists... PASS
Checking nfs-secure service is started... PASS
Checking nfs-secure service is enabled... PASS
Checking /mnt/secureshare directory exists...PASS
Checking for correct /etc/fstab entry for the secure export...PASS
Checking for mounted nfs share ...PASS

Overall result: PASS
Congratulations! You‘ve passed all requirements

  

原文地址:https://www.cnblogs.com/despotic/p/10720950.html

时间: 2024-11-05 21:27:28

Linux nfs使用krb5的方式安全挂载的相关文章

Linux之NFS服务部署与Windows客户端挂载

FS服务(Windows 客户端+Linux 服务端) Windows 客户端 1.添加NFS服务2.进入CMD界面查看NFS添加是否成功.3.挂载远程文件目录至本地4.卸载挂载文件 Linux服务端 1.查看Linux系统是否安装rcpbind,nfs组件(如未安装请先安装).配置文件目录/etc/exports ? ?// NFS服务的主要配置文件 备注:默认情况下此文件是空文件,需要自己配置.具体格式如下:<输出目录> [客户端 选项(访问权限,用户映射,其他)] 1.输出目录 NFS系

【转载】Linux NFS服务器的安装与配置

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NFS在文件传

Linux NFS服务器的安装与配置

注意:centos6.x以后portmap已经被rpcbind取代,并且随nfs-utils安装一并安装了,下文提到所有portmap都以rpcbind代替. 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS

Linux NFS服务器的安装与配置(转载)

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NFS在文件传

linux &nbsp; - NFS

NFS  -  Network File System   作用: 主要功能就是通过网络使得不同的主机系统可以彼此共享文件和目录. 构建与IP协议之上. 应用场景: 应用在企业集群架构中,如存储共享的视频.图片.文件等静态资源(即一般将用户上传的放置在NFS共享里)  --  共享存储 (解决集群请求分发时候原始用户访问不到之前上传的数据) NFS客户端(一般为应用服务器)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到客户端本地系统中.跟linux的samba及wind

(转)Linux NFS服务器的安装与配置

转自:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html 由于在6系列里面,portmap已经改名了 ,6系列需要使用 service rpcbind start启动 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问

Linux NFS服务器的安装与配置(转载)

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NF

Linux NFS服务器的简明配置6.8

Linux NFS服务器的简明配置 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作

Linux 基础教程 33-硬盘分区及挂载

挂载命令 ? ? 在Windows系统中如果插入了U盘.移动硬盘.光驱等,只要能被Windows系统识别出来,则系统会进行自动挂载并添加盘符,然后我们就可以访问,而这一切均由系统完成,用户并不需要做任何操作即可使用.那么在Linux系统中,虽然一些Linux系统已经做了一部分自动挂载功能,但大部分情况还是需要手动挂载完成.而这一功能则是由命令mount和umount命令完成. mount命令 ? ? mount命令主要用于加载文件系统到指定的挂载点.其基本语法如下所示: mount [选项] [