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

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

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

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

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

先决条件

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

如果您需要帮助进行初始设置,请参考我们的 Ubuntu 20.04 初始服务器设置指南。该指南也适用于 Debian 和 CentOS。

按规范列出规则

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

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

sudo iptables -S
-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-persistentiptables save,这也会看起来类似于 iptables 规则配置文件。

列出特定链

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

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

现在让我们看看另一种查看活动的 iptables 规则的方式:作为规则表。

以表格形式列出规则

以表格形式列出 iptables 规则可以用于比较不同规则之间的差异。要以表格形式输出所有活动的 iptables 规则,请使用 -L 选项运行 iptables 命令:

sudo iptables -L

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

如果您想将输出限制为特定链(INPUTOUTPUTTCP 等),您可以在 -L 选项之后直接指定链名称。

让我们看一个 INPUT 链的示例:

sudo iptables -L INPUT
Chain 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:如果数据包匹配规则,则目标指定应对其执行的操作。例如,数据包可以被接受、丢弃、记录或发送到另一个链以与更多规则进行比较
  • prot:协议,如 tcpudpicmpall
  • opt:很少使用,此列指示 IP 选项
  • source:流量的源 IP 地址或子网,或 anywhere
  • destination:流量的目标 IP 地址或子网,或 anywhere

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

显示数据包计数和累积大小

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

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

sudo iptables -L INPUT -v

