防火墙(Firewall)

目录

一、概述

二、iptables

三、iptable的用法


一、概述

防火墙的作用

用于保护内网安全的一种设备

依据规则进行防护

用户定义规则

允许或拒绝外部用户访问

防火墙分类

逻辑上划分,防火墙可以大体分为主机防火墙和网络防火墙主机防火墙:针对于单个主机进行防护

网络防火墙:针对网络进行防护,处于网络边缘,防火墙背后是本地局域网网络防火墙主外(服务集体),主机防火墙主内(服务个人)

物理上划分,防火墙可分为硬件防火墙和软件防火墙

硬件防火墙:在硬件级别实现防火墙功能,另一部分基于软件实现,其性能高,硬件成本高

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,其性能相较于硬件防火墙低,成本较低,对于Linux系统已自带,直接使用即可

防火墙性能

吞吐量

并发连接

新建连接

时延

抖动

硬件防火墙

硬件防火墙定义

硬件防火墙是指把具备配置数据包通过规则的软件嵌入硬件设备中,为网络提供安全防护的硬件设备。多见于网络边缘。

硬件防火墙作用(拓扑图 ups)

软件防火墙

软件防火墙是单独使用具备配置数据包通过规则的软件来实现数据包过滤。多见于单主机系统或个人计算机

硬件防火墙与软件防火墙比较

硬件防火墙有独立的硬件设备,运算效率较高,价格略高,可为计算机网络提供安全防护。

软件防火墙必须部署在主机系统之上,相较于硬件防火墙运算效率低,在一定程度上会影响到主机系统性能,一般用   于单机系统或个人计算机中,不直接用于计算机网络中。

二、iptables

iptables是什么?

iptables不是防火墙,是防火墙用户代理

用于把用户的安全设置添加到“安全框架”中  

“安全框架”是防火墙

“安全框架”的名称为netfilter

netfilter位于内核空间中,是Linux操作系统核心层内部的一个数据包处理模块

iptables是用于在用户空间对内核空间的netfilter进行操作的命令行工具

netfilter/iptables功能

netfilter/iptables可简称为iptables,为Linux平台下的包过滤防火墙,是开源的,内核自带的,可以代替成本较高的   企业级硬件防火墙,能够实现如下功能:

数据包过滤,即防火墙

数据包重定向,即转发

网络地址转换,即可NAT

注:平常我们使用iptables并不是防火墙的“服务”,而服务是由内核提供的。

iptables概念

iptables工作依据 规则(rules)

iptables是按照规则(rules)来办事的,而规则就是运维人员所定义的条件;规则一般定义为“如果数据包头符合这样的   条件,就这样处理这个数据包”。

规则存储在内核空间的数据包过滤表中,这些规则分别指定了源地址、目的地址,传输协议(TCP、UDP、ICMP)和服   务类型(HTTP、FTP)等。

当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,比如放行(ACCEPT)、拒绝(REJECT)、   丢弃(DROP)等

iptables中链的概念

在iptables中,链是规则的集合,它定义了数据包在iptables中的处理流程。每个数据包在经过iptables时,都会按照规则从一个链中的一个规则开始,然后依次检查和匹配其他规则,直到遇到一个匹配的规则,或者到达链的末尾。根据匹配结果,可以决定是允许数据包通过,还是拒绝或者进行其他操作。

iptables包含以下几种预定义链:

INPUT链:用于处理进入本机的数据包,包括通过网络接口进入的数据包。

OUTPUT链:用于处理从本机发出的数据包,包括通过网络接口发出的数据包。

FORWARD链:用于处理通过本机的数据包,但不是本机产生和消费的数据包。例如,当本机作为路由器或防火墙时,用于处理转发给其他主机的数据包。

此外,还有一些其他的特殊链,例如:

PREROUTING链:在数据包到达本机内核之前,在路由选择之前执行的链。

POSTROUTING链:在数据包离开本机内核之前,在路由选择之后执行的链。

NAT链:用于网络地址转换(NAT)操作的链,例如实现端口转发和IP伪装等功能。

用户也可以创建自定义链,并将规则添加到自定义链中,以实现更复杂和个性化的规则控制。自定义链可以在预定义链中被引用和调用,并允许更精细地控制数据包的处理流程。

iptables中表的概念

