基于Kerberos认证的NFS服务器

基于Kerberos认证的NFS服务器

相关命令

kadmin.local:  listprincs						<==查看用户列表

服务器配置

NFS 服务器(同时作为 Kerberos 认证器) NFS客户端
IP:10.10.10.2 IP:10.10.10.3
域名:server.netdj.net 域名:client.netdj.net
已关闭防火墙和 SELinux 已关闭防火墙和 SELinux

步骤一: 安装需要的软件包

[root@localhost ~]# yum -y install nfs-utils krb5-server krb5-workstation

步骤二: 由于 Kerberos 只支持域名验证,所以必须将服务器和客户端的 IP 绑定到对应的域名上。在文件末尾添加以下内容

[root@localhost ~]# vi /etc/hosts

10.10.10.2 server.netdj.net
10.10.10.3 client.netdj.net

步骤三: 修改 Kerberos 配置文件

[root@localhost ~]# vi /etc/krb5.conf

[libdefaults]
 default_realm = NETDJ.NET			<==找到此条语句改成自己对应的域
 
[realms]							<==修改此字段内容
 NETDJ.NET = {
  kdc = server.netdj.net
  admin_server = server.netdj.net
 }


 [domain_realm]						<==修改此字段内容
 .netdj.net = NETDJ.NET

步骤四: 配置 Kerberos 服务器管理访问控制参数

[root@localhost ~]# vi /var/kerberos/krb5kdc/kadm5.acl 

*/[email protected]       *	

步骤五: 配置 NFS 共享目录

[root@localhost ~]# mkdir /share
[root@localhost ~]# vi /etc/exports

/share *(rw,all_squash,sec=krb5p)

步骤六: 初始化 KDC 数据库

[root@localhost ~]# kdb5_util create -s 

------------------------------------
kdb5_util create -s -r netdj.net -P 123
	#创建数据库 -r 选项指定领域,在多领域是必须使用,-P 指定数据库密码

步骤七: 启动 NFS ,Kerberos 服务

[root@localhost ~]# systemctl start krb5kdc kadmin nfs nfs-secure
[root@localhost ~]# systemctl enable krb5kdc kadmin nfs nfs-secure

步骤八: 配置 KDC 数据库 & 取得秘钥

[root@localhost ~]# kadmin.local 									<==进入本地 admin 后台
kadmin.local:  addprinc root/admin						<==添加管理用户
kadmin.local:  addprinc -randkey nfs/server.netdj.net	<==注册NFS服务器,并生成秘钥
kadmin.local:  addprinc -randkey nfs/client.netdj.nets	<==注册NFS客户端,并生成秘钥
kadmin.local:  ktadd nfs/server.netdj.net							<==取NFS服务器秘钥

客户端配置

步骤一: 配置 hosts,这里跟上面的 “步骤二” 一样

步骤二: 配置 Kerberos 配置文件,这里跟上面 “步骤三” 一样

步骤三: 从 KDC 上去取得秘钥

[root@localhost ~]# kadmin 
Authenticating as principal root/[email protected] with password.
Password for root/[email protected]: 
kadmin:  
kadmin:  ktadd nfs/client.netdj.net			<==获取NFS客户端秘钥

密钥保存在/etc/krb5.keytab这个文件中,请确保它的安全

步骤四: 启动 NFS 加密服务,不要启动 NFS 服务器端程序,不然可能会挂载不上

[root@localhost ~]# systemctl start nfs-secure

步骤五:

[root@localhost ~]# mount -o sec=krb5p server.netdj.net:/share /share
[root@localhost ~]# mount | grep server.netdj.net
server.netdj.net:/share on /share type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5p,clientaddr=10.10.10.3,local_lock=none,addr=10.10.10.2)

如果需要配置防火墙的话,除了打开 NFS 相关端口之外,还要打开以下端口

TCP/UDP 88

TCP/UDP 749

[root@localhost ~]# klist -k /etc/krb5.keytab			<==查看已有秘钥

你可能感兴趣的:(CentOS,nfs,kerberos)