在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的过程。