每个“规则链”上都设置了一串规则,这样的话,我们就可以把不同的“规则链”组合成能够完成某一特定功能集合分   类,而这个集合分类我们就称为表,iptables中共有5张表,学习iptables需要搞明白每种表的作用。

filter: 过滤功能,确定是否放行该数据包,属于真正防火墙,内核模块:iptables_filter

nat: 网络地址转换功能,修改数据包中的源、目标IP地址或端口;内核模块:iptable_nat

mangle: 对数据包进行重新封装功能,为数据包设置标记;内核模块:iptable_mangle

raw: 确定是否对数据包进行跟踪;内核模块:iptables_raw

security:是否定义强制访问控制规则;后加上的

iptables中表链之间的关系

我们在应用防火墙时是以表为操作入口的,只要在相应的表中的规则链上添加规则即可实现某一功能。那么我们就应   该知道哪张表包括哪些规则链,然后在规则链上操作即可。

filter表可以使用哪些链定义规则:INPUT,FORWARD,OUTPUT

nat表中可以使用哪些链定义规则:PREROUTING,OUTPUT ,POSTROUTING,INPUT 

mangle 表中可以使用哪些链定义规则:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw表中可以使用哪些链定义规则:PREROUTING,OUTPUT

iptables规则匹配条件分类

基本匹配条件:

源地址,目标地址,源端口,目标端口等

基本匹配使用选项及功能

  1. -p protocal指定规则协议,tcp(传输层) udp(传输层) icmp(网络层) ip(网络层) 
  2. -s source  指定数据包的源地址,192.168.1.10
  3. -d destination指定目的地址
  4. -i 输入网卡接口 如:lo本地回环,ens33 
  5. -o 输出网卡接口 如:ens37,ens33等
  6. ! 取 反

基本匹配的特点是:无需加载扩展模块,匹配规则生效

扩展匹配条件:

扩展匹配又分为显示匹配和隐式匹配。

扩展匹配的特点是:需要加载扩展模块,匹配规则方可生效。

隐式匹配的特点:使用-p选项指明协议时,无需再同时使用-m选项指明扩展模块以及不需要手动加载扩展模块;  显示匹配的特点:必须使用-m选项指明要调用的扩展模块的扩展机制以及需要手动加载扩展模块。

隐式匹配选项及功能

-p tcp--sport 匹配报文源端口;可以给出多个端口,但只能是连续的端口范围--dport 匹配报文目标端口;可以给出多个端口,但只能是连续的端口范围-p udp--sport 匹配报文源端口;可以给出多个端口,但只能是连续的端口范围--dport 匹配报文目标端口;可以给出多个端口,但只能是连续的端口范围--icmp-type0/0: echo reply 允许其他主机ping8/0:echo request 允许ping其他主机

iptables规则中动作

iptables规则中的动作常称为target,也分为基本动作和扩展动作。

ACCEPT:允许数据包通过

DROP:直接丢弃数据包,不给任何回应信息

REJECT:拒绝数据包通过,发送回应信息给客户端

SNAT:源地址转换

解释1:数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,接收方认为数据包的来源是被替换的那个IP主机,返回响应时,也以被替换的IP地址进行。

解释2:修改数据包源地址,当内网数据包到达防火墙后,防火墙会使用外部地址替换掉数据包的源IP地址(目的IP地址不变),使网络内部主机能够与网络外部主机通信。

MASQUERADE:伪装,类似于SNAT,适用于动态的、临时会变的ip地址上,例如:家庭使用的宽带。  用发送数据的网卡上的IP来替换源IP,对于IP地址不固定场合使用。

DNAT:目标地址转换

解释1:数据包从网卡发出时,修改数据包中的目的IP,表现为你想访问A,但因网关做了DNAT,把所有  访问A的数据包中的目的IP地址全部修改为B,实际最终访问的是B

解释2:改变数据包目的地址,当防火墙收到来自外网的数据包后,会将该数据包的目的IP地址进行替换(源IP地址不变),重新转发到内网的主机。

REDIRECT:在本机做端口映射

LOG:/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则。

iptables基础语法结构:iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]

iptables链管理方法

-N, --new-chain chain:新建一个自定义的规则链;

-X, --delete-chain [chain]:删除用户自定义的引用计数为0的空链;

