如何在 CentOS 上配置 iptables如何在 CentOS 上配置 iptables如何在 CentOS 上配置 iptables如何在 CentOS 上配置 iptables
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 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:

$ sudo yum install iptables-services

无错误输出表明iptables实用程序已成功安装。

如何在 CentOS 上启用 iptables

要跟进启用 iptables 服务的过程,第一步是启动其服务:

$ sudo systemctl start iptables
$ sudo systemctl start ip6tables

要使该服务在 CentOS 启动时自动启动,请在系统终端中写入以下命令:

$ sudo systemctl enable iptables
$ sudo systemctl enable ip6tables

执行下面给出的 systemctl 命令来验证 iptables 服务的状态:

$ sudo systemctl status iptables

如何在 CentOS 上配置 iptables

您可以使用“iptables”命令通过执行以下命令来查看当前的 iptables 规则:

$ sudo iptables -nvL

这里:-n 添加用于数字输出。例如,端口号和IP地址以数字格式打印。

-v 用于详细输出。添加此选项是为了列出规则选项和接口名称等信息。

-L 用于列出 iptables 规则。

$ sudo ip6tables -nvL

默认情况下仅打开 SSH 端口 22。您将得到如下输出:

要阻止网络上的所有空数据包,请执行下面给出的 iptables 命令:

$ sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

如果您想添加您的本地主机到防火墙过滤器,请执行以下命令:

$ sudo iptables -A INPUT -i lo -j ACCEPT

要列出 iptables 链规则及其索引号,请在 CentOS 终端中写出以下给出的命令:

$ sudo iptables -L --line-numbers

这里,添加“-L”选项来列出链规则,并添加“–lines-numbers”选项来显示其索引号:

CentOS中的FirewallD是什么

FirewallD 是一种防火墙服务,通过命令行实用程序“firewall-cmd”进行管理。如果您更喜欢 iptables 命令行语法,可以禁用 FirewallD 并返回到标准 iptables 配置。在下一节中,我们将演示在 CentOS 系统上禁用 FirewallD 的过程。

如何在 CentOS 上禁用 FirewallD

如果您想在 CentOS 上停止 FirewallD,请按“CTRL+ALT+T”打开终端,然后在其中执行以下命令:

$ sudo systemctl stop firewalld

此命令将阻止 FirewallD 执行其功能:

您应该知道,在系统启动时,FirewallD 服务会自动启动。要禁用 FirewallD 服务,请写出以下命令:

$ sudo systemctl disable firewalld

要限制其他服务启动 FirewallD 服务,请屏蔽 FirewallD 服务:

$ sudo systemctl mask --now firewalld

结论

©2015-2025 艾丽卡 support@alaica.com