如何在 CentOS 上配置 iptables
在 CentOS 等基于 Linux 的系统中,iptables 是一个命令行实用程序,允许系统管理员设置 Linux 内核防火墙的 IP 数据包过滤规则,这些规则作为附加 Netfilter 模块执行。这些过滤器由单独的表构成,每个表都有一组关于如何处理网络流量数据包的规则。目前,针对协议存在不同的程序和内核模块,例如用于以太网数据包的ebtables、用于ARP的arptables、用于IPv6的ip6tables、对于IPv4,使用iptables。 iptables 安全工具还用于启用可接受的流量、阻止不需要的流量、将数据包重新路由到其他 TCP/UDP 端口、保护系统免受拒绝服务攻击等等。
iptables 中的表类型
表是执行特定任务的链的集合。 NAT、Filter 和 Mangle 表是 iptables 的三个主要表:
NAT表用于将连接重定向到其他网络接口。
过滤器表是 iptables 中使用的默认过滤器,它管理进出系统的数据包流。它还负责允许和阻止连接。
Mangle表用于更改数据包标头。
iptables 中的链类型
每个 iptables 都包含特定的链,其中包含一组按特定顺序执行的规则。在 iptables 中,我们有五个主链:
输入:此链处理协议或服务的传入连接和数据包。
输出:数据包经过处理或处理后,被添加到输出链中。
预路由:当数据包进入网络接口时,它会通过预路由链进行预路由。
转发:这条转发链负责路由,或者我们可以说它将传入的数据包从源转发到目的地。
后路由:路由决策是在数据包离开网络接口并添加到后路由链之前做出的。
iptables 广泛用于指代内核级组件。包含共享代码部分的内核模块称为 x_tables。所有四个模块(eb、arp、v6 和 v4)均使用此内核模块。它还用于指代完整的防火墙体系结构。
在大多数基于 Linux 的系统中,Iptables 安装在“usr/sbin/iptables”文件中。它也可以位于“/sbin/iptables”中。但是,iptables 也可以作为服务运行。这就是为什么“/usr/sbin”是它的首选位置。
现在,我们将演示如何在 CentOS 上配置 iptables。在此之前,如果您的系统上尚未安装 iptables,请先安装它。
如何在 CentOS 上安装 iptables
在 CentOS 终端中,您可以通过执行以下命令轻松安装 iptables:
无错误输出表明iptables实用程序已成功安装。
如何在 CentOS 上启用 iptables
要跟进启用 iptables 服务的过程,第一步是启动其服务:
要使该服务在 CentOS 启动时自动启动,请在系统终端中写入以下命令:
执行下面给出的 systemctl 命令来验证 iptables 服务的状态:
如何在 CentOS 上配置 iptables
您可以使用“iptables”命令通过执行以下命令来查看当前的 iptables 规则:
这里:-n 添加用于数字输出。例如,端口号和IP地址以数字格式打印。
-v 用于详细输出。添加此选项是为了列出规则选项和接口名称等信息。
-L 用于列出 iptables 规则。
默认情况下仅打开 SSH 端口 22。您将得到如下输出:
要阻止网络上的所有空数据包,请执行下面给出的 iptables 命令:
如果您想添加您的本地主机到防火墙过滤器,请执行以下命令:
要列出 iptables 链规则及其索引号,请在 CentOS 终端中写出以下给出的命令:
这里,添加“-L”选项来列出链规则,并添加“–lines-numbers”选项来显示其索引号:
CentOS中的FirewallD是什么
FirewallD 是一种防火墙服务,通过命令行实用程序“firewall-cmd”进行管理。如果您更喜欢 iptables 命令行语法,可以禁用 FirewallD 并返回到标准 iptables 配置。在下一节中,我们将演示在 CentOS 系统上禁用 FirewallD 的过程。
如何在 CentOS 上禁用 FirewallD
如果您想在 CentOS 上停止 FirewallD,请按“CTRL+ALT+T”打开终端,然后在其中执行以下命令:
此命令将阻止 FirewallD 执行其功能:
您应该知道,在系统启动时,FirewallD 服务会自动启动。要禁用 FirewallD 服务,请写出以下命令:
要限制其他服务启动 FirewallD 服务,请屏蔽 FirewallD 服务: