如何列出和删除 Iptables 防火墙规则

您所在的位置:网站首页 如何删除outlook规则 如何列出和删除 Iptables 防火墙规则

如何列出和删除 Iptables 防火墙规则

2024-07-09 13:10:55| 来源: 网络整理| 查看: 265

如何列出和删除 Iptables 防火墙规则 介绍

Iptables 是一种防火墙,在大多数 Linux 系统的网络安全中起着至关重要的作用。虽然许多 iptables 教程会教您如何创建防火墙规则来保护您的服务器,但本教程将侧重于防火墙管理的不同方面:列出和删除规则。

在本教程中,我们将介绍如何执行以下 iptables 任务:

列出规则 清除数据包和字节计数器 删除规则 刷新链(删除链中的所有规则) 刷新所有链和表,删除所有链,并接受所有流量

注意:使用防火墙时,注意不要通过阻止 SSH 流量(端口 :22,默认情况下)将自己锁在自己的服务器之外。如果您由于防火墙设置而失去访问权限,您可能需要通过带外控制台连接到它以修复您的访问权限。

先决条件

本教程假设您使用的是安装了 iptables 命令的 Linux 服务器,并且您的用户具有 sudo 权限。

如果您需要有关此初始设置的帮助,请参阅我们的 CentOS。

按规范列出规则

我们先看看如何列出规则。有两种不同的方式来查看您的活动 iptables 规则:在表格中或作为规则规范列表。这两种方法以不同的格式提供大致相同的信息。

要按规范列出所有活动的 iptables 规则,请运行带有 -S 选项的 iptables 命令:

sudo iptables -S Output-P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N ICMP -N TCP -N UDP -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p udp -m conntrack --ctstate NEW -j UDP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP -A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A INPUT -j REJECT --reject-with icmp-proto-unreachable -A TCP -p tcp -m tcp --dport 22 -j ACCEPT ...

如您所见,输出看起来就像用于创建它们的命令,没有前面的 iptables 命令。如果您曾经使用过 iptables-persistent 或 iptables save,这看起来也类似于 iptables 规则配置文件。

列出特定链

如果想限制输出到特定的链(INPUT、OUTPUT、TCP等),可以直接指定链名在 -S 选项之后。例如,要显示 TCP 链中的所有规则规范,您可以运行以下命令:

sudo iptables -S TCP Output-N TCP -A TCP -p tcp -m tcp --dport 22 -j ACCEPT

现在让我们看一下查看活动 iptables 规则的替代方法:作为规则表。

以表格形式列出规则

在表格视图中列出 iptables 规则对于相互比较不同的规则很有用。要在表中输出所有活动的 iptables 规则,请运行带有 -L 选项的 iptables 命令:

sudo iptables -L

这将输出所有按链排序的当前规则。

如果想限制输出到特定的链(INPUT、OUTPUT、TCP等),可以直接指定链名在 -L 选项之后。

让我们看一个示例 INPUT 链:

sudo iptables -L INPUT OutputChain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere DROP all -- anywhere anywhere ctstate INVALID UDP udp -- anywhere anywhere ctstate NEW TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW ICMP icmp -- anywhere anywhere ctstate NEW REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable REJECT tcp -- anywhere anywhere reject-with tcp-reset REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable

输出的第一行指示链名称(在本例中为 INPUT),然后是其默认策略(DROP)。下一行包含表中每一列的标题,然后是链的规则。让我们看一下每个标题表示的内容:

target:如果数据包匹配规则,target 指定应该对它做什么。例如,一个数据包可以被接受、丢弃、记录或发送到另一个链以与更多规则进行比较 prot:协议,如tcp、udp、icmp、all opt:很少使用,此列表示IP选项 source:流量的源 IP 地址或子网,或 anywhere destination:流量的目标 IP 地址或子网,或 anywhere

最后一列没有标记,表示规则的选项。这是前几列未指示的规则的任何部分。这可以是从源端口和目标端口到数据包的连接状态的任何内容。

显示数据包计数和聚合大小

列出 iptables 规则时,还可以显示匹配每个特定规则的数据包数量和数据包的总大小(以字节为单位)。当试图大致了解哪些规则与数据包匹配时,这通常很有用。为此,请同时使用 -L 和 -v 选项。

例如,让我们再次查看 INPUT 链,使用 -v 选项:

