admin 发布的文章

0x00 基础Acess 和 Trunk概念

Access端口用于连接网络设备,如计算机、IP电话、服务器等,以与交换机进行通讯。Access端口收到帧时,如果是没有标签的,那么就会打上与该端口相关联的PVID(Port VLAN ID)标签;如果是有标签的,那么就会将其与该端口相关联的PVID 进行比较,如果相同,则视为合法帧,进入到对应的VLAN中并进行处理,否则就会被丢弃。在发出帧时,Access端口会将其从接收到的帧中去除标签,并发送给主机。

Trunk端口用于跨交换机的数据通信,允许多个VLAN在链路上传输并互相通信。Trunk端口在接收到帧时,如果是一个有标签的帧,那么就不会改变其标签信息;如果是一个没有标签的帧,那么就会为其打上默认的PVID 标签。在发送帧时,Trunk端口会根据帧的标签情况进行处理:如果帧上的VLAN与Trunk端口的PVID标签不同,那么就直接发送该帧;如果帧上的VLAN与Trunk端口的PVID标签相同,那么就会将其标签区域去掉后再进行发送。在Trunk链路上传输的帧只有两种情况:一种是有标签的,另一种是没有标签的,但是这个帧的标签ID一定不是PVID。

双标签跳跃攻击指的是攻击者利用Access端口默认打上PVID 标签的机制以及Trunk端口的处理机制,对VLAN进行攻击。攻击者在默认VLAN的主机中创建一条假的带有两个标签(一个外层标签和一个内层标签)的报文,其中外层标签设置为PVID,内层标签设置为要攻击的VLAN的VID。当Access端口收到此类帧时,由于其与该端口相关联的PVID一致,所以该帧将被视为合法帧而通过验证,进入到默认VLAN并进行处理。在经过路由之后,该帧会到达Trunk端口。由于该帧的外层标签是PVID,因此Trunk端口会去掉该标签。这样,在Trunk链路上传输的帧就是发给另一个 VLAN 的帧了,从而达到攻击的目的。

简单来说,进帧时会查看PVID,包括收到的和发送的帧,出帧时则是看VLAN List来决定是否打上标签来转发。

0x01 Tag以及Untag

在VLAN中,为了实现不同VLAN之间的数据通信,需要对帧进行标记(tagging)。根据对帧进行标记的方式,可以将帧分为Tagged帧和Untagged帧。当一个端口上的帧被发送到另一个端口时,会根据其类型进行处理,下面我们来具体了解一下它们的区别:

Untagged帧:该类型的帧不包含任何标记,被发送到另一个端口时,交换机会根据接收端口的属性,自动加入PVID作为客户 VLAN ID,从而在该VLAN中进行广播,而与其它VLAN隔离。

Tagged帧:该类型的帧包含一个VLAN标记,用于在多个VLAN之间传输。在进行Tagged帧的传输时,交换机要根据接收端口的属性判断是否允许报文进入端口。如果是Access端口,则要验证报文的VLAN ID是否与PVID一致,否则就会将报文丢弃;如果是Trunk/Hybrid端口,则会根据其VLAN List,判断报文是否可通过,不允许的话则将其丢弃。

在报文出方向上,交换机的主要任务就是在转发出端口时,根据出端口属性来决定帧是否需要打标记。具体的处理方法如下:

Access端口:打上PVID标签并发送。

Trunk端口:若报文所在VLAN和PVID相同,则不打标签;否则打上标签并发送。

Hybrid端口:当报文所在VLAN配置tag,且帧头中没有tag时,打上VLAN标签;当报文所在VLAN未配置Tag,则不打标签。

0X02 Access、Hybrid和Trunk三种模式的理解

VLAN中的三种类型端口分别是Access、Hybrid和Trunk。Access端口只能属于一个VLAN,通常用于连接计算机、IP电话等设备的端口。Trunk端口可以允许多个VLAN通过,用于连接不同交换机之间的端口。而Hybrid端口不仅可以允许多个VLAN通过,还可以连接不同交换机和用户计算机之间的端口。

Access端口在收到数据时会将其打上PVID标签,而在发送数据时会将标签去除;Trunk和Hybrid类型的端口在接收数据时,处理方式是一致的,都会保留帧头中的标签信息,而在发送数据时,Trunk端口只有在报文所在VLAN与PVID不同时才会打标签,而Hybrid端口可以根据报文所在VLAN的配置来进行选择是否打标签。

总的来说,要正确理解和使用VLAN,需要对Access和Trunk概念、Tag和Untag等基本概念有清晰的认识,同时对不同类型端口的特点和使用场景有详细的了解。