-F, --flush [chain]:清空指定的规则链上的规则;

-E, --rename-chain old-chain new-chain:重命名链;

-Z, --zero [chain [rulenum]]:置零计数器; 注意:每个规则都有两个计数器

packets:被本规则所匹配到的所有报文的个数; bytes:被本规则所匹配到的所有报文的大小之和;

-P, --policy chain target 制定链表的策略(ACCEPT|DROP|REJECT)

iptables规则管理

-A, --append chain rule-specification:追加新规则于指定链的尾部;

-I, --insert chain [rulenum] rule-specification:插入新规则于指定链的指定位置,默认为首部;

-R, --replace chain rulenum rule-specification:替换指定的规则为新的规则;

-D, --delete chain rulenum:根据规则编号删除规则;

-D, --delete chain rule-specification:根据规则本身删除规则;

iptables规则显示

-L, --list [chain]:列出规则;

-v, --verbose:详细信息;

-vv 更详细的信息

-n, --numeric:数字格式显示主机地址和端口号;

-x, --exact:显示计数器的精确值,而非圆整后的数据;

--line-numbers:列出规则时,显示其在链上的相应的编号;

-S, --list-rules [chain]:显示指定链的所有规则;

iptables -F   #删除现有规则

三、iptable的用法

iptable -nL:查看iptables规则,可以快速列出防火墙规则,同时避免了名称解析的延迟

iptables -F:删除现有规则

192.168.115.3可以ping115.4 ,不可以ssh 192.168.115.4

iptables -I INPUT -s 192.168.115.3 -p tcp --dport 22 -j REJECT

验证

192.168.115.3 不可以ping 192.168.115.4,但是可以ssh 192.168.115.4

iptables -I INPUT -s 192.168.115.3 -p icmp  -j REJECT

验证

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

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

相关文章

Redis缓存设计与性能优化

多级缓存架构 缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去…

WebDAV之π-Disk派盘 + BubbleUPnP

BubbleUPnP是一款功能强大的Android播放器,支持UPnP/DLNA多屏互动。它可以将手机内容投屏到电视大屏上,与家人和朋友一起共享。此外,BubbleUPnP还提供了丰富的音乐和影视资源,您可以在线搜索并播放喜欢的内容。 以下是BubbleUPnP的一些主要特点: 1. 支持Chromecast和转码…

在PHP8中向数组添加元素-PHP8知识详解

在php8中向数组添加元素有多种方法,在这里主要讲解几个常用的方法:使用方括号[]添加元素、使用array_unshift()函数,向数组的头部添加元素、使用array_push()函数,向数组的尾部添加元素、使用array_splice()函数添加元素。 1、使用…

【新版】系统架构设计师 - 软件架构设计<SOA与微服务>

个人总结,仅供参考,欢迎加好友一起讨论 架构 - 软件架构设计<SOA与微服务> 考点摘要 面向服务SOA(★★★★)微服务(★★★★) 基于/面向服务的(SOA) 在SO…

【深度学习-注意力机制attention 在seq2seq中应用】

注意力机制 为什么需要注意力机制attention机制的架构总体设计一、attention本身实现评分函数 attention在网络模型的应用-Bahdanau 注意力加性注意力代码实现 为什么需要注意力机制 这是一个普通的seq2seq结构,用以实现机器对话,Encoder需要把一个输入的…

Linux下的系统编程——信号(十一)

前言: 信号在我们的生活中随处可见, 如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪...... 他们都有共性,信号是信息的载体,Linux/UNIX 环境下,古老、经典的通信…

SpringBoot系列(12):SpringBoot集成log4j2日志配置

最近项目上有使用到log4j2日志模板配置&#xff0c;本文简单总结一下之前的学习笔记&#xff0c;如有纰漏之处&#xff0c;请批评指正。 1. log4j2日志依赖 使用log4j2日志模板时&#xff0c;需要引入相关依赖&#xff0c;下边的两种依赖方式均可。 1.1 使用sl4j依赖时 <…

Mapbox加载arcgis的底图

成果图 这种底图基本上都是按照raster来加载的&#xff0c;主要就是知道地址了&#xff0c;拼参数 具体参数请参考官网 https://developers.arcgis.com/rest/services-reference/enterprise/export-map.htm 源码 我的服务列表是这样的 http://XXXX:XXXX/arcgis/rest/services/…

