转自:http://m.blog.csdn.net/blog/index?username=Ningdaxing1994
觉得这个写得不错哈哈~
以下所有操作都是在Red-hat 7.0上
1.NFS的介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
2.nfs服务器配置
1.安装服务以及配置防火墙策略
在配置之前先安装nfs-utils
yum install nfs-utils -y
systemctl start nfs-server
systemctl enable nfs-server.service ##开启nfs服务
如果开启防火墙还要访问nfs,要添加以下的服务:
systemctl start firewalld
firewall-cmd –permanent –add-service=nfs
firewall-cmd –permanent –add-service=rpc-bind
firewall-cmd –permanent –add-service=mountd
firewall-cmd –reload ##刷新
2.建立一个共享目录并编写/etc/exports 对客户端访问进行设置
mkdir /public
chmod 777 /public/
touch /public/test{1..3}
vim /etc/exports
/public (sync) ##将/public共享给所有人并且数据同步 代表所有人,sync代表数据同步
exportfs -rv ##提示:对配置的文件进行刷新,一定不能重启nfs服务,那样会导致服务卡住,这是已知的bug
3.访问控制
vim /etc/exports
/public 172.25.0.0/24(sync) ##只允许172.25.0.0/24网段的ip访问
/public *.example.com(sync) ##只允许同一个域名的主机访问
/public 172.25.254.20(ro,sync) 172.25.254.21(rw,sync) ## 允许20主机只读访问 ,21主机读写访问
/public *(rw,sync,no_root_squash) ##获得root权限
4.永久挂载NFS文件系统:
vim /etc/fstab
172.25.254.110:/public /mnt nfs defaults 0 0
rw:挂载可读写的文件系统
ro:挂载只读文件系统
vers=4:尝试只使用指定的NFS版本进行挂载。如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默认行为hard,将无限期地重试)
5.保护NFS输出
两台主机都得更改主机名 一个server10 一个desktop10,这是因为,我们需要下载对应的keytab。
在两台主机,都加入kerberos认证域,使用ldap用户:
desktop和server都安装yum install authconfig-gtk.x86_64 sssd krb5-workstation.x86_64 ##sssd是控制用户人数,authconfig-gtk可视化配置ldap
在server上:
安装kerberos服务所需的keytab: wget http://172.25.254.254/pub/keytabs/server20.keytab -O /etc/krb5.keytab 采用ktutil命令检测keytab ktutilktutil: rkt /etc/krb5.keytabktutil: list 重启服务: systemctl start nfs-secure-server ##server和desktop开启的服务不同systemctl enable nfs-secure-server.service 编写/etc/exports,让拥有证书的用户才可以访问 vim /etc/exports /public *(rw,sec=krb5p) ##使用kerberos验证exportfs -rv1234567891011121314
在desktop上:
安装kerberos服务所需的keytab: wget http://172.25.254.254/pub/keytabs/desktop20.keytab -O /etc/krb5.keytab 采用ktutil命令检测keytab ktutilktutil: rkt /etc/krb5.keytabktutil: list 重启服务:(与server主机重启的服务不相同,少了个service) systemctl start nfs-secure systemctl enable nfs-secure 做本地解析 vim /etc/hosts172.25.254.210 server10.example.com123456789101112
测试:
[root@desktop10 ~]# su - studentLast login: Sat Jun 3 23:37:20 EDT 2017 on pts/1[student@desktop10 ~]$ cd /mnt -bash: cd: /mnt: Permission denied ##student用户没有证书所以访问被拒[student@desktop10 ~]$ su - ldapuser1 ##必须从普通用户过去,获得密码权限。Password: Last login: Sat Jun 3 23:54:20 EDT 2017 on pts/0su: warning: cannot change directory to /home/guests/ldapuser1: No such file or directorymkdir: cannot create directory '/home/guests': Permission denied -bash-4.2$ cd /mnt -bash-4.2$ ls file file2 file3 123456789101112
本文转自 yab109 51CTO博客,原文链接:http://blog.51cto.com/12768057/1933966,如需转载请自行联系原作者