防火墙 FireWall

这里写自定义目录标题

  • 一、概述
  • 二、防火墙分类
  • 三、防火墙性能
  • 四、硬件防火墙定义
  • 五、硬件防火墙作用(拓扑图 ups)
  • 六、硬件防火墙品牌
  • 七、软件防火墙
  • 八、iptables
    • 一、iptables是什么?
    • 二、netfilter/iptables功能
    • 三、iptables概念
    • 四、iptables中链的概念
    • 五、iptables中表的概念
    • 六、iptables中表链之间的关系
    • 七、iptables规则匹配条件分类
  • 九、各种情况的操作
    • 一、防火墙详细信息显示结果
    • 二、如果第一台服务器不能ping通第二台,但是可以ssh成功
    • 三、反过来可以ping通但是不能通ssh协议
    • 四、指定数据表源地址无法访问
    • 五、根据网卡显示拒绝访问
    • 六、通过ens33接口进入icmp拒绝,其他默认允许
    • 七、取反
    • 八、禁止访问防火墙的80端口,其他都可以访问
    • 九、只允许80端口访问,其余的都拒绝
    • 十、不允许其他主机ping通防火墙,但是防火墙可以ping通其他主机
    • 十一、拒绝端口号为80 和 22的协议访问

一、概述

在计算机领域,防火墙是用于保护信息安全的设备,其会依照用户定义的规则,允许或限制数据的传输。
在这里插入图片描述
用于保护内网安全的一种设备依据规则进行防护
用户定义规则
允许或拒绝外部用户访问

二、防火墙分类

逻辑上划分,防火墙可以大体分为主机防火墙和网络防火墙主机防火墙:针对于单个主机进行防护
网络防火墙:针对网络进行防护,处于网络边缘,防火墙背后是本地局域网网络防火墙主外(服务集体),主机防火墙主内(服务个人)

物理上划分,防火墙可分为硬件防火墙和软件防火墙
硬件防火墙:在硬件级别实现防火墙功能,另一部分基于软件实现,其性能高,硬件成本高
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,其性能相较于硬件防火墙低,成本较低,对于
Linux系统已自带,直接使用即可

三、防火墙性能

吞吐量

并发连接
新建连接
时延
抖动

四、硬件防火墙定义

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

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

在这里插入图片描述

六、硬件防火墙品牌

Juniper
在这里插入图片描述
cisco 思科ASA
在这里插入图片描述
华为
在这里插入图片描述

七、软件防火墙

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

Web应用防火墙(WAF)
Web应用防火墙是对web防护(网页保护)的安全防护设备(软件),主要用于截获所有HTTP数据或仅仅满足某些规则的 会话。多见于云平台中。
在这里插入图片描述
硬件防火墙与软件防火墙比较
硬件防火墙有独立的硬件设备,运算效率较高,价格略高,可为计算机网络提供安全防护。
软件防火墙必须部署在主机系统之上,相较于硬件防火墙运算效率低,在一定程度上会影响到主机系统性能,一般用 于单机系统或个人计算机中,不直接用于计算机网络中。

八、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中链的概念

举例说明:
当客户端访问服务器端的web服务时,客户端发送访问请求报文至网卡,而tcp/ip协议栈是属于内核的一部分,所 以,客户端的请求报文会通过内核的TCP协议传输到用户空间的web服务,而客户端报文的目标地址为web服务器所 监听的套接字(ip:port)上,当web服务器响应客户端请求时,web服务所回应的响应报文的目标地址为客户端地址, 我们说过,netfilter才是真正的防火墙,属于内核的一部分,所以,我们要想让netfilter起到作用,我们就需要在内 核中设置“关口”,所以进出的数据报文都要通过这些关口,经检查,符合放行条件的准允放行,符合阻拦条件的则被 阻止,于是就出现了input和output关口,然而在iptables中我们把关口叫做“链”。
在这里插入图片描述
上面的举例中,如果客户端发到本机的报文中包含的服务器地址并不是本机,而是其他服务器,此时本机就应该能够 进行转发,那么这个转发就是本机内核所支持的IP_FORWARD功能,此时我们的主机类似于路由器功能,所以我们会 看到在iptables中,所谓的关口并只有上面所提到的input及output这两个,应该还有“路由前”,“转发”,“路由后”, 它们所对应的英文名称分别为“PREROUTING”,“FORWARD”,“POSTROUTING”,这就是我们说到的5链。
在这里插入图片描述
通过上图可以看出,当我们在本地启动了防火墙功能时,数据报文需要经过以上关口,根据各报文情况,各报名经常 的“链”可能不同,如果报文目标地址是本机,则会经常input链发往本机用户空间,如果报文目标不是本机,则会直接 在内核空间中经常forward链和postrouting链转发出去。