0X01 将Clash客户端配置为Linux服务

  1. 在/lib/systemd/system/目录下创建Clash服务配置文件
    (注意配置CLASH_URL环境变量为你的订阅地址)
nano /lib/systemd/system/clash.service

[Unit]
Description=A rule based proxy in Go for %i.
After=network.target

[Service]
Type=simple
User=kawa
ExecStart=/home/kawa/.config/clash/start-clash.sh     #clash启动脚本 在这里写自动下载配置的代码
ExecStop=/home/kawa/.config/clash/stop-clash.sh
Environment="HOME=/home/kawa/"
Environment="CLASH_URL=https://xxx.com/123njnvdfnaso"   #这里输入你的订阅地址
Restart=on-abort
#ExecStart=/usr/local/bin/clash/clash -d /usr/local/bin/clash/ -ext-ctl "192.168.88.114:9090"

[Install]
WantedBy=multi-user.target

0X02 制作自动更新配置文件脚本

可以看到上面我们配置了服务启动脚本,我们在启动脚本中加入自动下载订阅配置文件的代码即可.
顺便开启RestfulAPI 进行远程管理

#!/bin/bash
# save this file to ${HOME}/.config/clash/start-clash.sh

# save pid file
echo $$ > ${HOME}/.config/clash/clash.pid
echo $CLASH_URL
diff ${HOME}/.config/clash/config.yaml <(curl -s ${CLASH_URL})
if [ "$?" == 0 ]
then
    /usr/local/bin/clash/clash -d ${HOME}/.config/clash/ -ext-ctl "192.168.88.114:9090"
else
    curl -L -o ${HOME}/.config/clash/config.yaml ${CLASH_URL}
    /usr/local/bin/clash/clash -d ${HOME}/.config/clash/ -ext-ctl "192.168.88.114:9090"
fi

0x00 背景

每隔一段时间,CentOS就会对老版本的系统结束支持,对应的yum源也失效了,CentOS 5.x在2017年3月31日结束支持,导致使用yum安装和更新程序的时候出现404错误。在CentOS官方有一个http://vault.centos.org/包含所有发行的CentOS版本,因此需要将yum源修改为centos-vault的源,这里以CentOS 6.5为例进行讲解。

CentOS6也已经随着2020年11月的结束进入了EOL(Reaches End of Life),官方便在12月2日正式将CentOS6相关的软件源移出了官方源,随之而来逐级镜像也会陆续将其删除。

不过有一些老设备依然需要维持在当前系统,CentOS官方也给这些还不想把CentOS 6扔进垃圾堆的用户保留了各个版本软件源的镜像,只是这个软件源不会再有更新了。

0x01 使用Vault源

更换的Vault源我选了两个,一个是官方的一个是阿里的。官方的源使用的是AWS位于北美的服务器,没有使用CDN,从国内访问是比较差的;另一个是阿里云的,使用了阿里云位于全球各地的CDN节点分发。

CentOS官方:http://vault.centos.org/
阿里云镜像:http://mirrors.aliyun.com/centos-vault/

位于海外的服务器建议直接使用官方的源,如果效果不好或位于国内则可以选择阿里云的镜像试一试。实际上阿里云在Developer的软件源页面并没有把Vault源挂出来,不清楚阿里云对于这个源的支持是一个什么样的态度,是否会在日后移除也是未知的。

1.首先把fastestmirror关了,这个插件默认会寻找离你最近的镜像站去访问

/etc/yum/pluginconf.d/fastestmirror.conf 将enable修改为0

2.下载并替换/etc/yum.repos.d/CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://angel.thisdp.cn:233/download/aliyun-vault-centos.repo

0x02 最后

更换后尝试yum update,能够正常获取软件列表即可。注意这个源文件选择的系统版本是CentOS 6.5,若你想保持在更低版本的系统不进行升级请在源文件中将6.5批量替换为6.x,Vault源对各版本均有保留。

0x00 问题描述

书接上回,由于游戏服务器的新需求,但是游戏内置引擎没有hmac和sha1加密库,并且考虑了性能问题。所以采用远程调用PHP的方式去生成一个七牛的授权凭证(Access Token)。最近刚好在看Go的web框架,挑了一个国内比较成熟的Go语言编写的web框架Beego,所以为了熟悉Beego的框架,我准备将之前的PHP脚本放到Beego里面,作为我第一个Beego程序。

- 阅读剩余部分 -

0x00 什么是趋肤效应

对于硬件工程师来说,每天都要围绕着各种器件的频率范围展开工作,传输线的串联电阻也不例外。对于直流电和低频交流电来说,电流会均匀地分布在导体整个横截面上。但是到高频以后,电流分布变得不均匀,开始向导体表面聚集,这种现象称之为趋肤效应。

- 阅读剩余部分 -