【iptables】增加规则和删除规则

        我们在另外一台机器上,使用ping命令,向当前机器发送报文,如下图所示,ping命令可以得到回应,证明ping命令发送的报文已经正常的发送到了防火墙所在的主机,ping命令所在机器IP地址为31.133(黑色),当前测试防火墙主机的IP地址为31.132(白色),我们就用这样的环境,对iptables进行操作演示。

3.1 增加规则

        iptables -t 表名 -I/-A 链名 -s 源地址 -j 处理动作

  • -I选项,指明将”规则”插入至哪个链中,-I表示insert,即插入的意思,默认在第一行添加
  • -A选项,在指定链的末尾添加一条规则
  • -s选项,指明”匹配条件”中的”源地址”,即如果报文的源地址属于-s对应的地址,那么报文则满足匹配条件,-s为source之意,表示源地址。
  • -j选项,指明当”匹配条件”被满足时,所对应的动作,有ACCEPT、DROP等

        那么此处,我们就在132上配置一条规则,拒绝192.168.31.133上的所有报文访问当前机器,之前一直在说,规则由匹配条件与动作组成,那么”拒绝192.168.31.

        133上的所有报文访问当前机器”这条规则中,报文的”源地址为192.168.31.133″则属于匹配条件,如果报文来自"192.168.31.133″,则表示满足匹配条件,而”拒绝”这个报文,就属于对应的动作

        此时我们可以再通过192.168.31.133去ping 192.168.21.132,看能否ping通

        如上图所示,ping 132主机时,PING命令一直没有得到回应,看来我们的iptables规则已经生效了,ping发送的报文压根没有被132主机接受,而是被丢弃了,所以更不要说什么回应了

        此时我们可以再次查看iptables中的规则,可以看到已经有186个包被对应的规则匹配到

拓展:规则的顺序问题

思考:

        现在INPUT链中已经存在了一条规则,它拒绝了所有来自192.168.31.133主机中的报文,如果此时,我们在这条规则之后再配置一条规则,后面这条规则规定,接受所有来自192.168.31.133主机中的报文,那么,iptables是否会接受来自133主机的报文呢?

        使用如下命令在filter表的INPUT中追加一条规则:

        执行完添加规则的命令后,再次查看INPUT链,发现规则已经成功”追加”至INPUT链的末尾,那么现在,第一条规则指明了丢弃所有来自192.168.31.133的报文,第二条规则指明了接受所有来自192.168.31.133的报文,那么结果到底是怎样的呢?

        在133主机上再次使用ping命令向133主机发送报文,发现仍然是ping不通的,看来第二条规则并没有生效。

        而且从上图中第二条规则的计数器可以看到,根本没有任何报文被第二条规则匹配到。发生上述情况,会不会与规则的先后顺序有关呢?测试一下,我们再添加一条规则,新规则仍然规定接受所有来自192.168.31.133主机中的报文,只是这一次,我们将新规则添加至INPUT链的最前面试试。

        使用如下命令,在filter表的INPUT链的前端添加新规则

        在第一条规则就是接受所有来自192.168.31.133的报文,而且此时计数是0,此刻,我们再从133上向132发起ping请求。

        133上已经可以正常的收到响应报文了,那么回到132查看INPUT链的规则,第一条规则的计数器已经显示出了匹配到的报文数量

        看来顺序很重要,如果报文已经被前面的规则匹配到,iptables则会对报文执行对应的动作,即使后面的规则也能匹配到当前报文,很有可能也没有机会再对报文执行相应的动作了,就以上图为例,报文先被第一条规则匹配到了,于是当前报文被”放行”了,因为报文已经被放行了,所以,即使上图中的第二条规则即使能够匹配到刚才”放行”的报文,也没有机会再对刚才的报文进行丢弃操作了。这就是iptables的工作机制。

之前提过的--line-numbers选项,可以列出规则序号

        我们也可以在添加规则时,指定新增规则的编号,这样我们就能在任意位置插入规则了,我们只要把刚才的命令稍作修改即可,如下

        iptables -t filter -I INPUT 2 -s 192.168.31.133 -j DROP

3.2 删除规则

有两种方法:

  • 方法一:根据规则的编号去删除规则

                        iptables -t 表名 -D 链名 规则编号

  • 方法二:根据具体的匹配条件与动作删除规则

                        iptables -t 表名 -D 链名 -s 源地址 -j 处理动作

(1)根据规则的编号去删除规则

先查看一下filter表中INPUT链的规则

        假设我们需要删除第14条规则,可以使用下面命令

(2)根据具体的匹配条件与动作删除规则

        删除下图中源地址为192.168.31.133,动作为ACCEPT的规则,于是,删除规则的命令如下

        删除对应规则时,仍然使用-D选项,-D INPUT表示删除INPUT链中的规则,剩下的选项与我们添加规则时一样,-s表示以对应的源地址作为匹配条件,-j ACCEPT表示对应的动作为接受,所以,上述命令表示删除INPUT链中源地址为192.168.31. 133,动作为ACCEPT的规则。

(3)清空链表中的规则

删除指定表中某条链的所有规则

                iptables -t 表名 -F 链名

        -F选项为flush之意,即冲刷指定的链,即删除指定链中的所有规则,但是注意,此操作相当于删除操作,在没有保存iptables规则的情况下,请慎用。

        其实,-F选项不仅仅能清空指定链上的规则,其实它还能清空整个表中所有链上的规则,不指定链名,只指定表名即可删除表中的所有规则,命令如下

                iptables -t 表名 -F

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

idea 如何快速拉取新分支

方式1 (快捷键:CtrlShift~) 方式2:(快捷键:Alt9)

第八章 Gateway网关

Gateway网关 gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信)、数据库集群、分布…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付…

第二章 iptables防火墙

2.1 Linux 防火墙基础 在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、 电子邮件系统、 FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不 需要的访问甚至是恶意的入侵…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV(Physical Volume,物理卷) 2.2 VG (Volume Group,卷组) 2.3 LV (Logical Volume,逻辑卷) 3. 常用的磁盘命令 4. 查看系统信息的命…

字符串转成时间的SQL,一个多种数据库通用的函数

select date 2010-10-06 from dual; date 函数,此函数适用于: 1.MySQL数据库 2.Oracle数据库 3.达梦数据库 4.人大金仓数据库

机器学习三要素与拟合问题

1.如何构建机器学习模型? 机器学习工作流程总结 1.获取数据 2.数据基本处理 3.特征工程 4.机器学习(模型训练) 5.模型评估 结果达到要求,上线服务,没有达到要求,重新上面步骤 我们使用机器学习监督学习分类预测模型的工作流…

python flask学生成绩管理系统,包含使用文档

python flask学生成绩管理系统。 一.功能介绍 系统交互 登录无需注册功能 学生以学生编号为用户名,密码默认为学生编号,可修改教师以教师编号为用户名,密码默认为教师编号,可修改管理员以admin作为用户名,密码为固定…

【Python基础】字符串

文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页:丷从心 系列专栏:Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…

【经验分享】日常开发中的故障排查经验分享(一)

目录 简介CPU飙高问题1、使用JVM命令排查CPU飙升100%问题2、使用Arthas的方式定位CPU飙升问题3、Java项目导致CPU飙升的原因有哪些?如何解决? OOM问题(内存溢出)1、如何定位OOM问题?2、OOM问题产生原因 死锁问题的定位…

【力扣】20.有效的括号

家人们,看这排序,一看就很简单,对吧?不对,我觉得还挺不是很容易的,哈哈哈。 题解: 在看题目的时候,我一开始的解题思路就挺复杂的。题目说了”左括号必须以正确的顺序闭合“&#x…

PyTorch深度学习实战(29)——神经风格迁移

PyTorch深度学习实战(29)——神经风格迁移 0. 前言1. 神经风格迁移原理1.1 模型介绍1.2 GramMatrix 的重要性 2. 神经风格迁移模型构建策略3. 使用 Keras 实现神经风格迁移小结系列链接 0. 前言 神经风格迁移 (Neural Style Transfer) 是一种基于深度学…

C语言中的联合体的由来和存储

一、联合体的由来 1.1. 数据类型的不足 C语言中,基本数据类型只有整型、字符型、浮点型等少数几种,无法满足复杂数据类型的需要。 1.2. 数组的限制 虽然数组可以存储多个同类型的数据,但是数组中的元素个数是固定的,无法动态地…

【51单片机系列】DS18B20温度传感器扩展实验之设计一个智能温控系统

本文是关于DS18B20温度传感器的一个扩展实验。 文章目录 一、相关元件介绍二、实验分析三、proteus原理图设计四、软件设计 本扩展实验实现的功能:利用DS18B20设计一个智能温度控制系统,具有温度上下限值设定。当温度高于上限值时,电机开启&a…

[react]脚手架create-react-app/vite与reac项目

[react]脚手架create-react-app/vite与reac项目 环境问题描述create-react-app 脚手架根据脚手架修改项目结构安装脚手架注入配置文件-config文件夹package.json文件变更删除 serviceWorker.js新增reportWebVitals.js文件更新index.js文件 脚手架creat-react-app 缺点 vite 脚手…

Java技术栈 —— Nginx的使用

Java技术栈 —— Nginx的使用 一、认识Nginx二、搭建Nginx环境2.1 在Ubuntu上安装Nginx 三、使用Nginx3.1 配置负载均衡(HTTP) 一、认识Nginx 企业需要运行多个相同的副本,并将负载分散在整个系统集群上,为了高性能的负载均衡,引入了Nginx代…

阿里云30个公共云地域、89个可用区、5个金融云和政务云地域

阿里云基础设施目前已面向全球四大洲,公共云地域开服运营30个公共云地域、89个可用区,此外还拥有5个金融云、政务云地域,并且致力于持续的新地域规划和建设,从而更好的满足用户多样化的业务和场景需求。伴随着基础设施的加速投入和…

[RoarCTF2019] TankGame

不多说,用dnspy反编译data文件夹中的Assembly-CSharp文件 使用分析器分析一下可疑的FlagText 发现其在WinGame中被调用,跟进WinGame函数 public static void WinGame(){if (!MapManager.winGame && (MapManager.nDestroyNum 4 || MapManager.n…

【C语言】数据结构——排序(一)

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:数组打印与交换1. 插入排序1.1 直接插入排序1.1.1 基本思想1.1.2 实现代码1.1.3 图解 1.2 希尔排序1.2.1…

机器人中的数值优化之无约束优化

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文ppt来自深蓝学院《机器人中的数值优化》