如何在centos7中正确配置netfilter防火墙规则?

网络文件系统(NFS)是一种在网络中不同计算机之间共享文件的分布式文件系统协议,它允许客户端系统像访问本地存储一样透明地访问服务器上的远程文件,在 CentOS 7 系统中,配置和使用 NFS 是一项非常实用的技能,尤其适用于需要集中存储数据的场景,如 Web 服务器集群共享静态资源、开发环境共享代码库或提供统一的用户主目录,本文将详细介绍在 CentOS 7 上部署 NFS 服务端和客户端的完整流程。

如何在centos7中正确配置netfilter防火墙规则?

环境准备与软件安装

在开始之前,我们需要准备两台 CentOS 7 机器,一台作为 NFS 服务器,另一台作为客户端,假设它们的 IP 地址如下:

  • NFS 服务器: 192.168.1.10
  • NFS 客户端: 192.168.1.20

在服务器和客户端上都需要安装 nfs-utils 软件包,它提供了 NFS 服务和客户端所需的所有工具。

在服务器端 (192.168.1.10) 执行:

sudo yum install -y nfs-utils rpcbind

rpcbind 是一个必需的服务,它负责管理 RPC(远程过程调用)服务的端口号映射。

在客户端 (192.168.1.20) 执行:

sudo yum install -y nfs-utils

服务器端配置

安装完成后,接下来配置 NFS 服务器。

启动并设置服务开机自启
NFS 服务依赖于 rpcbind,因此必须先启动并设置 rpcbind

sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server

创建共享目录
创建一个用于共享的目录,并设置适当的权限,我们创建 /shared/data 目录。

sudo mkdir -p /shared/data
sudo chmod 755 /shared/data

配置导出目录
NFS 的核心配置文件是 /etc/exports,我们需要在这个文件中定义要共享的目录以及允许访问的客户端及其权限。
编辑 /etc/exports 文件:

sudo vi /etc/exports

在文件末尾添加以下行:

如何在centos7中正确配置netfilter防火墙规则?

/shared/data 192.168.1.20(rw,sync,no_root_squash,no_subtree_check)

这行配置的含义是:

  • /shared/data: 要共享的目录路径。
  • 168.1.20: 允许访问此共享的客户端 IP 地址,也可以使用网段(如 168.1.0/24)或主机名。
  • (rw,sync,no_root_squash,no_subtree_check): 访问权限选项,括号内不能有空格。
    • rw: 允许读写操作。
    • sync: 数据同步写入磁盘,保证数据一致性,但性能稍低。
    • no_root_squash: 允许客户端的 root 用户在共享目录上拥有服务器的 root 权限,为了安全,仅在信任的网络环境中使用。
    • no_subtree_check: 禁用子目录检查,可以提高性能和稳定性。

使配置生效
保存 /etc/exports 文件后,使用以下命令重新加载配置,使其立即生效:

sudo exportfs -a

可以使用 showmount -e 命令查看当前服务器上已导出的共享列表。

客户端挂载与使用

在客户端机器上,我们需要将服务器共享的目录挂载到本地。

创建挂载点
在客户端创建一个目录作为挂载点。

sudo mkdir -p /mnt/nfs_data

执行挂载
使用 mount 命令进行挂载:

sudo mount -t nfs 192.168.1.10:/shared/data /mnt/nfs_data

验证挂载
挂载成功后,可以使用 df -hTmount | grep nfs 命令来验证。

df -hT | grep nfs

输出应类似如下:

168.1.10:/shared/data nfs4       50G  1.5G   48G   4% /mnt/nfs_data

你可以在 /mnt/nfs_data 目录中创建、读取和删除文件,这些操作都会实时反映到服务器的 /shared/data 目录中。

实现开机自动挂载

为了确保客户端重启后能自动挂载 NFS 共享,我们需要将其添加到 /etc/fstab 文件中。
编辑 /etc/fstab 文件:

如何在centos7中正确配置netfilter防火墙规则?

sudo vi /etc/fstab

在文件末尾添加以下行:

168.1.10:/shared/data /mnt/nfs_data nfs defaults,_netdev 0 0

这里的 _netdev 选项非常重要,它告诉系统这是一个网络设备,必须等待网络启动完成后再进行挂载,避免启动失败。