有的时候我们也经常听到人们在称呼input为“规则链”,这又是怎么回事呢?我们知道,防火墙的作用在于对经过的数 据报文进行规则匹配,然后执行对应的“动作”,所以数据包经过这些关口时,必须匹配这个关口规则,但是关口规则 可能不止一条,可能会有很多,当我们把众多规则放在一个关口上时,所有的数据包经常都要进行匹配,那么就形成 了一个要匹配的规则链条,因此我们也把“链”称作“规则链”。
在这里插入图片描述
INPUT:处理入站数据包OUTPUT:处理出站数据包
FORWARD:处理转发数据包(主要是将数据包转发至本机其它网卡)
当数据报文经过本机时,网卡接收数据报文至缓冲区,内核读取报文ip首部,发现报文不是送到本机时(目的ip 不是本机),由内核直接送到forward链做匹配,匹配之后若符合forward的规则,再经由postrouting送往下一 跳或目的主机。
PREROUTING:在进行路由选择前处理数据包,修改到达防火墙数据包的目的IP地址,用于判断目标主机

POSTROUTING:在进行路由选择后处理数据包,修改要离开防火墙数据包的源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中表的优先级
raw-mangle-nat-filter(由高至低)

七、iptables规则匹配条件分类

基本匹配条件:
源地址,目标地址,源端口,目标端口等
基本匹配使用选项及功能
基本匹配的特点是:无需加载扩展模块,匹配规则生效

扩展匹配条件:
扩展匹配又分为显示匹配和隐式匹配。
扩展匹配的特点是:需要加载扩展模块,匹配规则方可生效。
隐式匹配的特点:使用-p选项指明协议时,无需再同时使用-m选项指明扩展模块以及不需要手动加载扩展模块; 显示匹配的特点:必须使用-m选项指明要调用的扩展模块的扩展机制以及需要手动加载扩展模块。

隐式匹配选项及功能

九、各种情况的操作

首先准备两台虚拟机
192.168.115.4
192.168.115.5 (开启防火墙)
在开启防火墙的服务输入命令

一、防火墙详细信息显示结果

iptables -nL

在这里插入图片描述
在这里插入图片描述
包括三个链
INPUT、FORWARD、OUTPUT

清空防火墙的详细信息

iptables -F

在这里插入图片描述
显示结果为成功清空(清空的只是过滤表)防火墙策略默认是允许所有
清空了 所有的过滤表,但是策略是允许所有,验证 可以成功ping通、虽然防火墙关闭但是ssh可以成功通过
在这里插入图片描述
在这里插入图片描述

二、如果第一台服务器不能ping通第二台,但是可以ssh成功

需要更改防火墙规则

iptables -t filter -A INPUT -p icmp -j REJECT

在这里插入图片描述
防火墙更改规则后验证
在这里插入图片描述
验证互通结果
无法ping通,可以ssh
在这里插入图片描述

三、反过来可以ping通但是不能通ssh协议

需要更改规则(没做完一次要清空一下,这样不影响下一次的结果)

iptables -F
iptables -nL

输入

iptables -t filter -A INPUT -p tcp -j REJECT

在这里插入图片描述
输入完因为是通过tcp连接的远程,输入这个命令则断开连接
在这里插入图片描述
虽然他断开连接,但是回到第一台机器验证
在这里插入图片描述
则可以成功ping通,但是ssh则无法连接

四、指定数据表源地址无法访问

