NFS-网络文件系统解决开启防火墙下如何挂载

2021年11月19日09:49:41 发表评论
摘要

【心语】当你的才华不足以满足你的野心时请静下心来学习吧!

  • 简述NFS
    网络文件系统,能使使用者访问网络上别处的文件,就像在使用自己的计算机一样,通过权限配置跨域实现读写,就像本属于自己的本地磁盘一样
  • NFS工作原理
    NFS是当前主流异构平台共享文件系统之一,主要应用在UNIX环境下,最早是由Sun
    Microsystems开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在FreeBSD、SCO、Solaris等异构操作系统平台,允许一个系统在网络上与他人共享目录和文件,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,使得每个计算的节点能够想使用本地资源一样方便的使用网上的资源,换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享

    NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其它计算机提供对文件系统的访问,其过程称为输出,NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“”输送“”出来,文件通常以块为单位进行传输。其大小是8kb(虽然它肯能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享通信,从而是客户机远程地访问保存在存储设备上的数据

  • C/S架构特性
    #、NFS服务器端
    command:rpcinfo -p localhost 查看rpc信息列表(包括注册服务)
    1、rpc服务监听端口为111(portmap)
    2、NFS服务启动后montd会在rpc随机注册一个端口
    3、NFS服务监的端口为2049
  • Clien-server 远程调用执行过程
    1、client 请求远端的rpc服务要求访问文件
    2、接收到客户端的请求后,rpc会返回mountd的端口给客户端
    3、客户端接收到请求后会更具rpc提供的端口去请求mountd
    4、monutd接收到请求会验证请求客户端来源IP是否在NFS权限允许范围内
    5、如果在则会提供一个令牌给客户端,客户端根据令牌请求nfsd服务最终完成远程调用执行
  • 完成如下实验测试
    1、部署NFS并通过客户端挂载
    2、固定NFS端口-将通过iptables来验证
  • 实验环境

操作O

服务器地址 主机名 角色
Centos 7.6 192.168.44.133 133node server
Centos 7.6 192.168.45.154 154node client
  • 部署NFS并通过客户端挂载
    1、两台机都执行此操作
    [root@133node ~]# systemctl stop firewalld \\关闭防火墙
    [root@133node ~]# iptables –F
    [root@133node ~]# setenforce 0 \\临时关闭selinux
    #服务端133node执行
    1、检查updates中是否存在软件包
    [root@133node ~]# yum info nfs-utils
    NFS-网络文件系统解决开启防火墙下如何挂载
    2、直接通过yum安装即可
    [root@133node ~]# yum install nfs-utils –y
    3、直接配置共享路径如果路径不存在创建即可
    [root@133node ~]# vim /etc/exports
    /opt/nfsshare 192.168.45.154/32(sync,rw,all_squash)
    [root@133node ~]# cat /etc/exports
    [root@133node ~]# mkdir /opt/nfsshare
    NFS-网络文件系统解决开启防火墙下如何挂载
    sync:文件同时写入磁盘和内存
    rw:可读写,注意,仅仅这里设置成读写客户端还是不能真正常写入,还要正确的设置共享目录权限
    all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限
    async:文件暂存于内存,而不是直接写入内存
    ro:只读
    4、启动NFS
    [root@133node ~]# systemctl start nfs.service
    5、查看rpc注册端口
    [root@133node ~]# rpcinfo -p localhost
    NFS-网络文件系统解决开启防火墙下如何挂载
    6、授权客户端可读写,将所有用户压缩成匿名用户访问
    [root@133node ~]# exportfs –r \\加载配置文件
    [root@133node ~]# chown -R nfsnobody. /opt/nfsshare/
  • 客户端154node配置
    [root@154node ~]# yum install showmount -y \\安装showmount命令
    [root@154node ~]# showmount -e 192.168.44.133 \\显示被挂载的共享目录
    NFS-网络文件系统解决开启防火墙下如何挂载
  • 创建挂载点并挂载76的共享存储
    [root@154node ~]# install -d -m 755 /datafile \\以755的权限创建目录
    [root@154node ~]# mount -t nfs 192.168.44.133:/opt/nfsshare /datafile
    NFS-网络文件系统解决开启防火墙下如何挂载
  • 验证读写是否正常
    [root@154node datafile]# > 123
    [root@154node datafile]# echo hellwoerd >123
    [root@154node datafile]# cat 123
    NFS-网络文件系统解决开启防火墙下如何挂载
    。固定NFS端口-将通过iptables来验证
    #服务端33node操作
    1、固定端口NFS端口,默认则是从内核分配的随机端口范围中监听
    [root@154node ~]# cat /proc/sys/net/ipv4/ip_local_port_range
    NFS-网络文件系统解决开启防火墙下如何挂载
    2、修改/etc/sysconfig/nfs 添加如下配置保存退出
    [root@154node ~]# vim /etc/sysconfig/nfs
    RQUOTAD_PORT=30001
    LOCKD_TCPPORT=30002
    LOCKD_UDPPORT=30002
    MOUNTD_PORT=30003
    STATD_PORT=30004
    NFS-网络文件系统解决开启防火墙下如何挂载
    3、nlockmgr有时候不生效可以在/etc/modprobe.d/lockd.conf加上如下两行
    [root@154node ~]# vim /etc/modprobe.d/lockd.conf
    options lockd nlm_tcpport=30002
    options lockd nlm_udpport=30002
    NFS-网络文件系统解决开启防火墙下如何挂载
    4、以上操作完成重启NFS,以后重启端口都不会发生改变
    [root@154node ~]# systemctl restart nfs.service
    NFS-网络文件系统解决开启防火墙下如何挂载
    5、客户端验证挂载(154node)操作
    [root@154node ~]# mount -t nfs 133node:/opt/nfsshare /datafile/
    NFS-网络文件系统解决开启防火墙下如何挂载
    6、开启防火墙限制出口和入口
    [root@133node ~]# iptables -t filter -A OUTPUT -d 192.168.45.206/32 -j ACCEPT
    [root@133node ~]# iptables -t filter -A INPUT -d 192.168.44.133 -p tcp --dport 22 -j ACCEPT
    -d 指定目的地址
    -s 指定数据包的源地址
    ACCEPT :接收数据包
    DROP: 丢弃数据包
    [root@133node ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -j DROP \\限制任意主机访问我的任意端口
    [root@133node ~]# iptables -t filter -A OUTPUT -d 0.0.0.0/0 -j DROP \\限制本机访问其它主机任意端口
    7、验证端口
    [root@154node ~]# telnet 192.168.44.133 111
    [root@154node ~]# telnet 192.168.44.133 2049
    NFS-网络文件系统解决开启防火墙下如何挂载 154node客户端到133node服务端 端口已经不通了!
    8、验证挂载,可以看出已经无法挂载了
    NFS-网络文件系统解决开启防火墙下如何挂载
    9、可以通过tcpdump在抓个包,标示位始终是S连接请求没响应,无法建立连接(154客户端操作)
    NFS-网络文件系统解决开启防火墙下如何挂载
    10、服务端开发相应的固定NFS端口
    #放开客户端如下端口TCP数据包请求通过
    [root@133node ~]# iptables -t filter -I INPUT 1 -s 192.168.45.154 -m multiport -p tcp --dport 111,2049,30001,30002,30003,30004,30005 -j ACCEPT
    #放开客户端如下端口UDP端口数据包请求通过
    [root@133node ~]# iptables -t filter -I INPUT 1 -s 192.168.45.154 -m multiport -p udp --dport 111,2049,30001,30002,30003,30004,30005 -j ACCEPT
    #开放本机访问客户端的任何端口
    [root@133node ~]# iptables -t filter -I OUTPUT 1 -d 192.168.45.154 -j ACCEPT
    11、在次挂载
    [root@154node ~]# mount -t nfs 133node:/opt/nfsshare/ /datafile/
    NFS-网络文件系统解决开启防火墙下如何挂载
  • 微信公众号
  • 这是我的微信公众号扫一扫
  • weinxin
  • 我的QQ技术群
  • 我的QQ技术群扫一扫
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: