OWASP2021

开放式Web应用程序安全项目(OWASP,Open Web Application Security Project),top10 展示了当前对web应用威胁最大应用最广的漏洞,学习目的在于了解当前最新的安全动态、走向,针对其内容更有针对性的学习安全,下图是owasp2021相较于2017的比较图,不难发现新增了三种威胁,而2017的威胁的排名在2021均有变化。

owasp2021 top10 分别是:

1.Broken Access Control 失效的访问控制
2.Cryptographic Failures 加密失败
3.Injection 注入
4.Insecure Design 不安全的设计 //new
5.Security Misconfigration 安全配置错误
6.Vulnerable and Outdated Components 易受攻击和过时的组件
7.Identification and Authentication Failures 认证和授权失败
8.Software and Data Integrity Failures 软件和数据完整性故障 //new
9.Security Logging and Monitoring Failures 安全日志和监控失效
10.Server-Side Request Forgery 服务器请求伪造 //new

总体来看信息安全问题归根到底还是人的问题,比如新上榜的不安全的设计,注入、安全配置错误、易受攻击和过时的组件,都是人为因素占比相当大。体现的是在当前信息化的社会里,很多信息、网络管理员的安全意识淡薄,对于自己配制的信息不熟悉,对其所在的企事业单位的信息系统整体框架不了解,对于当前信息安全发展动向不清楚,对新的安全技术学习不认真。

再仔细看,如果把top10中某些漏洞联系起来看,能发现一个趋势–内网安全问题变得严峻。我得出这个结论最重要的一个论据就是第十位新上榜的SSRF服务端请求伪造,攻击者使用这个技术来实现跨域、横向移动等战术。这说明越来越多的内部网络发现来自内网设备的攻击,这应该引起大家的注意,毕竟当前内网安全的保障仍需完善。

黄保华老师在课上曾不止一次提到,防止安全事故发生要做到两项极重要的事情,一个是访问控制,另一个是安全审计。2021 top10 的首位是失效的访问控制,即攻击者通过绕过等技术,以任意身份访问被限制访问的系统内部资源。显然倘若访问控制失效,攻击者就会如入无人之境。

对于安全审计,我预言不久之后随着防御技术更加成熟,以ATT&CK框架为代表的中级模型被广泛应用后,攻击者可能会采取更意想不到的战术、技术入侵、破坏信息系统。随后攻击者会将把重心集中在破坏审计这个环节。通过破坏审计,让已有框架的搜集功能失效,让上下文信息的联系断开,使得防守方应急速度落后于攻击者的攻击速度、导致防守方无法短时间内制定出方案,无法止损。并且即便处理了漏洞,也无法对事件起因进行分析,无法溯源,对于防御下一次攻击以及更新防御方案,更新防御技术框架十分不利。

基于这个预言,我认为从事安全行业的研究者必须提高警惕,通过改进、巩固,更新已有的安全审计技术和设施,找到更加先进,高效的方法使得攻击者的战术难以实现。我认为,隐写溯源技术,除了在保护版权、保护涉密文件有重大作用外,对于安全审计来说也能发挥其功能。鉴于隐写溯源技术未普及,仅作粗浅判断。目前隐写溯源技术主要还是将数字水印(包含操作人员、设备等秘密信息)利用隐写术嵌入如图像、音频、视频中,后期通过提取识别、验证数字水印实现防伪、溯源的效果。借鉴该思想,对于分析安全事件的核心日志等文件,也可以使用隐写溯源技术分布式的镶嵌在某处或者多处,当攻击者企图篡改日志、破坏日志、混淆数据的时候,我们可以根据水印来检测真伪并且一定程度上进行溯源。隐写溯源技术是具有鲁棒性、脆弱性、不可感知性的,我认为日后它将广泛应用于更行各业之中,本篇文章主要是学习owasp2021同2017的异同分析,对于隐写溯源就不再多描述了。

(ps:照这么发展,以后owasp top 10可能还会出现:失效的隐写溯源,哈哈)

下面我会结合网上优秀文章对新的top10进行讨论。

一、top1

新的top1是失效的访问控制(原top5),取代了注入。调查显示94%受测试的应用程序存在该漏洞。
我认为这很有可能是随着信息化的发展,各行业纷纷转型,而由于技术、资金、安全观念不足,大多企业会使用网上开源的代码,或者雇用经验不足的技术人员,又或者是企业内的技术人员的安全意识不够充分,引起安全问题。
展开来说,编写网站的程序员贪图方便照搬了网上开源的CMS源码,对于一些必须严格执行访问控制的功能点没进行检查。我们知道系统如果没有访问控制,会让非法用户任意跳转页面,或者操作资源。我们应该首先验证身份,再根据授权情况给予放行等操作。一般的验证方式要么写在每个功能页之中,要么就写在一个文件里,通过文件包含去应用所有功能页,我们还会使用cookie或者session、token等技术来快速验证身份。
问题就出在某些功能页没有写上验证代码或者没有引用验证代码,攻击者通过目录扫描技术很快就能找到这些文件,通过工具或者人工检查找到缺少验证的地方,就能直接绕开访问控制,实现跳转。

二、top2

新的top2是加密失败(原top3 敏感数据泄露),网上文章说这是“广泛的症状不是根本原因”,那根本原因是啥啊.……就我所学来看,加密失败与密码学发展有相关性,与当前加密技术、编码技术相关。比方说最普遍的MD5存在哈希碰撞,彩虹表,很多数据库中保存的密码仅简单的加密,很容易被破解为明文,连盐都不加,加密后的md5值放在在线工具一下子就被破解出来了。另一个影响比较大的是保存系统认证的密码、凭证等,如windows的LM Hash和NTLM Hash加密后的内容被破解,让攻击者能实现在内网中提权以及横向移动,危害性很大。
那么需要我们找到更安全的加密技术,比如采取国产加密算法等。同时它上升到top2应该引起人们对密码学关注,根据本人在学校密码学学习,我们用的技术趋于过时,存在极大的被破解风险,就比如随着计算机的算力提高DES都存在被暴力破解。而在未来量子计算技术很有可能打破现有大部分的加密方式。
加密失败举例子说明常见的找到配置文件,根据规则替换掉攻击者想要的密码。

三、top3

新的top3是注入(原top1)学习web安全首先接触的是SQL注入漏洞,xss漏洞(漏洞之王),注入的危害度相比以前有所下降,我想跟如今的安全技术提高有关。从1998年sql注入刚引起瞩目到2017年,这十几二十年的技术发展,频频爆出的注入漏洞一次又一次的提醒开发人员要对传进来的参数进行严格的过滤、控制,我很赞同那个观点–“一切来自用户的输入都是不可信的”。霍林老师在报告中提到,以往很多技术在设计之初是不考虑安全问题的,谁也无法预料未来攻击者会以何种方式找到漏洞并且攻击。比如SQL注入,设计之初没考虑好若有人存心构造payload闭合select语句会产生如此大的危害。
立足当下,我们依然要严格的对传入的参数进行严格的过滤、限制。

四、top4

新的top4是不安全的设计,这是新上榜的威胁,取代了原来的xxe漏洞。它的上榜体现了安全相关从业人员、开发人员正在寻求更多的安全模式,在设计应用或者流程之初就要考虑到安全性。
不安全的设计说白了类似上一点提到的,设计者在关键功能点没有进行细致的安全考虑,出现了验证的漏洞,支付逻辑漏洞,业务逻辑漏洞等安全问题。
比如前后端验证没做好,在某些支付逻辑漏洞中,仅通过修改物品的单价或者数量就能实现对最后价格的修改,0元购不是梦;再比如,任意密码找回,某些验证码的安全机制设计得并不完善,易被绕过;有的验证码不限制次数导致攻击者可以通过爆破求出验证码;还有的验证码允许复用,既先合法进行业务拿到合法的验证码,然后将该验证码用于找回其他任意账户的密码等,这些都是在逻辑上存在的安全问题。

五、top5

新的top5是安全配置错误(原top6),这仍是管理人员疏忽的地方,很多漏洞是基于某些框架、语言的特性利用的,比如php在低版本会存在一些魔术符号,若被错误开启,或者默认开启,攻击者会通过这些错误的安全配置进行攻击。在安全开发我们往往寻求最小特权原则,不必要的功能我们要严格限制,给予用户或者系统实现某种业务最基本的功能权限就足够了,比如一些仅用来留言的功能点,没必要配置其能够解析命令,又比如说宏病毒、eval函数,很多时候我们可以通过禁止宏、禁用eval函数来规避它们被攻击者恶意利用。
再者,我们应该更加注重自身的安全意识培养,对于使用框架或者其他情况,面对大量的可控配置,我们要熟知涉及到安全问题的配置信息,严格的遵守操作手册,对默认配置进行修改,对权限进行合理的增删。

六、top6

新的top6是脆弱的和过时的组件(原top9使用存在已知漏洞的组件)。不难看出这也是人为因素占据大部分责任的威胁。
在web应用、操作系统、数据库管理系统等诸多方面,为了实现不同的需求、便利操作,往往人们选择使用第三方组件、控件,那么这些组件出现安全问题将直接危害到它的载体也就是会危害设备或者系统。在去年年末爆发的log4j2安全漏洞,它是apache推出的日志系统,被广泛使用在apache的产品中,它存在任意代码执行漏洞,使用该组件的所有资产均受到威胁。

七、top7

新的top7是认证和授权失败(原top2)。说明标准化框架发挥了作用。它包括密码、密钥、会话token、用户信息以及与用户身份验证有联系的信息被篡改、伪造、破坏。
比如验证来源时可以通过修改HTTP报文中的数据来伪造来源;很多时候认证和授权为了便利仅进行对某些数据字段的验证,比如状态码,这是十分危险的,因为攻击者可以修改。

八、top8

新的top8是软件和数据完整性被破坏。这是新增的威胁,推测其要实现的战术,有破坏水印对被保护的资产进行恶意泄露;对生产环境的软件进行破坏,导致设备异常如大停电,可能与apt有关。

九、top9

新的top9是安全日志记录和监控失败(原top10)。该问题会严重影响可见性和取证,如我在本篇文章开头处做出的预言那样分析,此类威胁程度会越来愈严重,下次更新它的排名应该会更高。
查阅学习ATT&CK时,我注意到当前的一些高频攻击技术常常伪装自己,比如重命名,这个时候就需要防守方检测表里不一名字的情况,在安全审计的时候提高警惕。

十、top10

新的top10是服务器请求伪造SSRF,是新上榜的安全威胁。了解到它上榜的原因,其中一个是它是安全社区中呼声最高的,同我在文章开头所说的那用,我认为这是内网安全即将迎来下一波风险挑战的信号。

总结:
owasp 仅是一项参考基准,我们可以通过它来大致判断安全的未来走势,也应该通过了解它来加强我们的安全意识。老话重提,上述top10有相当多的威胁是本能避免的,事故就是出于人的疏忽,意识薄弱,或者在一些敏感问题上思想觉悟不够高。是人在贪图方便、利益等。
有时我们不能只掌握技术,还应该要有高度的自觉性,责任心,对社会负责更要对国家负责。

以PHP为例子网站开发

若某功能点代码中以$a=$_GET[‘x’]; 方式接受数据,只有提交时以GET提交才可以。

$_request[]:接收所有方式,包括get的请求和post请求

cookie存储在本地客户端的,浏览器删除记录就会消失

seesion存储在服务器的服务端,浏览器关闭就会消失,再建立就会变成新的

假如是 include ‘config.php’接收表单的账号密码

$user=$_POST[‘username’];

$paa=$_POST[‘password’];

$conn=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); //服务端连接数据库

$sql=”select * from admin where username=’$user’ and password=’$pass’ “; //拼凑成查询语句,用户账号密码从POST获取

$data=mysqli_query($conn,$sql); //服务端登录成功后,通过sql语句去查询相关内容

if(mysqli_num_rows($data)>0){ //若成功查询,则会有行数,即大于0,若查询失败则为空值

echo “<script>alert(‘成功’)”;

header(‘Location:index.php’); //跳转相应的网页

exit();}


以index.php为例子,很多页面需要登录才能访问,若每一页的代码中都需要连接数据库验证,则会极大程度消耗资源,因此引申出的未授权问题以及cookie的使用:



