Linux防火墙之iptables(下)

news2024/9/21 16:40:31

目录

一、通用匹配

1)协议匹配

2)地址匹配 

3)接口匹配

二、隐含匹配

1)端口匹配

 2)TCP标志位的匹配 

3)ICMP的类型匹配

①请求规则设置

②回显匹配

②显示目的不可达匹配

三、显示匹配

1 )多端口匹配

2)IP范围匹配

3)MAC匹配

4)状态匹配

四、备份与还原iptables规则设置

1)备份iptables设置

2)一键导出,设置为当前防火墙设置 

3)修改iptables的默认设置


一、通用匹配

直接指定目的网段,IP地址,出入站网卡,从而直接对该类主机进行权限设置操作

通用的匹配方式一般为三种:

协议匹配-p 协议名
地址匹配-s 源地址、-d 目的地址 。可以是IP、网段、域名、空(任何地址
接口匹配-i 入站网卡、-o 出站网卡

1)协议匹配

上文中运用的实例基本都是协议匹配完成,协议匹配中还存在一个取反匹配

[root@localhost ~]#iptables -A  INPUT   ! -p icmp -j ACCEPT
[root@localhost ~]#iptables -nL

测试结果:

2)地址匹配 

直接对IP地址,源地址,目的地址或则网段中的主机进行权限操作

[root@localhost ~]#iptables -A INPUT -s 192.168.73.110 -j DROP
[root@localhost ~]#iptables -nL

 

 测试结果:

3)接口匹配

可以认为是对地址匹配的进一步设置,具体化到防火墙主机的网卡设置

[root@localhost ~]#iptables -A INPUT  -i ens33  -s 192.168.73.0/24  -j DROP

二、隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件

1)端口匹配

--sport源端口
--dport目的端口
对于端口的指定可以为单一,也可以为一个范围

--sport 100    指定的就是匹配源端口100

--sport  100:200  就是指定100-200这个范围

--sport  100:  就是指定100及其100以上的端口

--sport  200:  就是指定200及其200以下的源端口 
[root@localhost ~]#iptables -A INPUT  -p tcp   --dport 20:21 -j REJECT

 2)TCP标志位的匹配 

 --tcp-flags   TCP    标记
[root@localhost ~]# iptables -I INPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT

3)ICMP的类型匹配

ICMP类型可以是字符串、数字代码:

ICMP类型含义
Echo-Request (代码为8)表示请求
Echo- -Reply (代码为0)表示回显
Dest ination-Unreachable (代码为3)表示目标不可达

--icmp-type ICMP类型

①请求规则设置

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 8 -j REJECT

其他主机ping本机测试:

②回显匹配

[root@localhost ~]#iptables  -A INPUT -p  icmp   --icmp-type 0 -j REJECT

其他主机ping本机测试:

 

如果设置到出站数据包处理链(OUTPUT上),就是双方无法进行平命令,且没有信息的回显  

②显示目的不可达匹配

[root@localhost ~]# iptables -A INPUT -p icmp   --icmp-type 3     -j ACCEPT

三、显示匹配

要求以“-m扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件

1 )多端口匹配

  • -m multiport --sport 源端口列表
  • -m multiport --dport 目的端口列表
[root@localhost ~]#iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
[root@localhost ~]#iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

2)IP范围匹配

  • -m iprange --src-range 源IP范围
  • -m iprange --dst-range 目的IP范围
[root@localhost ~]# iptables -A FORWARD  -p udp -m iprange --src-range 192.168.73.150-192.168.73.200 -j DROP

3)MAC匹配

该方式范围过于有限,且操作不方便,所以并不受行内推崇使用

-m mac -- -mac- source MAC地址
iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
 #禁止来自某MAC地址的数据包通过本机转发

4)状态匹配

格式:

-m state --state连接状态
状态含义
NEW主机连接目标主机,在目标主机上看到的第一个想要连接的包
ESTABLISHED主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态
RELATED主机已与目标主机进行通信,目标主机发起新的链接方式,一般与ESTABLISHED配合使用
INVALID无效的封包,例如数据破损的封包状态
[root@localhost ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP

最后一步设置为白名单:代表只有通过层层筛选最终能够建立联系的主机,才能够与本机进行所有端口的连接使用

四、备份与还原iptables规则设置

我们对iptables命令行中的设置,都是临时设置,只要遇到服务器关机,或者服务重启时,所有的设置都会清空且还原为原本的设置。为此,我们可以对已经测试完毕符合我们需求的防火墙设置进行备份,在必要时,可以一键还原

1)备份iptables设置