sudo iptables -L INPUT -v OutputChain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 284K 42M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo any anywhere anywhere 0 0 DROP all -- any any anywhere anywhere ctstate INVALID 396 63275 UDP udp -- any any anywhere anywhere ctstate NEW 17067 1005K TCP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW 2410 154K ICMP icmp -- any any anywhere anywhere ctstate NEW 396 63275 REJECT udp -- any any anywhere anywhere reject-with icmp-port-unreachable 2916 179K REJECT all -- any any anywhere anywhere reject-with icmp-proto-unreachable 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED

请注意,列表现在有两个额外的列,pkts 和 bytes。

现在您已经知道如何以多种方式列出活动的防火墙规则,让我们看看如何重置数据包和字节计数器。

重置数据包计数和聚合大小

如果要清除或清零规则的数据包和字节计数器,请使用 -Z 选项。如果重新启动,它们也会重置。如果您想查看您的服务器是否正在接收与现有规则匹配的新流量,这将很有用。

要清除所有链和规则的计数器,请单独使用 -Z 选项:

sudo iptables -Z

要清除特定链中所有规则的计数器,请使用 -Z 选项并指定链。例如,要清除 INPUT 链计数器运行此命令:

sudo iptables -Z INPUT

如果要清除特定规则的计数器,请指定链名称和规则编号。例如,要将 INPUT 链中第一条规则的计数器清零,请运行以下命令:

sudo iptables -Z INPUT 1

现在您知道如何重置 iptables 数据包和字节计数器,让我们看看可用于删除它们的两种方法。

按规范删除规则

删除 iptables 规则的方法之一是通过规则规范。为此,您可以运行带有 -D 选项的 iptables 命令,后跟规则规范。如果要使用此方法删除规则,可以使用规则列表的输出 iptables -S 来获得一些帮助。

例如,如果要删除丢弃无效传入数据包的规则 (-A INPUT -m conntrack --ctstate INVALID -j DROP),您可以运行以下命令:

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

请注意,此处应排除用于指示创建时规则位置的 -A 选项。

按链号删除规则

删除 iptables 规则的另一种方法是通过其链 和行号。要确定规则的行号,请以表格格式列出规则并添加 --line-numbers 选项:

sudo iptables -L --line-numbers OutputChain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED 2 ACCEPT all -- anywhere anywhere 3 DROP all -- anywhere anywhere ctstate INVALID 4 UDP udp -- anywhere anywhere ctstate NEW 5 TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW 6 ICMP icmp -- anywhere anywhere ctstate NEW 7 REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable 8 REJECT tcp -- anywhere anywhere reject-with tcp-reset 9 REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable 10 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED ...

这会将行号添加到每个规则行,由 num 标头指示。

知道要删除的规则后,记下规则的链号和行号。然后运行 iptables -D 命令,后跟链和规则编号。

例如,如果我们要删除丢弃无效数据包的输入规则,我们可以看到它是 INPUT 链的规则 3。所以我们应该运行这个命令:

sudo iptables -D INPUT 3

现在您已经知道如何删除单个防火墙规则,让我们来看看如何刷新规则链。

冲洗链

Iptables 提供了一种删除链中所有规则或刷新 链的方法。本节将介绍执行此操作的各种方法。

警告:注意不要通过使用 drop 或 deny 的默认策略刷新链来通过 SSH 将自己锁定在服务器之外。如果这样做,您可能需要通过控制台连接到它以修复您的访问权限。

刷新单链

要刷新将删除链中所有规则的特定链,您可以使用 -F 或等效的 --flush,选项和名称链条冲洗。

例如,要删除 INPUT 链中的所有规则,请运行以下命令:

sudo iptables -F INPUT 冲洗所有链条

要刷新所有链,这将删除所有防火墙规则,您可以单独使用 -F 或等效的 --flush 选项:

sudo iptables -F 刷新所有规则,删除所有链,并接受所有

本节将向您展示如何刷新所有防火墙规则、表和链,并允许所有网络流量。

警告:这将有效地禁用您的防火墙。如果您想重新开始防火墙的配置,您应该只遵循本节。

首先,将每个内置链的默认策略设置为 ACCEPT。这样做的主要原因是确保您不会通过 SSH 被锁定在服务器之外:

sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT

然后刷新nat和mangle表,刷新所有链(-F),并删除所有非默认链(-X ):

sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X

您的防火墙现在将允许所有网络流量。如果您现在列出您的规则,您将看到没有任何规则,只有三个默认链(INPUT、FORWARD 和 OUTPUT)保持。

结论

完成本教程后,您已经了解了如何列出和删除您的 iptables 防火墙规则。

请记住,通过 iptables 命令进行的任何 iptables 更改都是短暂的,需要保存以在服务器重新启动后持续存在。通用防火墙规则和命令教程的保存规则部分对此进行了介绍。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