0x00 基础Acess 和 Trunk概念

Access 用于设备和交换机通讯
Access端口收到帧时,如果是无标签的,那就打上自己的PVID;如果是有标签的,那就查看是否与自己的PVID相同,相同则放过,不相同则丢弃。(简而言之,就是access端口放行后的帧就是打上自己PVID标签的帧)。
Access端口发送帧时,去掉标签,发送给主机。

Trunk 用于跨Switch 带不同VLAN标签的数据通信
Trunk端口收到帧时,(在允许通过的情况下)如果有标签,那就放行;如果没标签,打上默认的VID(也就是PVID)。
Trunk端口发送帧时,(肯定有标签)如果标签与PVID不一样,那就直接发送(透传),如果标签与PVID一样,那就去掉标签。(简而言之,trunk链路上传送的帧要么有标签,要么没有标签,有标签的一定不是默认VID,没有标签的一定是默认VID)。

双标签跳跃攻击:因为trunk端口发送帧的时候,如果帧的标签是PVID,那就会去掉。所以在默认VLAN的主机可以发送带两个标签的帧,外层标签就是PVID,内层标签就是要攻击主机所在的VLAN的LID。这样当access端口收到帧时,因为和端口的PVID一样,所以放行,经过路由之后到达trunk端口,因为和端口的PVID一样,所以根据机制就会去掉外层标签,这样在trunk链路中传送的就是发给另一个VLAN的帧了,这样就会到达目标主机。

总结一下就是: 进帧看PVID 出帧看Vlan List

0x01 Tag以及Untag

1 报文为untag:允许报文进入该端口,并打上PVID的vlan tag,与端口属性无关。

  2 报文为tag:在这种情况下,需要交换机来判断是否允许该报文进入端口:

  (1)Access端口:PVID和报文中的vlan tag标明的vlan一致,接受并处理报文。否则丢弃;

  (2)Trunk/Hybrid端口:如果端口允许tag中标明的vlan通过,则接收并处理报文,否则丢弃

  报文出方向:  

  在出方向上,交换机已经完成对报文的转发,其根本任务就是在转发出端口时,是否携带tag转发出去,根据出端口属性,细分如下情况:

  (1)Access端口:将标签剥掉,不带tag转发。

  (2)Trunk端口:报文所在vlan和PVID相同,则报文不带tag;否则带tag

  (3)Hybrid端口:报文所在VLAN配置为tag,则报文带tag,否则不带tag

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

  以太网端口的三种链路类型:Access、Hybrid和Trunk:
  Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
  Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
  Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
  Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

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 什么是趋肤效应

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

- 阅读剩余部分 -