$data=mysqli_query($conn,$sql);  //服务端登录成功后,通过sql语句去查询相关内容

if(mysqli_num_rows($data)>0){    //若成功查询,则会有行数,即大于0,若查询失败则为空值
$expire = time() + 60*60*24*30;//一个月过期
setcookie('username',$md5($user),$expire.'/');
setcookie('password',$md5($pass),$expire.'/');
echo "<script>alert('成功')"; 

header('Location:index.php');  //跳转相应的网页

exit();}

上述代码绿色部分为使用cookie,于是,需要授权的页面验证cookie值就可以了,如下:

if ($_COOKIE[‘username’]==’xx’ and $_COOKIE[‘password’]==’xx’){
} //服务器服务端验证cookie

cookie是凭据,除非删除或者设置为空,不会消失。仅通过cookie鉴定权限存在极大安全隐患,因此使用seesion

session:

是用session的情况下,浏览器的cookie部分信息显示如下图:

session保存在服务器的服务端,更加安全。


在存在登录功能的页面通常攻击者采用暴力破解的方式猜解密码

<?php // 启动会话 session_start(); // 检查会话中是否已经存在 ‘token’,如果没有则创建一个新的令牌 if (!isset($_SESSION[‘token’])) { $_SESSION[‘token’] = bin2hex(random_bytes(32)); // 生成一个安全的随机令牌 } // 现在可以在会话中访问 $_SESSION[‘token’] ?>

使用 token 防止暴力破解、重放攻击是一种常见的安全措施,它主要通过以下步骤来实现:

  1. 生成 Token: 在用户进行登录或其他敏感操作之前,服务器会生成一个唯一的 token,并将其存储在服务器的会话或数据库中,同时将 token 发送到客户端(通常是浏览器)通过“检查”可以看到token。
  2. 验证 Token: 当用户提交登录请求时,服务器会要求客户端发送之前生成的 token。服务器会对比客户端发送的 token 与存储在服务器端的 token 是否一致。这是关键,使用bp重发器进行暴力破解,每发一次包服务端都会更新token。若手动则可以正常爆破,因为手动爆破下浏览器每次的token也会跟着改变。

数据不回显、数据不出网

问题点:命令执行时执行结果不回显

执行回显/不回显的原因:代码层面调用问题以及没有输出测试等。

解决办法(命令执行存在的前提下):

①反弹权限

参考文章:https://cloud.tencent.com/developer/article/1906240

②数据外带

使用DNSLOG或者类似yakit存在反连功能的工具,执行命令,查看是否能够执行命令

③延迟判断

在F12检查,就可以看到网页响应时间,使用命令ping -n 3 x.x.x.x(windows下延迟3秒),执行ping -c 3 x.x.x.x(linux下延迟3秒)对比是否有延迟,延迟则表示命令执行存在。

④写文件并访问

写一个静态文件或者可访问文件确定是否能执行命令,如url参数输入(xxxx/php?后)echo 123 > 1.txt 然后访问该txt的路径查看是否执行命令。


问题点:数据不出网

原因:主机或应用防火墙限制

解决:正反向反弹、隧道


反弹shell

目的:解决防火墙出入站规则限制、端口被占用、无法进行正向连接、数据不回显

正反向:reverse反向,bind正向

操作系统区别:windows通过powershell反弹,linux通过nc反弹

在线生成反弹shell:

https://sec.lintstar.top

https://www.revshells.com

https://forum.ywhack.com/shell.php

抓包技术

WEB\APP\小程序\PC-burp\Yakit

抓包工具:

①burp

②yakit

一、抓包技术前提

安装证书:(用哪些抓包软件就要安装哪些软件的证书)

①浏览器安装证书:解决本地抓HTTPS报文

bp导出证书后安装证书,安装在:受信任的根证书颁发机构、中间颁发机构。

②模拟器安装证书:解决模拟器抓HTTPS报文

雷电模拟器为例子:将burp导出的的证书安装到模拟器

③真机器(指的是手机比如ios、鸿蒙、安卓)安装证书:解决真机器抓HTTPS报文

手机模拟器APP抓包:

1、模拟器安装了bp证书

2、在模拟器配置模拟器的网络。一般情况下,模拟器都是使用WIFI接入网络,因此在模拟器的WIFI配置中,设置“代理”,其中代理的ip地址为物理机的以太网适配器/无线局域网适配器的IP地址。而端口则配置一个不和其他要使用端口重复的端口号。

3、在burpsuite上,在监听设置处使用“specific address”配置第二步的IP地址(选择或设置成第二步的IP地址即可),端口也按照第二步的端口号进行配置。

可能遇到的问题:

①APP代理检测(抓不了包)

②APP证书校验(抓不了包)

③APP模拟器检测(运行不了)

小程序抓包:

1、需要使用转发工具:proxifier配合burpsuite

2、在proxifier上配置IP为127.0.0.1(与burp一样)端口为8888(与burp一样)

3、在proxifier上配置代理规则:应用程序处输入要抓的小程序名称.exe(打开小程序,打开任务管理器,在任务管理器中找到小程序的进程,右键进入小程序所在文件夹,找到小程序名称.exe);然后在“动作”设置成“proxy https 127.0.0.1”实现转发。

4、在proxifier代理规则处,将默认的规则的“动作”设置成“direct”,否则会转发大量的数据包无法正确抓到小程序的包。

PC应用抓包:

与小程序抓包同理。


yakit

抓包:使用MITM中间人劫持功能

配置:

1、免配置启动(需要谷歌浏览器)

2、参考burp,下载yakit的证书,安装,然后在yakit左上角系统设置

yakit与burpsuite的区别,抓APP的包时,在yakit的“劫持代理监听主机”处设置成0.0.0.0(监听所有网卡)


抓包工具联动:

1、流量从burpsuite处理再到yakit

①burp正常设置监听127.0.0.1:8088

②yakit设置监听127.0.0.1:8083

③Burpsuite->User options->Connections->Upstream Proxy Servers->添加一条上游代理(SSR-HTTP)
Destination host:目标网站域名或者IP,支持通配符,填写*
Proxy host:SSR-HTTP代理服务器的IP地址,即127.0.0.1
Proxy port:SSR-HTTP的代理端口,即1081
Authentication type:这里选择认证类型,由于SSR本地代理无需认证,这是选择None

2、流量从yakit处理再到burpsuite

①MITM交互式劫持处,“劫持代理监听主机”设置成127.0.0.1,“监听端口”设置8083,然后在“下游代理”处配置代理认证,如burp监听ip为127.0.0.1监听端口为8088,则设置成“http://127.0.0.1:8088”。意思是流量先从yakit的8083经过,再转发到burp的8088端口。

②burpsuit按照普通设置即可。


配置代理抓包:clash->burp->yakit

目的:目标需要梯子;ip需要隐藏

①clash使用全局代理

②burp配置上游代理:Burpsuite->User options->Connections->Upstream Proxy Servers
配置ip:127.0.0.1,配置端口7890(以clash为例子)

③此时浏览器或者系统代理监听burp端口如8888

④burp配置监听ip127.0.0.1,监听端口8888

yakit配置同理,因此从这里看出burp的upstream proxy 和yakit的下游代理是一个回事。


全局协议抓包:

使用工具:wireshark、科来

目的:

①解决部分代理校验:

APP/PC应用检测到物理机使用了代理后,设置策略拒绝被抓包。wireshark、科来抓的是网卡。

②APP/小程序/PC应用

由于应用类型不同,不是所有数据都是https

③蓝队分析TCP/UDP流量

敏感端口

1、操作系统
Linux(必备)、微软

2、负载均衡
DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB(阿里云)

3、分布式框架
Dubbo、Motan、Spring-Could

4、数据库中间件
DRDS (阿里云)、Mycat、360Atlas、Cobar (不维护了)

5、消息队列
RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka

6、注册中心
Zookeeper、Redis

7、缓存
Redis、Oscache、Memcache、Ehcache

8、集成部署
Docker、Jenkins、Git、Maven

9、存储
OSS、NFS、FastDFS、MogileFS

10、数据库
MySql、Redis、MongoDB、PostgreSQL、Memcache、HBase