iptables -t filter -A INPUT -p icmp -j REJECT
iptables -t filter -A INPUT -s 192.168.115.4 -j REJECT

在这里插入图片描述
输入命令 查看防火墙规则

iptables -nL

在这里插入图片描述
会发现有两条规则,一条是 icmp协议无法访问。
一条是 IP为 192.168.115.4的无法访问

验证 (直接提示验证失败)在这里插入图片描述

五、根据网卡显示拒绝访问

iptables -A INPUT -i ens33 -j DROP 

iptables -A INPUT -i ens33 -j DROP 这个命令的作用是将通过网络接口 ens33 进入系统的数据包丢弃(drop),即拒绝来自该网络接口的数据包。
该规则只会影响到通过 ens33 网络接口进入系统的数据包,而不会影响从系统发往 ens33 网络接口的数据包。对于通过其他网络接口发出的访问,这个规则不会对其生效。
所以,这个命令并不会直接丢弃 ens33 发起的所有访问,而是只针对通过 ens33 网络接口进入系统的数据包进行丢弃。其他网络接口的流量将不受影响。
如果你想要限制源地址为 ens33 的数据包的访问,你可以使用 -s 参数来指定源地址。例如,iptables -A INPUT -i ens33 -s 192.168.115.4 -j DROP 将会丢弃源地址为 192.168.115.4 通过 ens33 网络接口进入系统的数据包。

验证 (因为是此网卡直接丢弃,所以验证时,他只会显示在等待返回)
在这里插入图片描述

六、通过ens33接口进入icmp拒绝,其他默认允许

iptables -A INPUT -p icmp -i ens33 -j DROP 

分析:因为ping 属于icmp协议,所以分析该命令可以得出,无法ping通,但是ssh属于ssh协议,则ssh可以正常连接

验证
在这里插入图片描述
这条命令和数据表无法访问有相似的地方,又不完全一样
iptables -A INPUT ! -p icmp -i ens33 -j DROP 表示在 INPUT 链上添加规则,如果数据包不是 ICMP 类型,并且通过 ens33 接口进入,则将其丢弃。

iptables -t filter -A INPUT -p icmp -j REJECT 表示在 INPUT 链上添加规则,如果数据包是 ICMP 类型,则拒绝回复一个 ICMP 错误消息。

七、取反

和上一条命令正好相反,除了icmp协议可以通信,其他协议如果通过ens33接口进入防火墙都是拒绝的

iptables -A INPUT ! -p icmp -i ens33 -j DROP

因为远程连接是TCP协议,所以运行此命令时,会提示连接断开,但是不影响验证结果
在这里插入图片描述
分析:因为ping属于icmp协议,而ssh不属于,按此命令来看,验证结果是可以ping通但是ssh无法成功连接

验证
在这里插入图片描述

八、禁止访问防火墙的80端口,其他都可以访问

**- ACCEPT 表示接受数据包,允许数据包通过防火墙,并交给系统进一步处理。

  • REJECT 表示拒绝数据包,不允许数据包通过防火墙,并向发送者发送一个拒绝的响应。
    相同点是,它们都会阻止数据包通过防火墙,不过处理方式略有不同。
    当使用 ACCEPT 时,数据包会被允许通过并传递给系统的进一步处理。而使用 REJECT 时,数据包会被阻止,并且发送一个特定的响应给发送者,告诉它被拒绝了。
    可以根据实际需求选择适合的命令。如果你希望明确告知发送者被拒绝,可以使用 REJECT 命令,否则可以使用 DROP 命令来丢弃数据包,而不给发送者任何响应。**
iptables -A INPUT -p tcp --dport 80 -j REJECT

80端口无法通过防火墙成功访问

用curl 192.168.115.5 来验证因为
在这里插入图片描述
不影响SSH的结果,也不影响ping的结果

验证
在这里插入图片描述

九、只允许80端口访问,其余的都拒绝

