一、Kerberos工作流程理解
kerberos是一种安全的认证系统,通过kerberos,客户端与服务器端之间加入kerberos后,基于对称的加密算法,不再需要将自己的密码通过加密的方式传递到互联网上,而是基于target,用户拿到对应的target后,就可以取得相应服务或者应用的权限
KDC(Key Distribution Center)钥匙分发中心,用于专门存放key,它与client,Server通过加密,KDC拥有client和Server的Key,而client和Server拥有各自的KEY
- 首先client客户端需求请求Service端的服务,向KDC中心请求授权,这时,KDC为client和server创建了一个session-key,通过Client的密钥加session-key加密一份发给client,同时,用server的密钥加密session-key+客户端请求的用户名+地址+周期等打包发给client,而这个包是需要委托client发给server的
- client收到KDC中心分发过来的两个包,一个包通过自己的密钥直接解密得到session-key,客户端用得到的这个session-key对自己请求的用户+地址+周期等信息加密后发给server,同时将由KDC交付过来转交给server的包转给server,而由于client没有server的密钥,所以他无法对转交给server的包进行篡改。
- Server收到client发过来的两个包,首先用自己的密钥将client转交过来的包解密,得到session-key和一些用户名+日期+周期等,利用得到的这个session-key,将client端发过来的包进行解密,也得到一份用户名+日期+周期等,将两个进行比对,如果得到的数据是一致的,说明期间没有人对包数据进行过篡改,认证过程结束。否则则包数据存在问题,不能信任。
二、安全的NFS配置过程
一)、服务器端配置
1.首先安装所需要的组件和包
yum installnfs-utils sssd krb5-workstation
2.加入开机自启动,服务器端有nfs-server,nfs-secure,sssd三个服务加入自启
systemctl enable nfs-server.service systemctl enable nfs-secure-server.esrvice systemctl enable sssd.service
3.开放防火墙,需要加入nfs,mountd,rpc-bind三个服务
firewall-cmd--permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent--add-service=rpc-bind firewall-cmd --reload
4.使用图形化工具authconfig-tui将服务端server9加入到ldap和Kerberos
选择Use LDAP 认证方式选 Use Kerberos
启用 [*]Use TLS
Server: classroom.example.com
BaseDN: dc=example,dc=com
Realm: EXAMPLE.COM
KDC: classroom.example.com
Admin Server: classroom.example.com
选择OK后,这里会提示用到证书文件,先不要按回车,等将证书文件下载到本地对应目录后再按OK
#wget -O /etc/openldap/cacerts/example-ca.crt http://classroom.example.com/pub/example-ca.crt
同步将kerberos的认证文件下载到本地:
#wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server9.keytab
5.启动nfs-server,nfs-sercure-server,sssd服务
systemctl start nfs-server systemctl start nfs-secure-server systemctl start sssd
这里可以提前提服务,然后用authconfig-tui后再重启服务
6.验证ldap和kerberos是否加入成功
getent passwd ldapuser1 验证,如果能看到ldapuser1用户的信息,则说明加入ldap成功
切换到ldapuser1用户:su - ldapuser1
kinit 输入ldapuser1的密码(kerberos)
klist 如果能够正常显示(krbtgt/[email protected])则表示kerberos状态正常
7.创建共享目录,修改权限777
mkdir /secure chmod 777 /secure
vim/etc/exports
/secure *(rw,sync,sec=krb5p)
这里的*可以用网段代替,表示只针对某一个网段放行。
重新加载配置文件:exportfs -r
二)、客户端配置
1.安装对应的包
yum install nfs-utils sssd krb5-workstation
2.开启开机自启动
systemctl enable nfs-secure
3.使用图形化工具authconfig-tui将desktop9也加入到ldap和kerberos
这里的配置与服务器端一样,只是下的keytab文件的路径不一样
http://classroom.example.com/pub/keytabs/desktop9.keytab
4.重启服务
systemctlrestart nfs systemctl restart nfs-secure systemctl restart sssd
测试的时候与前面服务器端一样
5.查看NFS共享内容
#showmount -e server9 #mount -t nfs server9:/sercre /mnt/nfs
以上为挂载命令,如果要写入fstab则按常规格式书写
server9:/secure /mnt/nfs nfs defaults 0 0
su - ldapuser1 kinit 输入密码:kerberos
klist可以看到证书文件
cd /mnt/nfs
touch ldapuser1
ll查看文件属性是否为ldapusr1:ldapuser1
验证通过,说明基于安全的NFS实验完成