11、网络
专用网络VPC、弹性公网IP、CDN

原文链接:https://blog.csdn.net/daijin888888/article/details/80160288

网站分类、技术

一、网站的细分

①主站

www.baidu.com

②分站

blog.baidu.com //也叫子域名

③端口站

www.baidu.com:8088

④目录站

www.baidu.com/zweb/

⑤子站

123.blog.baidu.com

了解目的:若其他网站失陷,主站可能会受到影响。比如主站和分站共用同一个公网IP地址。

关联步骤:信息搜集-子域名搜集

相关工具:御剑

二、数据库的细分

①本地数据库 //网站与数据库使用相同的公网IP

由本地服务器搭建

②分离数据库 //网站与数据库使用不同的公网IP

由其他服务器搭建

③云数据库

如阿里云云服务器专门起一个MYSQL,此时网站关联的数据库外网地址可能是:rm-xxxxxxxx.mysql.rds.aliyun.com(RDS) //可以设置白名单IP,因此站库分离的情况下,即便获取了数据库的账号密码,除非攻陷了白名单的IP,否则也无法连接数据库。

三、平台的细分

①系统:windows、linux、macos //涉及-提权

②容器:docker、K8s、vmware、virtualbox //涉及-需要使用虚拟机的逃逸技术

③中间件:apache、nginx、iis、lighttpd、tomcat、jboss、weblogic、websphere、jetty等 //涉及-能解析的文件类型不同


网站搭建差异:

① 宝塔搭建:需要绕过宝塔限制

②镜像环境搭建:需要提权横向

③docker容器搭建:需要逃逸提权


网站的前后端代码差异:

①前端:nodejs、vue等

②后端:php、java、python等


web使用的应用技术(影响渗透测试效果)

①WEB+WAF:网络应用防火墙

软件型WAF(如长亭的雷池)

硬件型WAF(如长亭的雷池)

云WAF

内置WAF

②WEB+CDN:内容加速

影响渗透测试:隐藏真实源IP,导致目标测试错误,如对一个CDN进行测试也不会对原网站造成影响。

③WEB+OSS :云存储如阿里云OSS

影响:文件上传漏洞只能上传下载,但是不会解析代码,并且域名和网站没关系,因为域名是aliyun。

常见OSS:本机存储、从机存储、七牛、阿里云OSS、又拍云、腾讯云COS、onedrive、AWS S3

阿里云OSS的配置:使用API访问OSS时,需要使用AccessKey(包括AccessKeyId和AccessKeySecret)进行身份验证。

④WEB+反向代理

影响:渗透测试的目标只是一个代理为非真实的服务器,当前没有有效手段识别所进行渗透测试的IP是否为反向代理。

⑤WEB+负载均衡

影响:多个服务器加载服务,测试过程存在许多目标。如有多台服务器,渗透测试只对其中一台备份服务器进行了测试,而真正的主服务器不受影响。

PS:CDN和负载均衡的区别:CDN节点多,负载均衡少。通过超级ping等主动探测手段测试是否为CDN

漏洞库:https://www.yuque.com/u25571586/dyaqbugs?# 密码:xnzx

接口泄露:

swagger为例子:

登录接口:爆破密码

用户信息:枚举其他用户信息

文件上传:上传后门

票据交易:泄露敏感数据


网站使用的身份鉴权的主要分类:
①Cookie(常见、简单)

②Session

③Token(主流)

④JWT(主流)

⑤oauth2(主流,中大型网站,第三方验证)


参考:https://mp.weixin.qq.com/s/Z6rt_ggCA8dNVJPgELZ44w

IPtables

主要参数:

  • -A: 在指定链的末尾添加一条规则。
  • -D: 删除指定链中的规则。
  • -I: 在指定链中插入一条规则。
  • -R: 替换指定链中的规则。
  • -L: 列出指定链中的所有规则。
  • -F: 清空指定链中的所有规则。
  • -Z: 将指定链中的所有计数器清零。
  • -N: 创建一个新的用户定义链。
  • -X: 删除指定的用户定义链。
  • -P: 设置指定链的默认策略。
  • -s: 指定源 IP 地址或子网。
  • -d: 指定目标 IP 地址或子网。
  • -p: 指定协议(如 tcp、udp、icmp)。
  • -j: 指定目标动作(如 ACCEPT、DROP、REJECT)。
  • -i: 指定数据包进入的网络接口。
  • -o: 指定数据包离开的网络接口。
  • --sport: 指定源端口。
  • --dport: 指定目标端口。
  • -m: 指定扩展模块(如 state、limit、mac 等)。