防火墙与NFS版本

防火墙配置
如果服务器开启了防火墙(默认 firewalld),需要开放 NFS 相关的服务。

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

NFS 版本选择
CentOS 7 默认支持 NFSv4 和 NFSv3,NFSv4 相比 NFSv3 有显著改进。

特性 NFSv3 NFSv4
端口 使用随机端口,需配置 lockdstatd 端口 仅使用 TCP 2049 端口,防火墙配置更简单
安全性 依赖 IP/主机名验证,无内置加密 支持 Kerberos 强认证和加密(更安全)
性能 性能良好 性能更优,尤其在处理大量小文件时
协议 无状态协议 有状态协议,网络中断恢复能力更强

在大多数新部署中,推荐使用 NFSv4,客户端在挂载时可以通过 -o vers=4 明确指定版本,但通常系统会自动协商使用最高版本。


相关问答FAQs

问题1:客户端挂载时出现 “Permission Denied” 错误,该如何排查?
解答: 这是一个常见问题,可以从以下几个方面进行排查:

  1. :检查客户端 IP 地址是否在允许列表中,权限选项(如 rw)是否正确,修改后记得执行 exportfs -r
  2. 服务器端目录权限:检查被共享的目录本身(如 /shared/data)的 Linux 权限(ls -ld /shared/data),确保运行挂载命令的用户或 NFS 客户端用户有足够的访问权限。
  3. SELinux 状态:SELinux 处于 Enforcing 模式,它可能会阻止 NFS 访问,可以临时关闭 SELinux(setenforce 0)测试,或永久设置布尔值允许 NFS 读写:setsebool -P nfs_export_all_rw on
  4. 防火墙:确认服务器防火墙已正确开放 nfs, mountd, rpc-bind 服务。


解答: no_root_squash 会带来严重的安全风险,因为它允许客户端的 root 用户直接操作服务器文件,更安全的做法是:

  1. :这样客户端的 root 用户请求会被映射到服务器上的一个匿名用户(通常是 nfsnobody),无法直接修改服务器的关键文件。
  2. 用户权限映射:在服务器和客户端上创建相同的普通用户(UID 和 GID 都为 1001 的 appuser),然后以该用户的身份进行文件操作,确保文件权限一致。
  3. 启用 NFSv4 和 Kerberos:这是最安全的方式,通过配置 Kerberos 认证,可以对用户进行强身份验证,并对网络传输的数据进行加密,有效防止未授权访问和数据窃听,但这需要搭建额外的 Kerberos 服务,配置相对复杂。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-11 01:55
下一篇 2025-10-11 02:01

相关推荐

  • 如何有效地管理服务器和客户端的日志文件?

    服务器客户端日志文件是一种记录用户与服务器之间交互信息的文本文件,通常由服务器自动生成。这些日志文件包含了关于访问时间、请求类型、IP地址、错误消息等详细信息,对于分析网站流量、监控性能和排查问题至关重要。

    2024-07-25
    007
  • 房地产项目网站建设方案_创建设备

    房地产项目网站方案:打造用户友好界面,展示楼盘信息;集成vr看房增强体验;后台管理更新内容;保障数据安全。

    2024-07-19
    005
  • CentOS 7服务器如何配置DHCP中继实现跨网段通信?

    在现代企业网络环境中,为了提升网络性能、安全性和管理效率,通常会使用VLAN(虚拟局域网)技术将一个物理网络划分为多个逻辑上隔离的子网,这种设计也带来了新的挑战:DHCP(动态主机配置协议)请求是基于广播的,而路由器默认不会转发广播包到其他VLAN,这意味着,如果将DHCP服务器放置在某个VLAN中,它将无法为……

    2025-10-11
    004
  • CentOS普通用户如何获取root权限?

    在CentOS及其他大多数基于Linux的系统中,不直接使用root用户进行日常操作,并非一种限制,而是一种被广泛推荐的核心安全实践,这种工作模式的背后,是“最小权限原则”的深刻体现,旨在最大限度地减少因误操作或安全漏洞对系统造成的损害,为什么应避免直接使用root直接以root身份登录系统,相当于拥有了对整个……

    2025-10-09
    002

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信