电子游戏冷知识

电子游戏一直在试图用技术还原一个真实或虚幻的世界&#xff0c;并在其中演绎和倾诉人类种种的情感和欲望。 对信息技术发展的贡献 游戏推动了芯片、网络、VR/AR等领域的技术进步和创新。根据中科院的研究报告&#xff0c;游戏技术对芯片产业的科技进步贡献率是14.9%&#xff…

Android13 大屏设备底部显示TaskBar并NavagatonBar居右

Android 13大屏设备时底下显示任务栏以及虚拟按键靠右的问题&#xff0c; 当前需求是去掉底部任务栏的显示&#xff0c;并把虚拟按键导航栏居中显示。 修改前的效果&#xff1a; 修改后的效果&#xff1a; 通过查看源码逻辑&#xff0c;可以发现只需把isTablet相关的逻辑和…

Vue3路由

文章目录 Vue3路由1. 载入vue-router 库2. 实例2.1 Vue.js vue-router 实现单页应用2.2 router-link创建链接2.3 router-view显示与url对应组件2.4 <router-link> 相关属性 Vue3路由 1. 载入vue-router 库 Vue.js 路由需要载入vue-router 库 安装直接下载地址&#xf…

【陕西理工大学-数学软件实训】数学实验报告(8)(数值微积分与方程数值求解)

目录 一、实验目的 二、实验要求 三、实验内容与结果 四、实验心得 一、实验目的 1. 掌握求数值导数和数值积分的方法。 2. 掌握代数方程数值求解的方法。 3. 掌握常微分方程数值求解的方法。 二、实验要求 1. 根据实验内容&#xff0c;编写相应的MATLAB程序&#xff0c…

阿里云服务器部署安装hadoop与elasticsearch踩坑笔记

2023-09-12 14:00——2023.09.13 20:06 目录 00、软件版本 01、阿里云服务器部署hadoop 1.1、修改四个配置文件 1.1.1、core-site.xml 1.1.2、hdfs-site.xml 1.1.3、mapred-site.xml 1.1.4、yarn-site.xml 1.2、修改系统/etc/hosts文件与系统变量 1.2.1、修改主机名解…

【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;人工智能AI自言语言的情感分析、文本分词、文本翻译 1 IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE&a…

16G FC SFP+ SW光模块应用解析

随着云计算、大数据和物联网等技术的迅猛发展&#xff0c;数据传输速率不断提高。传统的铜缆传输面临带宽瓶颈和信号衰减等问题&#xff0c;而光纤传输凭借其高带宽、低损耗等优势成为了现代通信的主要选择。易天光通信的16G SFP SW 多模光模块作为高性能光纤传输设备&#xff…

数据分析三剑客之Pandas

1.引入 前面一篇文章我们介绍了numpy&#xff0c;但numpy的特长并不是在于数据处理&#xff0c;而是在它能非常方便地实现科学计算&#xff0c;所以我们日常对数据进行处理时用的numpy情况并不是很多&#xff0c;我们需要处理的数据一般都是带有列标签和index索引的&#xff0…

【PHY】3GPP UE能力类别的变化

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

I2C总线协议

什么是I2C I2C&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;也可以叫IIC、I2C&#xff0c;译作集成电路总线&#xff0c;是两线式串行通信总线&#xff0c;用于设备间的通讯等&#xff0c;标准情况下最高传送速率达100Kbps。顾名思义&#xff0c;I2C通讯只需…

【Redis】Redis实现分布式锁

【Redis】Redis常见面试题&#xff08;1&#xff09; 文章目录 【Redis】Redis常见面试题&#xff08;1&#xff09;1. 为什么要用分布式锁2. Redis如何实现分布式锁3. Redis接受多个请求模拟演示4. 使用Redis实现分布式锁会存在什么问题4.1 一个锁被长时间占用4.2 锁误删 【Re…

记录vite下使用require报错和解决办法

前情提要 我们现在项目用的是vite4react18开发的项目、但是最近公司有个睿智的人让我把webpack中的bpmn组件迁移过来、结果就出现问题啦&#xff1a;因为webpack是commonjs规范、但是vite不是、好像是es吧、可想而知各种报错 废话不多说啦 直接上代码&#xff1a; 注释是之前c…