主要文件:

  • /etc/sysconfig/iptables: 在某些 Linux 发行版中,这是 iptables 规则的保存文件。
  • /etc/iptables/rules.v4: 在某些发行版中,用于保存 IPv4 规则的文件。
  • /etc/iptables/rules.v6: 用于保存 IPv6 规则的文件。
  • /proc/net/ip_tables_names: 包含当前系统中所有 IP 表的列表。

ipv6

在路由器的接口

[g 0/0/0]ipv6 enable // 先启用ipv6
ipv6 add xx::xx 64 //类比ipv4

ipv6路由:osp v3

[r1] ospfv3 1
[r1-ospfv3-1]router-id 1.1.1.1 //v3需要配置id 类比ipv4

ospf v2 和 v3的区别:

1、v3 只要两边在同一个链路就能都成为邻居,不是同一个网段都可以。
2、通过instance id实现邻居建立

osfp v3 的LSA

8型LSA:每个设备都会对每个链路产生一个LINK-LSA,目的是向该链路上的其他路由器通告本接口的链路本地地址;同时通告本接口的ipv6前缀
对于IPv6,链路本地地址的前缀是FE80::/10,通常看到的链路本地地址形如FE80::XXXX

9型LSA 传递路由信息:只在所属区域传播,依赖拓扑信息

网络

运维:
运维时将所有的网络设备使用同一个网段进行管理,比如192.168.254.x,这些ip是交换机的唯一IP地址,也就是桥ip。并且使用特殊的vlan号进行管理。

当某网络中。192.168.x.250-254作为X网段的网关,此时是主备,是两台交换机上的两个接口的物理地址,如果使用VRRP+MSTP则可能还有一个虚拟的网关地址如192.168.x.1

新的防火墙:替代了出口路由器 华为USG统一安全网关 也就是下一代防火墙

目前路由器交换机本质是转发,下一代防火墙的本质是控制。

防火墙的区域:防火墙需要划分安全区域,比如将某几个口划分到受信任域,其他为不受信或者DMZ,每一个接口只能被划分到一个安全域中。
其中,防火墙还有一个local区域,防火墙本身对外发送的报文视为从local区域发出,需要由防火墙接收而不是转发的报文,也在loical区域接收。

防火墙的模式:
透明桥:
路由:

透明桥:旧网络要加入防火墙,但是不便更改。此时使用透明桥模式,相当于一个交换机(非三层)

路由模式:相当于出口路由器(也就是将防火墙替换掉出口路由器)

混合模式:某些接口透明桥。某些接口路由。

注意到upnp会自动映射端口,出于安全考虑应该关闭upnp。upnp不是必要的。

VPN:IPsec、SSL MPLS-vpn、L2TP、PPTP、GRE vpn
专线:DDN、PTN、SDH

高级vlan:

hybrid:交换机的接口类型
使用场景:pc、服务器、交换机、路由器、语音终端、AP
必须使用hybrid的场景:一台交换机的接口属于不同vlan,且该接口需要传输多个非标签报文。比如 语音终端、AP

查看交换机接口类型:
[sw1]dis port vlan actice
当把hybrid当成access(不打标签)
int g 0/0/0
port hybrid pvid vlan 10 //将该接口划分成vlan10中
port hybrid untagged vlan 10 //不打标签
undo port hybrid vlan 1 //因为vlan1 是默认的pvid,也就是默认所属vlan,若不想允许vlan1 则可以去除。

把hybrid当trunk:
int g 0/0/1
port hybrid tagged vlan 10 //打上vlan10的标签

由于192.168.1.2和192.168.1.3属于不同vlan,他们不能互访,被隔离。

int g 0/0/1
port hybrid pvid vlan 30
port hybrid untagged vlan 10 20 30

