RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

在本系列的前一篇文章,我们回顾了如何在可能包括多种类型操作系统的网络上配置 Samba 共享。现在,如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS。

RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器

在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程。假设你已经配置好了一个 NFS 服务器和一个客户端。如果还没有,可以参考 安装和配置 NFS 服务器 - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置。

另外,你可能还需要配置 SELinux 和 firewalld 以允许通过 NFS 进行文件共享。

下面的例子假设你的 NFS 共享目录在 box2 的 /nfs:


  1. # semanage fcontext -a -t public_content_rw_t "/nfs(/.*)?"
  2. # restorecon -R /nfs
  3. # setsebool -P nfs_export_all_rw on
  4. # setsebool -P nfs_export_all_ro on

(其中 -P 标记指示重启持久有效)。

最后,别忘了:

创建 NFS 组并配置 NFS 共享目录

1、 新建一个名为 nfs 的组并给它添加用户 nfsnobody,然后更改 /nfs 目录的权限为 0770,组属主为 nfs。于是,nfsnobody(对应请求用户)在共享目录有写的权限,你就不需要在 /etc/exports 文件中使用 norootsquash(LCTT 译注:设为 root_squash 意味着在访问 NFS 服务器上的文件时,客户机上的 root 用户不会被当作 root 用户来对待)。


  1. # groupadd nfs
  2. # usermod -a -G nfs nfsnobody
  3. # chmod 0770 /nfs
  4. # chgrp nfs /nfs

2、 像下面那样更改 export 文件(/etc/exports)只允许从 box1 使用 Kerberos 安全验证的访问(sec=krb5)。

注意:anongid 的值设置为之前新建的组 nfs 的 GID:

exports – 添加 NFS 共享


  1. /nfs box1(rw,sec=krb5,anongid=1004)

3、 再次 exprot(-r)所有(-a)NFS 共享。为输出添加详情(-v)是个好主意,因为它提供了发生错误时解决问题的有用信息:


  1. # exportfs -arv

4、 重启并启用 NFS 服务器以及相关服务。注意你不需要启动 nfs-lock 和 nfs-idmapd,因为系统启动时其它服务会自动启动它们:


  1. # systemctl restart rpcbind nfs-server nfs-lock nfs-idmap
  2. # systemctl enable rpcbind nfs-server

测试环境和其它前提要求

在这篇指南中我们使用下面的测试环境:

  • 客户端机器 [box1: 192.168.0.18]
  • NFS / Kerberos 服务器 [box2: 192.168.0.20] (也称为密钥分发中心,简称 KDC)。

注意:Kerberos 服务是至关重要的认证方案。

正如你看到的,为了简便,NFS 服务器和 KDC 在同一台机器上,当然如果你有更多可用机器你也可以把它们安装在不同的机器上。两台机器都在 mydomain.com 域。

最后同样重要的是,Kerberos 要求客户端和服务器中至少有一个域名解析的基本方式和网络时间协议服务,因为 Kerberos 身份验证的安全一部分基于时间戳。

为了配置域名解析,我们在客户端和服务器中编辑 /etc/hosts 文件:

host 文件 – 为域添加 DNS


  1. 192.168.0.18 box1.mydomain.com box1
  2. 192.168.0.20 box2.mydomain.com box2

在 RHEL 7 中,chrony 是用于 NTP 同步的默认软件:


  1. # yum install chrony
  2. # systemctl start chronyd
  3. # systemctl enable chronyd

为了确保 chrony 确实在和时间服务器同步你系统的时间,你可能要输入下面的命令两到三次,确保时间偏差尽可能接近 0:


  1. # chronyc tracking

用 Chrony 同步服务器时间

安装和配置 Kerberos

要设置 KDC,首先在客户端和服务器安装下面的软件包(客户端不需要 server 软件包):


  1. # yum update && yum install krb5-server krb5-workstation pam_krb5

安装完成后,编辑配置文件(/etc/krb5.conf 和 /var/kerberos/krb5kdc/kadm5.acl),像下面那样用mydomain.com 替换所有 example.com。

下一步,确保 Kerberos 能功过防火墙并启动/启用相关服务。

重要:客户端也必须启动和启用 nfs-secure:


  1. # firewall-cmd --permanent --add-service=kerberos
  2. # systemctl start krb5kdc kadmin nfs-secure
  3. # systemctl enable krb5kdc kadmin nfs-secure

现在创建 Kerberos 数据库(请注意这可能会需要一点时间,因为它会和你的系统进行多次交互)。为了加速这个过程,我打开了另一个终端并运行了 ping -f localhost 30 到 45 秒):


  1. # kdb5_util create -s

创建 Kerberos 数据库

下一步,使用 kadmin.local 工具为 root 创建管理权限:


  1. # kadmin.local
  2. # addprinc root/admin

添加 Kerberos 服务器到数据库:


  1. # addprinc -randkey host/box2.mydomain.com

在客户端(box1)和服务器(box2)上对 NFS 服务同样操作。请注意下面的截图中在退出前我忘了在 box1 上进行操作:


  1. # addprinc -randkey nfs/box2.mydomain.com
  2. # addprinc -randkey nfs/box1.mydomain.com

输入 quit 和回车键退出:

添加 Kerberos 到 NFS 服务器

为 root/admin 获取和缓存票据授权票据ticket-granting ticket:


  1. # kinit root/admin
  2. # klist

缓存 Kerberos

真正使用 Kerberos 之前的最后一步是保存被授权使用 Kerberos 身份验证的规则到一个密钥表文件(在服务器中):


  1. # kdadmin.local
  2. # ktadd host/box2.mydomain.com
  3. # ktadd nfs/box2.mydomain.com
  4. # ktadd nfs/box1.mydomain.com

最后,挂载共享目录并进行一个写测试:


  1. # mount -t nfs4 -o sec=krb5 box2:/nfs /mnt
  2. # echo "Hello from Tecmint.com" > /mnt/greeting.txt

挂载 NFS 共享

现在让我们卸载共享,在客户端中重命名密钥表文件(模拟它不存在)然后试着再次挂载共享目录:


  1. # umount /mnt
  2. # mv /etc/krb5.keytab /etc/krb5.keytab.orig

挂载/卸载 Kerberos NFS 共享

现在你可以使用基于 Kerberos 身份验证的 NFS 共享了。

总结

在这篇文章中我们介绍了如何设置带 Kerberos 身份验证的 NFS。和我们在这篇指南中介绍的相比,该主题还有很多相关内容,可以在 Kerberos 手册 查看,另外至少可以说 Kerberos 有一点棘手,如果你在测试或实现中遇到了任何问题或需要帮助,别犹豫在下面的评论框中告诉我们吧。

本文来自合作伙伴“Linux中国”,原文发表于2013-04-02.

时间: 2024-10-26 10:31:38

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器的相关文章

Linux 客户端配置 Kerberos 身份验证的 NFS 服务器步骤

如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS. 在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 NFS 服务器和一个客户端.如果还没有,可以参考 安装和配置 NFS 服务器 - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置. 另外,你可能还需要配置 SELinux 和 firewalld 以允许通过 NFS 进行文件共享. 下面的例子假设你的 NFS

在Linux下配置基于策略的路由的实例

基于策略的路由比传统路由更强大,使用更灵活,它使网络管理者不仅能够根据目的地址而且能够根据报文大小.应用或IP源地址来选择转发路径.在现实的网络应用中,这种选择的自由性还是很需要的.而Linux从2.1版本的内核开始就实现了对策略路由的支持,下面就介绍一个配置实例,以期对读者有所帮助. 实例背景 如图所示,两个内部网通过远端路由器1与因特网相联,通过远端路由器2与上级网相联, Linux服务器做策略路由器,内有4块网卡.IP地址的分配情况如表所示. 在应用需求方面,内网1允许通过远端路由器1(1

MySQL---数据库从入门走向大神系列(七)-Java访问数据库配置及简单使用方法execute

从操作配置文件properties中读取连接字符串,通过该字符串进行数据连接,需要写三个文件其中,两个是java类,一个是后缀名为.properties的文件,该文件放在src工作目录下. 需要准备的包: https://github.com/chenhaoxiang/Java 后缀为.properties的文件此处为其取名为jdbc.properties,其中的代码如下: ##MySQL driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0

关于Sa系列用户不能登录,只能本地windows身份验证的说明

作者:毒逆天

Linux中NFS服务器的安装与配置

NFS是Net http://www.aliyun.com/zixun/aggregation/19352.html">File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件.通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件. 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不

ASP.Net:基于窗体的身份验证

asp.net     基于窗体的验证是最为普遍的一种验证,使用这种验证方式可以很方便灵活地应用到应用程序中.窗体验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端.服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了.     要采用窗体验证,先要在应用程序根目录中的Web.config中做相应的设置:     <authentica

国内首款基于asp.net技术开发的服务器管理软件

数据王服务器系列软件是国内首款基于asp.net技术开发的服务器管理软件.本系列软件是由沈阳泷泉信息技术有限公司独立自助开发完成,我司是一家以asp.net为主的技术型公司,我们的团队不仅汇集了国内顶尖的.net程序员和专业级的美工 更有着雄厚的资金及技术实力,立志做中国最优秀的服务器软件供应商. 目前本系列软件已正式发布两款,数据王域名虚拟主机管理系统,数据王IIS还原备份专家! 数据王域名虚拟主机管理系统 全球首创三个第一 第一个让虚拟主机用户支持防盗链 可自定义需要防盗的文件扩展名及被盗时

ASP.Net:基于Windows的身份验证

asp.net|window 如果将 ASP.NET 配置为使用 Windows 身份验证,则 IIS 使用配置的 IIS 身份验证机制执行用户身份验证.启用Windows身份验证的步骤如下:     (1) 配置 Web.config文件.     <authentication mode="Windows" />     (2) 首先启动系统的Internet 信息服务(IIS),右击网站本目录的节点,选择[属性]命令.如图12.3所示. 图12.3 启动IIS (3)

2Ubuntu/RedHat下nfs服务器搭建,Linux多台电脑共享目录

 1安装nfs(网络文件系统)服务器 共享的原理: 安装命令: sudo apt-get install nfs-kernel-server 2设置/etc/exports配置文件 添加以下这行配置 其中: *表示所有ip,如果想指定ip,可以把*换成你自己的ip地址. rw:表示只读权限,如果想变成只读的,修改配置为ro sync:表示同步的方式.任何人对这个目录的修改,其它人都可以看到. 3.在用户目录下创建nfs目录 4.重启服务器,发现有4个OK,这时候说明配置成功了. 5.磁盘挂载