centos7 搭建nfs服务器 实现基于文件的共享存储

环境:服务器server0和客户端desktop0属于example.com域。  #看懂此文首先需要清楚 ldap和Kerberos工作原理

首先二者都需要安装所需的软件:authconfig-gtk、sssd、krb5-workstation(需要Kerberos协议提供网络安全认证)

yum -y intall authconfig-gtk sssd krb5-workstation

然后二者都配置 ldap, 输入authconfig-gtk,配置如图:

 

 

 确认rpc服务(提供数据传输服务,端口号111,nfs依赖于此) systemctl status rpcbind.service

nfs相关软件包:nfs-utils,配置文件路径:/etc/exports(第一列:共享的目录、第二列:允许访问的主机)(此文件设置了客户端访问服务端的权限)

举例,vim /etc/exports

/public  172.25.0.0/24(rw,sync)  192.168.0.0/24(ro,async)

服务端查看rpc注册情况 rpminfo -P localhost,开启nfs服务后再查看rpm注册情况

systemctl enable nfs-server 

systemctl restart nfs-server

showmount -e server0.example.com  #查看服务器共享了哪些目录

firewall-cmd --permanent --add-service=rpc.bind  #防火墙开启rpc服务

firewall-cmd --permanent --add-service=nfs

firewall-cmd --permanent --add-port=20048/tcp

firewall-cmd --permanent --add-port=20048/udp

firewall-cmd --reload

showmount -e server0.example.com  #再次查看

exportfs -rv  #刷新nfs配置文件,使修改生效。需要时执行此命令。

cat /var/lib/nfs/etab  #此文件可看到nfs文件目录的访问权限  #其中sec=sys字段(通过系统本地用户UID的权限验证,C/S两端UID需要一致。sec=krb5,或者krb5i,krb5p。使用kerberos验证用户身份更安全)

举例:创建共享目录/share,使用krb5p验证身份。

vim /etc/exports 添加一行

/share  172.25.0.0/24(rw,sec=krb5p)

服务端需要有krb5文件来验证客户端身份。此文件下载到这里 :wget http://classroom.example.com/pub/keytabs/server0.keytab -O  /etc/krb5.keytab

 

/etc/krb5.keytab  #此文件是客户端发给服务端,服务端用来解密的文件,以此验证客户端合法性

 

ktutil 命令可查看此文件内容

 

然后启动加密服务 ,注意启动的是服务端的加密服务 nfs-secure-server

systemctl enable nfs-secure-server

systemctl restart nfs-secure-server

exportfs -rv  #使配置生效

 

客户端挂载:

mount server0.example.com:/public  /mnt/pub

或者写入fstab文件

server0.example.com:/public  /mnt/pub  nfs  defaults  0 0

server0.example.com:/share  /mnt/share  nfs  defaults,sec=krb5p  0 0  #注意加密方式要和服务端保持一致 cat /etc/exports

wget http://classroom.example.com/pub/keytabs/server0.keytab -O  /etc/krb5.keytab  #客户端也需要有keytab文件

 

systemctl enable nfs-secure

 

systemctl restart nfs-secure   #客户端也要启用加密服务,注意不带server

创建好本地挂载点,mount -a ,df -Th 测试

 

测试时切换到ldap用户,可用klist命令查看是否有票据。kdestroy可销毁票据。kinit 可获取票据

showmount -e server.example.com   #查看服务端共享的内容

 

posted @ 2020-04-24 15:07  黑剑石清  阅读(535)  评论(0编辑  收藏  举报