格式: iptables-save >/指定的文件 
[root@localhost ~]#iptables-save >/opt/iptables.bak

2)一键导出,设置为当前防火墙设置 

[root@localhost ~]#iptables-restore </opt/iptables.bak 

 

3)修改iptables的默认设置

iptables的默认配置文件存在于    /etc/sysconfig/iptables

 

若想永久修改只需要将备份的iptables文件重定向输入到默认配置文件(覆盖)

cat /opt/iptables.bak >/etc/sysconfig/iptables

或则将当前的设置修改为默认配置

iptables-save >/etc/sysconfig/iptables

注意:无论时什么要修改方式,谨记修改重要配置先备份的原则,修改iptables默认设置前先进行备份

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

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

相关文章

教你精通Java语法之第十三章、反射

目录 一、定义 二、用途 三、反射基本信息 四、反射相关的类 4.1Class类 4.1.1Class类中的相关方法(方法的使用方法在后边的示例当中) ​编辑 4.2反射示例 4.2.1获得Class对象的三种方式 4.2.2反射的使用 五、反射优点和缺点 六、重点总结 一、定义 Java的反射&am…

计算机图形学 | 实验十:几何纹理(法线贴图)

计算机图形学 | 实验十&#xff1a;几何纹理&#xff08;法线贴图&#xff09; 计算机图形学 | 实验十&#xff1a;几何纹理&#xff08;法线贴图&#xff09;什么是法线贴图为什么需要切线空间加载法线贴图引入切线空间结果 华中科技大学《计算机图形学》课程 MOOC地址&#…

PCB基础~电源和地平面,去耦电容

电源和地平面 • 应该尽可能的使用电源和地平面&#xff0c; Why? – 在设备和电源之间提供一个低阻抗的路径 – 提供屏蔽 – 提供散热 – 降低分布电感 • 一个完整的无破损的平面是最优选择 – 破碎的地平面会在走线的上下层之间 引入寄生电感 • Remember! • 低频时&…

【服务器】利用树莓派搭建 web 服务器-无需公网IP

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 概述 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 设置 Apache Web 服务器 测试 web 站点 安装静态样例站点 将web站点发布到公网 安装 Cpolar内网穿透 cpolar进行tok…

SQL-DDL语句DQL语句

