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 <==查看已有秘钥