**- ACCEPT 表示接受数据包,允许数据包通过防火墙,并交给系统进一步处理。

  • REJECT 表示拒绝数据包,不允许数据包通过防火墙,并向发送者发送一个拒绝的响应。
    相同点是,它们都会阻止数据包通过防火墙,不过处理方式略有不同。
    当使用 ACCEPT 时,数据包会被允许通过并传递给系统的进一步处理。而使用 REJECT 时,数据包会被阻止,并且发送一个特定的响应给发送者,告诉它被拒绝了。
    可以根据实际需求选择适合的命令。如果你希望明确告知发送者被拒绝,可以使用 REJECT 命令,否则可以使用 DROP 命令来丢弃数据包,而不给发送者任何响应。**
iptables -A INPUT -p tcp --dport 80 -j ACCEP
iptables -A INPUT -j DROP

在这里插入图片描述
验证
可以 curl 192.168.115.5
但是ping不通和ssh无法通过
而且此操作会导致远程连接断开
在这里插入图片描述

十、不允许其他主机ping通防火墙,但是防火墙可以ping通其他主机

iptables -A INPUT -p icmp --icmp-type 8/0 -j REJECT

在这里插入图片描述
验证
4 ping 5 失败
在这里插入图片描述
5 ping 4 成功
在这里插入图片描述

十一、拒绝端口号为80 和 22的协议访问

iptables -A INPUT -p tcp   -m multiport    --dports 80,22 -j REJECT

此命令会断开远程连接
不影响ping ,是因为 ping来自于icmp协议
而不能curl通和ssh通,是因为curl是80号端口,ssh是通过端口22号进行ssh访问

验证
在这里插入图片描述

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

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

相关文章

无涯教程-JavaScript - DB函数