Chain INPUT (policy DROP 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination284K   42M ACCEPT     all  --  any    any     anywhere             anywhere             ctstate RELATED,ESTABLISHED0     0 ACCEPT     all  --  lo     any     anywhere             anywhere0     0 DROP       all  --  any    any     anywhere             anywhere             ctstate INVALID396 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 NEW2410  154K ICMP       icmp --  any    any     anywhere             anywhere             ctstate NEW396 63275 REJECT     udp  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable2916  179K REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-proto-unreachable0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh ctstate NEW,ESTABLISHED

请注意,现在的列表中有两列额外的内容,即 pktsbytes

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

重置数据包计数和累积大小

如果您想要清除或归零规则的数据包和字节计数,可以使用 -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

Chain 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 提供了一种删除链中所有规则的方法,即清空链。本节将介绍多种清空链的方法。

清空单个链

要清空特定的链,即删除链中的所有规则,可以使用-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

然后清空natmangle表,清空所有链(-F),并删除所有非默认链(-X):

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

您的防火墙现在将允许所有网络流量。如果现在列出您的规则,您将看到没有规则,只剩下三个默认链(INPUTFORWARDOUTPUT)。

结论

通过本教程,您已经学会了如何列出和删除 iptables 防火墙规则。

请记住,通过iptables命令进行的任何 iptables 更改都是临时的,需要保存才能在服务器重新启动时持久化。这在常见防火墙规则和命令教程的保存规则部分有所涉及。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439486.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R包的安装、加载以及如何查看帮助文档

0x01 如何安装R包 一、通过R 内置函数安装(常用) 1.安装CRAN的R包 install.packages()是一个用于安装 R 包的重要函数。 语法:install.packages(pkgs, repos getOption("repos"),...) 其中: pkgs:要安…

问题-python-运行报错-SyntaxError: Non-UTF-8 code starting with ‘\xd5‘ in file 汉字编码问题

​ 编码: 把字符转换成字节序列的过程。因为计算机只能处 理二进制数据,所以不能直接处理文本,需要先把文本转换为二进制数据。 解码: 把二进制数据转换成字符的过程。把接收到的数据转换成程序中使用的编码方式。 ​ 这个报错原因就是编码和解码没达成…

【C++ STL】手撕vector,深入理解vector的底层

vector的模拟实现 前言一.默认成员函数1.1常用的构造函数1.1.1默认构造函数1.1.2 n个 val值的构造函数1.1.3 迭代器区间构造1.1.4 initializer_list 的构造 1.2析构函数1.3拷贝构造函数1.4赋值运算符重载 二.元素的插入,删除,查找操作2.1 operator[]重载函数2.2 push_back函数:…

[已解决] Install PyTorch 报错 —— OpenOccupancy 配环境

目录 关于 常见的初始化报错 环境推荐 torch, torchvision & torchaudio cudatoolkit 本地pip安装方法 关于 OpenOccupancy: 语义占用感知对于自动驾驶至关重要,因为自动驾驶汽车需要对3D城市结构进行细粒度感知。然而,现有的相关基准在城市场…

TriLite完成A轮扩展融资:加速AR微型投影仪技术创新与市场拓展

近日,全球领先的AR微型投影仪开发商TriLite宣布成功完成A轮扩展融资,将A轮融资总额提升至超过2000万欧元。这一轮融资不仅彰显了资本市场对TriLite技术实力和市场潜力的高度认可,更为其后续在AR微型投影仪领域的技术研发、产品迭代以及市场拓展提供了坚实的资金保障。以下是…

大厂笔试现已经禁用本地IDE怎么看

如果我说本来面试做题这种事情就是反人类你相信吗? 这个罪恶的源头就是 Google,说是为了选择高素质的计算机编程水平的人才,然后把面试就变成了考试,最大的受益者当然是印度人了。 当把一个考察过程变成标准化的考试过程&#x…

【AI知识点】置信区间(Confidence Interval)

置信区间(Confidence Interval, CI) 是统计学中用于估计总体参数的范围。它给出了一个区间,并且这个区间包含总体参数的概率等于某个指定的置信水平(通常是 90%、95% 或 99%)。与点估计不同,置信区间通过区…

Unity Input System自动生成配置

参考视频 创建及配置新输入系统 New Input System|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili ProjectSettings设置 Unity编辑器菜单栏选择Edit->Project Settings->Player->Other Settings,将Api Compatibility Level…

OpenAI 开发者大会!实时语音功能有API了,GPT-4o支持多模态微调,上下文cache功能上线

家人们!十一假期第1天, OpenAI一年一度的开发者大会又来了惹!今年的开发者大会分成三部分分别在美国、英国、新加坡三个地点举办,刚刚结束的是第一场。 去年的OpenAI开发者大会公布了GPT-4 Turbo和GPTs,今年没有大更新…

allegro精确画圆形边框

1.显示原点位置: 2.class-subclass依次选择Board Geometry-Outline 3.菜单ADD---Circle,右侧option,依次设置如下,如图可设置为圆心(0,0),半径为42mm的边框,不要忘了右键Done,完成绘…

【目标检测】工程机械车辆数据集2690张4类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2694 标注数量(xml文件个数):2694 标注数量(txt文件个数):2694 标注…

《Windows PE》3.2.4节表

节表由多个节表项(IMAGE_SECTION_ HEADER)组成,每个节表项(40个字节)记录了 PE中与某个特定的节有关的信息,如节的属性、节 的大小、在文件和内存中的起始位置等。节表中节的数量由字段IMAGE_FILE_HEADER. …

防止错误输入!Excel单元格限制输入内容的三种有效方式

在Excel中,限制单元格输入内容可以帮助避免数据输入错误,确保数据的一致性和准确性。今天小编分享三种方法,可以轻松限制Excel单元格的输入内容,确保数据输入符合预期要求,一起来看看吧! 方法一&#xff1a…

el-pagination组件封装

组件使用 源代码&#xff1a; <script setup> import Pagination from /components/pagination/index.vue import {ref} from "vue";const pageNum ref(1) const pageSize ref(10) const total ref(120)function loadData() {// 加载数据 } </script>…

[云] Hands-on with a sample application--DockerCoins 挖矿程序!

DockerCoins 挖矿程序&#xff01;&#x1f4b0;&#x1f433;&#x1f4e6;&#x1f6a2; 不&#xff0c;你不能用 DockerCoins 买咖啡。 DockerCoins 如何工作&#xff1a; 生成一些随机字节&#xff1a; 程序首先生成一串随机的字节数据。这些随机字节用于模拟挖矿过程中的…

R语言绘制散点图

散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具&#xff0c;我们通过不同的参数调整和包的使用&#xff0c;可以创建出满足各种需求的散点图。 常用绘制散点图的函数有plot()函数和ggpl…

算法专题三: 二分查找

目录 1. 朴素版: 二分查找2. 查找排序数组元素第一个和最后一个位置3. 搜索插入位置4. x的平方根5. 山脉数组的峰顶索引6. 寻找旋转数组中的最小值7. 点名 博客主页: 酷酷学!!! 感谢您的关注~ 正文开始 1. 朴素版: 二分查找 题目思路: 仅需根据题意, 找出二段性, 正确更新下标…

躺平成长:微信小程序运营日记第二天

在进行属于生活的开源之后&#xff0c;自己更加感受到自己存在的渺茫&#xff0c;同时更加开始深刻领会&#xff0c;开源的重要性&#xff0c;在开源&#xff0c;开放&#xff0c;创造&#xff0c;再创新的思维模式下&#xff0c;不发布八部金刚功相关的训练视频&#xff0c;自…

课设实验-数据结构-线性表-手机销售

题目&#xff1a; 代码&#xff1a; #include<stdio.h> #include<string.h> #define MaxSize 10 //定义顺序表最大长度 //定义手机结构体类型 typedef struct {char PMod[10];//手机型号int PPri;//价格int PNum;//库存量 }PhoType; //手机类型 //记录手机的顺序…

如何快速切换电脑的ip地址

在当今的数字化时代&#xff0c;IP地址作为网络身份的重要标识&#xff0c;其重要性日益凸显。无论是出于保护个人隐私的需要&#xff0c;还是为了访问特定的网络服务等&#xff0c;快速切换电脑的IP地址已成为许多用户的迫切需求。本文将为你介绍几种实用的方法&#xff0c;帮…