如何在 Linux 系统中配置 firewalld 防火墙策略

本文详细介绍了Linux系统中firewalld防火墙的使用,包括firewalld的概念、zones和服务,以及如何进行临时和永久设置。内容涵盖开启/关闭服务、端口管理、设置端口转发、添加富规则和Direct规则等操作,帮助读者全面掌握firewalld的管理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

防火墙对于控制进出 Linux 服务器的网络流量至关重要。它能够定义一组防火墙规则来控制主机上的传入流量。本文介绍如何添加、删除、启用和禁用防火墙规则和区域。

什么是FirewallD

“firewalld”是firewall daemon。它提供了一个动态管理的防火墙,带有一个非常强大的过滤系统,称为 Netfilter,由 Linux 内核提供。

FirewallD 使用zones和services的概念,而 iptables 使用chain和rules。与 iptables 相比,“FirewallD”提供了一种非常灵活的方式来处理防火墙管理。

每个zones都可以按照指定的标准进行配置,以根据你的要求接受或拒绝某些服务或端口,并且它可以与一个或多个网络接口相关联。默认区域为public区域。
[yijiFirewalld zones[/yiji]
以下命令列出 FirewallD 提供的zones。运行以下命令以列出zones:

[root@server1 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
  • block: 对于 IPv4,任何传入连接都会被 icmp-host-prohibited 消息拒绝,对于 IPv6 则是 icmp6-adm-prohibited。
  • dmz:应用于你的DMZ区域的计算机,这些计算机可公开访问,但对内部网络的访问受到限制。仅接受选定的传入连接。
  • drop:任何传入连接都将在没有任何通知的情况下被丢弃。只允许传出连接。
  • external:用于在系统中充当路由器时启用 NAT 伪装的外部网络。只允许选定的传入连接。
  • home:用于家庭网络。仅接受选定的传入连接。
  • internal:用于内部网络,网络上的其他系统通常是可信任的。仅接受选定的传入连接。
  • public:用于公共区域,仅接受选定的传入连接。
  • trusted:接受所有网络连接。
  • work:用于工作区域,同一网络上的其他计算机大多受信任。仅接受选定的传入连接。

Firewalld services

Firewalld 的service配置是预定义的服务。要列出可用的服务模块,请运行以下命令:

[root@server1 ~]# firewall-cmd --get-services

Firewalld的临时设置和永久设置

Firewalld 使用两个独立的配置,即临时设置和永久设置:

  • 临时设置: 临时设置不会在系统重启时保持不变。这意味着临时设置不会自动保存到永久设置中。
  • 永久设置: 永久设置会存储在配置文件中,将在每次重新启动时加载并成为新的临时设置。

启用、禁用Firewalld

Firewalld默认安装在Centos7/8中,下面命令时如何启用或者停用firewalld:

# 启用Firewalld
[root@server1 ~]# systemctl start firewalld
# 禁用Firewalld
[root@server1 ~]# systemctl stop firewalld
# 开机启动
[root@server1 ~]# systemctl enable firewlald
# 禁止开机启动
[root@server1 ~]# systemctl disable f
<think>好的,我现在需要帮助用户在Linux系统配置firewalld防火墙以允许NFS服务器正常工作。根据用户提供的引用内容,我需要整合相关信息,并确保步骤正确。 首先,用户已经引用了四个相关的资料,其中引用1、2、3和4提到了安装NFS服务、配置共享目录以及firewalld的基本知识。特别是引用1和3详细说明了NFS服务端和客户端的安装步骤,以及防火墙端口的开放方法。引用4则解释了firewalld的工作原理,说明它和iptables一样基于netfilter,但管理方式不同。 接下来,我需要确定在firewalld中允许NFS服务需要开放哪些服务或端口。根据引用1,开放NFS相关端口包括nfs、mountd、rpc-bind这三个服务。而引用3提到安装NFS服务时的步骤,但没有具体说明防火墙配置,但引用1补充了这部分,需要添加这些服务并重新加载防火墙。 步骤应该是这样的:首先安装NFS服务端工具,然后配置共享目录,接着在firewalld中添加对应的服务,最后重新加载防火墙规则。同时,客户端需要安装NFS客户端工具,并挂载共享目录。此外,可能需要启用并启动NFS相关服务,如nfs-server和rpcbind。 需要检查是否有遗漏的步骤,例如是否需要永久添加防火墙规则(使用--permanent参数),以及配置共享目录后的导操作(exportfs -arv)。引用3中提到的配置共享目录后需要执行exportfs命令,这也是关键的一步。 另外,用户可能会遇到的常见问题包括防火墙规则未正确加载,或者NFS服务未启动,导致客户端无法连接。因此,在回答中需要强调这些步骤,并提醒用户检查服务状态和规则是否生效。 最后,生成相关问题时要围绕NFS配置防火墙设置,例如如何测试NFS连接、排除故障的方法,或者防火墙的其他相关服务配置。 总结步骤: 1. 安装NFS服务端工具。 2. 配置共享目录和导设置。 3. 添加firewalld服务(nfs、mountd、rpc-bind)。 4. 重新加载防火墙并重启相关服务。 5. 客户端安装工具并挂载目录。 6. 验证连接。 确保每个步骤都参考了正确的引用,并在需要的地方添加引用标识。</think>### 分步配置指南 #### 1. **安装NFS服务端工具** 根据系统类型选择安装命令: - **CentOS/RHEL**: ```bash sudo yum install nfs-utils -y ``` - **Debian/Ubuntu**: ```bash sudo apt update && sudo apt install nfs-kernel-server -y ``` #### 2. **配置NFS共享目录** - **创建共享目录**: ```bash sudo mkdir /shared_directory sudo chmod 777 /shared_directory # 按需设置权限 ``` - **编辑导配置文件**: 修改 `/etc/exports`,添加规则(例如允许所有客户端访问): ```bash /shared_directory *(rw,sync,no_root_squash) ``` - **应用配置**: ```bash sudo exportfs -arv # 重新导共享目录[^3] ``` #### 3. **配置firewalld开放NFS服务** - **添加NFS相关服务**: ```bash sudo firewall-cmd --permanent --add-service=nfs # 开放NFS主服务端口(2049) sudo firewall-cmd --permanent --add-service=mountd # 开放文件挂载管理端口 sudo firewall-cmd --permanent --add-service=rpc-bind # 开放RPC绑定端口(111) ``` - **重新加载防火墙**: ```bash sudo firewall-cmd --reload # 使规则生效[^2] ``` #### 4. **启动并启用NFS相关服务** - **启动服务**: ```bash sudo systemctl start nfs-server rpcbind sudo systemctl enable nfs-server rpcbind # 设置开机自启 ``` #### 5. **客户端配置** - **安装NFS客户端工具**: - CentOS/RHEL:`sudo yum install nfs-utils -y` - Debian/Ubuntu:`sudo apt install nfs-common -y` - **挂载共享目录**: ```bash sudo mount -t nfs <服务器IP>:/shared_directory /本地挂载点 ``` #### 6. **验证配置** - **查看防火墙规则**: ```bash sudo firewall-cmd --list-all # 确认nfs、mountd、rpc-bind已允许[^4] ``` - **测试客户端访问**: ```bash df -h # 检查挂载是否成功 touch /本地挂载点/testfile # 测试写入权限 ``` --- ### 关键注意事项 - **端口范围**:NFS依赖动态端口(如`rpc.mountd`),若防火墙严格限制,需额外固定端口并开放[^1]。 - **权限问题**:确保共享目录的权限(`/etc/exports`中的配置)与文件系统权限匹配。 - **服务依赖**:NFS需要`rpcbind`服务支持,启动时需同时激活。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值