描述 DB函数使用固定余额递减法返回指定期间内资产的折旧。 语法 DB (cost, salvage, life, period, [month])争论 Argument描述Required/OptionalCostThe initial cost of the asset.RequiredSalvageThe value at the end of the depreciation (sometimes called the salv…

基于SSM的助学贷款管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

手撕代码是程序员的基本功吗?

前言: 现在众多企业都要求在面试中用“手撕代码”来考验应聘者的代码能力,你觉得手敲代码是否可以体现真实的基础实力? 本期话题: 1、你觉得手撕代码是程序员的基本功吗? 2、为什么会用“手撕代码”来考验程序员能力&a…

vue学习之属性绑定

内容渲染 采用 &#xff1a;进行属性渲染创建 demo3.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

c++day4

仿照string类&#xff0c;完成myString 类 #include <iostream> #include<cstring>using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10){str…

Datax 数据同步-使用总结(二)

一、前言 这部分主要记录 datax 实现增量同步的方案。 二、核心思路 结合datax 提供的preSql、 postSql以及占位符&#xff0c;外加另外一张表同步日志表来记录相关同步信息。 三、版本迭代 3.1 初版本 where tbq.opera_date > cast(date_format(DATE_SUB(NOW(), inte…

SpringMVC之文件上传下载

SpringMVC之文件上传下载 一、文件上传二、文件下载三、多文件上传 一、文件上传 配置多功能视图解析器&#xff08;spring-mvc.xml&#xff09;&#xff1a;在Spring MVC的配置文件&#xff08;spring-mvc.xml&#xff09;中配置多功能视图解析器&#xff0c;以支持文件上传。…

C++11 新特性 ⑤ | 仿函数与 lambda 表达式

目录 1、引言 2、仿函数 3、lambda表达式 3.1、lambda表达式的一般形式 3.2、返回类型说明 3.3、捕获列表的规则 3.4、可以捕获哪些变量 3.5、lambda表达式给编程带来的便利 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&a…

PyTorch实现注意力机制及使用方法汇总,附30篇attention论文

还记得鼎鼎大名的《Attention is All You Need》吗&#xff1f;不过我们今天要聊的重点不是transformer&#xff0c;而是注意力机制。 注意力机制最早应用于计算机视觉领域&#xff0c;后来也逐渐在NLP领域广泛应用&#xff0c;它克服了传统的神经网络的的一些局限&#xff0c…

JAVAEE初阶相关内容第十一弹--多线程(进阶)

目录 一、常见的锁策略 1乐观锁VS悲观锁 1.1乐观锁 1.2悲观锁 2.轻量级锁VS重量级锁 2.1轻量级锁 2.2重量级锁 3.自旋锁VS挂起等待锁 3.1自旋锁 3.2挂起等待锁 4.互斥锁VS读写锁 4.1互斥锁 4.2读写锁 5.公平锁VS非公平锁 5.1公平锁 5.2非公平锁 6.可重入锁VS不…

MemJam: A false Dependency attack against constant-time crypto implementations

作者&#xff1a;A. Moghimi, J. Wichelmann, T. Eisenbarth, and B. Sunar. 发布&#xff1a;International Journal of Parallel Programming 时间&#xff1a;Aug 2019. 笔记&#xff1a; 缓存定时攻击 1、攻击原理 共享缓存存在定时侧信道的风险&#xff08;例如在处理…

设计模式课件

设计模式 创建型设计模式的分类&#xff0c;定义结构型设计模式的分类&#xff0c;定义行为型设计模式的分类&#xff0c;定义 设计模式的分类&#xff0c;在23种设计模式中&#xff0c;每一种属于哪一种的设计模式设计模式的应用场景设计模式的图形&#xff08;考察较少&#…

华为云云耀云服务器L实例评测|带宽,磁盘,CPU,内存以及控制台监控测试

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;AWS/阿里云资深使用…

Python从零到一构建项目

随着互联网的发展&#xff0c;网络上的信息量急剧增长&#xff0c;而获取、整理和分析这些信息对于很多人来说是一项艰巨的任务。而Python作为一种功能强大的编程语言&#xff0c;它的爬虫能力使得我们能够自动化地从网页中获取数据&#xff0c;大大提高了效率。本文将分享如何…

【技术分享】RK Android11系统SD卡启动方法

本文基于Purple Pi OH 3566主板&#xff0c;介绍Android11源码的修改&#xff0c;获得可从SD卡启动的Android11系统镜像。 Purple Pi OH作为一款兼容树莓派的开源主板&#xff0c;采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops&#xff0c;…

海外商城小程序如何开发

随着全球化的发展和人们对跨境购物的需求逐渐增加&#xff0c;海外商城小程序成为了众多电商平台的重要组成部分。本文将深入探讨如何搭建海外商城小程序&#xff0c;从技术实现到用户体验设计&#xff0c;为开发者提供专业且有深度的思考&#xff0c;以帮助他们打造出色的跨境…

手写RPC框架--13.优雅停机

优雅停机 优雅停机a.优雅停机概述b.服务端实现优雅停机c.客户端实现优雅停机d.优雅启动 优雅停机 a.优雅停机概述 当我们快速关闭服务提供方时&#xff0c;注册中心感知、以及通过watcher机制通知调用方一定不能做到实时&#xff0c;一定会有延时&#xff0c;同时我们的心跳检…

如何把视频格式转换成mp4?支持的格式种类非常多。

如何把视频格式转换成mp4&#xff1f;随着计算机技术的迅猛发展&#xff0c;我们现在有着各种各样的视频格式可供选择&#xff0c;平时我们都知道的mp4、flv、mov、mkv、avi、wmv等&#xff0c;都是视频格式的种类。其中&#xff0c;MP4是一种具有极佳兼容性的视频格式&#xf…

TikTok魔法:揭秘那个“神奇”的算法

嘿&#xff0c;你是不是每次打开TikTok&#xff0c;都感觉这个应用好像了解你的内心世界一样&#xff1f;没错&#xff0c;背后有一个不为人知、神奇的算法正在起作用&#xff0c;让你欲罢不能。在这篇文章中&#xff0c;我们将揭开TikTok算法的神秘面纱&#xff0c;看看它是如…

车机多用户系统的适配问题

多用户问题出现背景 记录一下多用户的适配问题&#xff1a; 背景是system/app下面新push了两个apk&#xff0c;一个是我们的业务场景apk一个是虚拟车CarService服务的apk&#xff0c;我们的apk需要链接CarService服务通过AIDL通信。 下面这两张图是未roo的情况&#xff08;当…