一、部署NFS共享服务
1.1 基础知识:
本地文件系统: EXT3/4 、SWAP 、NTFS ——本地磁盘
伪文件系统 : /proc 、/sys —— 内存空间
网络文件系统:NFS ——网络存储空间
NFS ——Network FileSystem 网络文件系统
功能:搭建一个可以为客户端提供共享资源的文件夹
协议:NFS(TCP/IP 2049 )
远程过程调用 (RPC) :功能是指定每个 NFS 功能所对应的 port number ,RPC 是固定 port 111 来监听客户端的需求并回报客户端正确NFS 连接端口。
RPC (TCP/UDP 111) Remote Procedure Call;
注意:启动 NFS 之前,RPC 就要先启动了,否则 NFS 会无法向 RPC 注册。
客户端NFS和服务端NFS通信过程:
1)首先服务器启动RPC服务并开启111端口;
2)启动NFS端口,并向RPC注册端口信息;
3)客户端启动RPC(portmap服务),向服务器的RPC服务请求服务器的NFS端口;
4)服务器RPC服务反馈NFS端口信息给客户端
5)客户端通过RPC传来的端口来建立和服务端NFS的连接
1.2 软件及配置文件:
RPC 主程序:rpcbind
NFS 主程序:nfs-utils
主要配置文件:/etc/exports (系统默认没有共享文件,要使用 vim 主动新建)
该配置文件内容:共享目录路径 客户端(参数)
客户端:IP地址;
网段地址 172.25.1.* 或 172.0.0.0/24
所有主机 :*
单个域 :*. taobao .com
主机名: pc207.taobao.com
参数:rw 、ro 该目录分享权限(可读写或只读)
sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squash 让客户端使用 root 身份来操作服务器的文件系统
all_squash 客户端权限都将为nfsnobody,即匿名用户
anonuid anongid anon 意指 anonymous (匿名者),即匿名用户的 UID 、GID设定值
NFS 文件系统维护指令:/usr/sbin/exportfs
exportfs 是用在 NFS Server 端
NFS服务的登录文件:/var/lib/nfs/*tab —— :
/var/lib/nfs/etab :主要记录了 NFS 所分享出来的目录的完整权限设定值;
/var/lib/nfs/xtab :记录曾经链接到此 NFS 服务器的相关客户端数据。
客户端查询NFS服务器共享资源的指令:/usr/sbin/showmount
showmount 选项
-a/–all :以 host:dir 这样的格式来显示客户主机名和挂载点目录。
-d或–directories :仅显示被挂载的目录名。
-e或–exports :显示NFS服务器的输出清单
–no-headers :禁止输出描述头部信息
-v或–version :显示版本信息
显示输出目录列表 # showmount -e NFS的ip
exportfs 参数
-a:全部挂载(或卸载)/etc/exports文件内的设定。
-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容
-u:卸载某一目录。
-v:在export时将共享的目录显示在屏幕上。
rpcinfo -p localhost /IP 查看 RPC 服务的注册状况
1.3 部署NFS服务器172.25.0.11(selinux 关闭,防火墙关闭)
systemctl stop firewalld
setenforce 0
1.3.1 装包
rpm -q nfs-utils
rpm -q rpcbind
yum -y install rpcbind nfs-utils
1.3.2 编写NFS主配置文件,及共享文件
mkdir /wj01
echo “hello welcome to here” > /wj01/test.txt
]# chmod o+w /wj01/ //让其他访问者有写的权限
vim /etc/exports
/wj01 *(rw)
exportfs -r //配置生效
1.3.3 重启服务,设置开机自启
systemctl restart rpcbind
systemctl restart nfs-server
systemctl enable rpcbind
systemctl enable nfs-server
1.3.4 NFS服务器本机查看
showmount -e localhost
Export list for localhost:
/wj01 *
]# rpcinfo -p localhost 查看 RPC 服务的注册状况
1.4 客户端访问NFS服务172.25.0.10(selinux 关闭,防火墙关闭)
systemctl stop firewalld
setenforce 0
1.4.1 安装软件、启动RPC、NFS
yum -y install rpcbind nfs-utils
systemctl restart rpcbind
systemctl restart nfs-server
systemctl enable rpcbind
systemctl enable nfs-server
1.4.2 创建挂载目录(通过挂载的目录访问共享资源)
mkdir /wj02
手动挂载:——mount -t nfs 服务器地址:共享目录路径 挂载目录
为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
]# mount -t nfs 172.25.0.11:/wj01 /wj02 -o proto=tcp -o nolock
设置开机挂载 ]# vim /etc/fstab
172.25.0.11:/wj01 /wj02 nfs defaults,_netdev 0 0
1.4.3 查看共享资源目录
showmount -e 172.25.0.11
【如出现以下错误:可能式防火墙没有关闭,可以关闭防火墙或者写规则放行服务
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)】
]# df -h
172.25.0.11:/wj01 10G 3.0G 7.0G 31% /wj02
]# cat /wj02/test.txt
hello welcome to here
]# echo “AAAAAA” >/wj02/b.txt
NFS服务器上查看:]# ls /wj01/
b.txt test.txt
客户端]# ls /wj02
b.txt test.txt
补充:方便配置防火墙,需要固定nfs服务端口
]# rpcinfo -p localhost //查看RPC注册的端口
]# vim /etc/sysconfig/nfs //分配端口,编写配置文件
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
]# systemctl restart nfs-server 重启服务
]# rpcinfo -p localhost //端口被固定。
二、部署安全NFS服务
——结合LDAP+Kerberos 技术,实现认证和加密技术
——同一个kerberos领域内,认证用户实现“一次密码认证,多次免密登录”的通行证机制。
2.1 调整共享目录配置,启用安全NFS支持
2.2 部署kerberos 密钥文件
2.3 还需要启动nfs-secure-server服务
访问安全NFS共享文件的必备条件
1) 部署kerberos密钥文件
2)启动客户端的nfs-secure服务
3)调整挂载设置 添加sec=krb5p参数