SQL学习笔记 DDL语句--操作数据表 /* 快捷键: insert键 在插入 和 替换模式之间切换 ctrl 字母z 撤销上一步操作 tab 往后缩进(默认4个空格) shift tab 往前缩进(默认4个空格) …

SpringBoot配置文件和日志

目录 SpringBoot配置文件 SpringBoot配置文件的作用 项目中的重要数据写在配置文件当中 降低代码耦合 SpringBoot配置文件的格式 properties配置文件 读取配置文件中的内容&#xff08;Value注解使用${}格式读取&#xff09; properties优缺点 yml配置文件 yml特…

ChatGPT官方APP正式发布!附安装使用教程

目录 前言 APP功能演示 1.与机器人聊天&#xff0c;询问问题 2.语音输入&#xff0c;人机交互 3.聊天历史&#xff0c;新建聊天分组 安装教程 1.下载应用 2.登录账号 3.愉快的玩耍吧 总结 写到最后 大家好&#xff0c;我是大侠&#xff0c;AI领域的专业博主 前言 …

Docker安装常用软件-Kafka集群

零、为了方便开发调试&#xff0c;使用kafka部署一套kafka环境&#xff0c;进行功能调试&#xff0c;方便快捷 一、部署zookeeper 1、下载镜像 docker pull wurstmeister/zookeeper 2、运行zookeeper镜像 docker run -d --restartalways --log-driver json-file --log-op…

(转载)从0开始学matlab(第10天)—自顶向下的编程思想

在前面的内容中&#xff0c;我们开发了几个完全运转的 MATLAB 程序。但是这些程序都十分简单&#xff0c;包括一系列的 MATLAB 语句&#xff0c;这些语句按照固定的顺序一个接一个的执行。像这样的程序我们称之顺序结构程序。它首先读取输入&#xff0c;然后运算得到所需结果&a…

QT学习记录(三)绘图

按照下面两个教程学习 QT学习教程&#xff08;全面&#xff09;_Strive--顾的博客-CSDN博客_qt学习 天山老妖S的博客_QT开发(3)_51CTO博客 1、绘图 VC项目右键增加QT GUI Class&#xff0c;在QT Designer中编辑DlgDraw.ui 在DlgDraw中重载函数 void DlgDraw::paintEvent(Q…

Flutter控件之图片Image封装

Flutter控件之基类Widget封装 Flutter控件之文本Text封装 为什么要进行繁琐的封装&#xff1f;直接用也挺好啊&#xff0c;这个回答一点毛病没有&#xff0c;大部分视图都可以原生绘制&#xff0c;可在Flutter中偏偏原生的控件&#xff0c;少了很多需要又常用的属性&#xff…

最小生成树—Kruskal算法和Prim算法

1.最小生成树 连通图&#xff1a;在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则称顶点v1与顶点v2是连通的。如果图中任 意一对顶点都是连通的&#xff0c;则称此图为连通图。 生成树&#xff1a;一个连通图的最小连通子图称作该图的生成树。有n个顶点的连通…

Java基础-面向对象总结(3)

本篇文章主要讲解Java面向对象的知识点 面向对象的三大特性类的扩展(抽象类,接口,内部类,枚举) 目录 面向对象和面向过程的区别? 面向对象的五大基本原则 面向对象三大特性 继承 怎么理解继承 ? 继承和聚合的区别&#xff1f; 封装 多态 什么是多态 什么是运行时多…

面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生

测试员可以先在大厂镀金&#xff0c;以后去中小厂毫无压力&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓大厂镀金只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大厂出来…

MySQL数据库基础4-内置函数

文章目录 日期函数字符串函数数学函数其他函数 日期函数 函数名称描述current date()当前日期current time()当前时间current timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date add(date, interval d_value type)在date中添加日期或时间&#xff0c;interv…

GitHub Actions Error “Waiting for a runner to pick up this job”

GitHub Actions Error “Waiting for a runner to pick up this job” 什么是GitHub Actions GitHub Actions 是一个 CI/CD&#xff08;持续集成和持续部署&#xff09;平台&#xff0c;可以让您自动化工作流程并与 GitHub 存储库中的代码集成。使用 GitHub Actions&#xff…

智能排班系统 【数据库设计】

文章目录 数据库设计规范ER图物理模型数据表登录日志表操作日志表菜单表角色表企业表门店表省市区表门店节日表消息表职位表排班规则表排班任务表排班结果存储scheduling_date排班日表scheduling_shift排班班次表shift_user班次员工中间表 定时通知表用户表中间表role_menu角色…

适合小白的网络安全书籍推荐

学习的方法有很多种&#xff0c;看书就是一种不错的方法&#xff0c;但为什么总有人说&#xff1a;“看书是学不会技术的”。 其实就是书籍没选对&#xff0c;看的书不好&#xff0c;你学不下去是很正常的。 一本好书其实不亚于一套好的视频教程&#xff0c;尤其是经典的好书…

MATLAB系列(2)——plot画图函数

一、plot plot画的是折线图。plot可以画出多种线类型的图&#xff0c;比如实线、虚线、星线、圆圈线等,一个图里可以画多条折线&#xff0c;方便对比。 1.1 设置坐标轴标签 和 图名 使用xlabel 和ylabel&#xff0c;title设置图名&#xff0c;fontsize设置名字字体大小 1.2 …

Netty核心技术三--NIO编程

1. JAVA NIO基本介绍 Java NIO 全称 java non-blocking IO&#xff0c;是指 JDK 提供的新API。从 JDK1.4 开始&#xff0c;Java 提供了一系列改进的输入/输出的新特性&#xff0c;被统称为 NIO(即 New IO)&#xff0c;是同步非阻塞的 NIO 相关类都被放在 java.nio 包及子包下&…