如何在CentOS上配置iptables

196 阅读3分钟

CentOS等基于Linux的系统中**,iptables是一个命令行工具,允许系统管理员设置Linux内核防火墙的IP包过滤规则,这些规则作为额外的Netfilter模块执行。这些过滤器被结构化在不同的表格中,每个表格都有一套网络流量数据包应该如何处理的规则。目前,针对协议存在不同的程序和内核模块,如ebtables用于以太网数据包,arptables用于ARP,ip6tables用于和IPv6,对于IPv4,iptables**被使用。iptables安全工具还被用来启用可接受的流量,阻止不需要的流量,将数据包重新路由到其他TCP/UDP端口,保护系统免受拒绝服务攻击,等等。

iptables中的表的类型

表是一个执行特定任务的链的集合。NAT、过滤器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

结论

在基于Linux的系统中**,比如CentOS,iptables是一个命令行防火墙,允许系统管理员利用可配置的表规则来控制传入和传出的流量。每个表都包括一连串的用户定义或内置规则。在这篇文章中,我们为你提供了在CentOS上安装和配置iptables的**方法。此外,我们还向您展示了在您的系统上禁用FirewallD的过程。