网站搜索

如何在 Linux 中启动/停止以及启用/禁用 FirewallD 和 Iptables 防火墙


防火墙是一种软件,充当用户系统和外部网络之间的屏障,允许某些数据包通过,同时丢弃其他数据包。防火墙通常在网络层上运行,即在 Ipv4 和 Ipv6 的 IP 数据包上运行。

数据包是否会通过或被阻止,取决于防火墙中针对此类数据包的规则。这些规则可以是内置的或用户定义的。进入网络的每个数据包都必须通过此防护罩,该防护罩将根据其中为此类数据包定义的规则对其进行验证。

每个规则都有一个目标操作,当数据包无法满足该规则时将应用该目标操作。在 Linux 系统上,防火墙即服务由许多软件提供,最常见的是:firewalldiptables

在 Linux 中使用了许多不同类型的防火墙,但最标准的防火墙是 IptablesFirewalld,这将在本文中讨论。

什么是FirewallD

FirewallD是Linux系统的动态防火墙管理器。该服务用于配置网络连接,从而决定允许哪些外部网络或内部数据包通过网络以及阻止哪些数据包。

它允许两种类型的配置:永久运行时。运行时配置将在服务重新启动时丢失,而永久配置将在系统启动过程中保留,以便每次服务激活时都会遵循它们。

与这些配置相对应,firewallD 有两个目录,default/fallback 目录(/usr/lib/firewall),用于更新系统丢失的目录和系统配置(/etc/firewall) Strong>) 保持永久并覆盖默认值(如果给定)。这是 RHEL/CentOS 7 和 Fedora 18 中的默认服务。

什么是 iptables

Iptables 是另一个决定允许、丢弃或返回 IP 数据包的服务。 Iptables 服务管理 Ipv4 数据包,而 Ip6tables 管理 Ipv6 数据包。该服务管理一个表列表,其中每个表都出于不同的目的而维护,例如:“过滤器”表用于防火墙规则,“nat”表在新规则的情况下进行查询连接,“mangle”(如果数据包发生更改)等。

每个表还具有可以内置或用户定义的链,其中链表示一组适用于数据包的规则,从而决定该数据包的目标操作应该是什么,即它必须允许<已阻止已返回。该服务是 RHEL/CentOS 6/5 和 Fedora、ArchLinux、Ubuntu 等系统上的默认服务。

要了解有关防火墙的更多信息,请点击以下链接:

  1. 了解 IPtables 防火墙基础知识和技巧
  2. 在 Linux 中配置 Iptables 防火墙
  3. 在 Linux 中配置 FirewallD
  4. 在 Linux 中管理防火墙的有用 FirewallD 规则
  5. 如何使用 FirewallD 和 Iptables 控制网络流量

在本文中,我们将解释如何在 Linux 中启动、停止或重新启动 IptablesFirewallD 服务。

如何启动/停止和启用/禁用 FirewallD 服务

如果您使用的是 CentOS/RHEL 7Fedora 18+ 版本,则应按照以下说明来管理 FirewallD 服务。

启动FirewallD服务

systemctl start firewalld 
停止FirewallD服务
systemctl stop firewalld
检查FirewallD的状态
systemctl status firewalld
检查FirewallD的状态
firewall-cmd --state

作为替代方案,您可以禁用firewalld服务,以便它不会将规则应用于数据包并再次启用所需的规则。

禁用 FirewallD 服务
systemctl disable firewalld
启用FirewallD服务
systemctl enable firewalld
屏蔽FirewallD服务
systemctl mask firewalld

此外,您还可以屏蔽防火墙服务,该服务会创建 firewall.service/dev/null 的符号链接,从而禁用该服务。

取消屏蔽 FirewallD 服务
systemctl unmask firewalld

这与屏蔽服务相反。这将删除在屏蔽期间创建的服务的符号链接,从而重新启用该服务。

如何启动/停止和启用/禁用 IPtables 服务

RHEL/CentOS 6/5/4Fedora 12-18 上,iptables 防火墙作为之前版本和更高版本提供, iptables 服务可以通过以下方式安装:

yum install iptables-services

然后,可以通过以下命令启动、停止或重新启动该服务:

启动 iptables 服务
systemctl start iptables
OR
service iptables start
停止 iptables 服务
systemctl stop iptables
OR
service iptables stop
禁用 iptables 服务

systemctl disable iptables
Or
service iptables save
service iptables stop
启用 iptables 服务

systemctl enable iptables
Or
service iptables start
检查 iptables 服务的状态
systemctl status iptables
OR
service iptables status

然而,在 Ubuntu 和其他一些 Linux 发行版上,ufw 是用于管理 iptables 防火墙服务的命令。 Ufw 为用户提供了一个简单的界面来处理 iptables 防火墙服务。

启用 Ufw Iptables 防火墙
sudo ufw enable
禁用 Ufw Iptables 防火墙
sudo ufw disable
检查 Ufw Iptables 防火墙的状态
sudo ufw status 

但是,如果您想列出 iptables 中包含所有规则的链,以下命令可以帮助您实现相同的目的:

iptables -L -n -v

结论

这些技术可以帮助您在基于 Linux 的系统中启动、停止、禁用和启用数据包管理服务。不同的Linux发行版可以有不同的默认服务,例如:Ubuntu可以将iptables作为默认和预安装的服务,而CentOS可以将firewalld作为默认配置的服务来管理IP数据包的传入和传出。

本文介绍的是在几乎所有 Linux 发行版上管理这些服务的最常见技巧,但是,如果您发现某些内容并想在本文中添加内容,我们随时欢迎您发表评论。