您的位置:首页 > 理论基础 > 计算机网络

Linux运维笔记-文档总结-NFS文件共享(网络文件系统)

2017-06-09 21:35 946 查看
以下所有操作都是在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
ktutil
ktutil:  rkt /etc/krb5.keytab
ktutil:  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 -rv


在desktop上:

安装kerberos服务所需的keytab:
wget http://172.25.254.254/pub/keytabs/desktop20.keytab -O /etc/krb5.keytab
采用ktutil命令检测keytab
ktutil
ktutil:  rkt /etc/krb5.keytab
ktutil:  list
重启服务:(与server主机重启的服务不相同,少了个service)
systemctl start nfs-secure
systemctl enable nfs-secure
做本地解析
vim /etc/hosts
172.25.254.210 server10.example.com










测试:

[root@desktop10 ~]# su - student
Last 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/0
su: warning: cannot change directory to /home/guests/ldapuser1: No such file or directory
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ cd /mnt
-bash-4.2$ ls
file  file2  file3




The End

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  运维 nfs