int g 0/0/2
port hybrid pvid vlan 10
port hybrid untagged vlan 10 30

int g 0/0/1
port hybrid pvid vlan 20
port hybrid untagged vlan 20 30

基于MAC的vlan:
将所有接口的mac-vlan 都enable
[sw1-vlan10]mac-vlan mac-address xxxx-xxxx-xxxx

高级vlan

允许多个vlan用户在同一个网段。

在SW2创建聚合vlan30 该vlan是逻辑vlan,trunk不允许通过。
1、创建并进入vlan30 : int vlan 30
2 、给地址:ip add 192.168.1.1 24 //该地址是vlan10 vlan20的ip的网关地址
3、valn 30 聚合vlan 也叫父vlan
aggregate-vlan
access-vlan 10 20 //10和20为子vlan

vlan mapping :vlan转换
实现二层无缝连接,类似nat映射(但在企业网中使用并不多)

如上图,最关键的配置在SW2进行。
int g 0/0/1
qinq vlan-translation enable //关键命令,启动qinq vlan转换功能
pott link-type trunk
port trunk allow-pass vlan 100 //100相当于公网地址,如上图sw2会将30 31 转换为100 ,回包也会从100 转换成 30 31
port vlan-mapping vlan 30 to 39 map-vlan 100 //这里配置30 到 39 进行转换
注意:vlan-mapping映射只有报文携带tagged标签的时候才可以转换。也就是trunk或者hybrid(tag)才生效,access不行。

Qinq:标签嵌套标签

相同vlan端口隔离:二层隔离(ACL是在三层的隔离手法)二层交换机无法使用访问控制列表acl来进行隔离。
堡垒机:安全审计设备,和交换机差不多。

在sw上配置隔离组,在同一个隔离组中不能互访(接口)

[sw1] interface g 0/0/1
port-isolate enable group 1

interface g 0/0/4
port-isolate enable group 1 //此时,接口1 和 4 由于处于同一个隔离组中,它们之间不能互访。

mux vlan:二层vlan隔离技术

满足:同一个二层广播域,某些能互通,某些要隔离

核心操作:在sw将vlan 10 设置成主vlan,2成隔离型,3为互通型

separate 隔离型
group 互通型
其他接口 仍然按照配置access口配置,最后再加上port mux-vlan enable

端口安全(二层功能,限制的是mac) :目的是防止私接交换机
在交换机某个接口下 port-securiyt enable 就会开启接口安全,此时默认情况下,交换机的MAC地址表只能学习一个地址。
另外可有手动配置mac绑定:port-security mac-address sticky xxxx-xxxx-xxxx-xxxx vlan x
port-security 的保护动作有down接口(高危操作,接口会down,只能undo shutdown

二层ACL:也可以根据MAC进行控制

镜像流量:

在交换机(核心或者汇聚或者接入交换机)配置一个观察口,接收镜像流量。

[sw]observe-port 1 interface g 0/0/3 //如上图,将3口设置成观察接口
int g 0/0/2
port-mirroring to observe-port 1 both //将2 口的报文进出的流量镜像一份发给观察组1 (也就是3口)

如上图:镜像流量有三种 进出、进、出

检查配置:dis port-mirroring
dis observe-port

如上图:若是监控设备不在交换机或者路由器旁边,可以进行远程镜像。
在R1 observe-server destination-ip 5.5.5.5 source-ip 3.3.3.1
int g 0/0/0
mirror to observe-server both //将3.3.3.1的进出流量镜像后发送给5.5.5.5

路由器的端口镜像:

注意:

1、一个接口只能是镜像或者观察,不能同时配置成两个

2、主接口做镜像,子接口也会被镜像

3、多个接口的镜像可以到一个观察口,对于交换机也可以将一个接口的流量镜像到多个观察口。


基于流的镜像:
命中acl的流量镜像到观察组

首先写一个acl xx

然后:int g 0/0/x
traffic-mirror inbound acl xx to observe-port 1 //将命中acl 3000 的数据流从观察口发出

MQC:

WLAN:

mac认证:手动配置mac允许如打印机、网络摄像头无法输入账号密码的设备接入无线网络。