• 在QNAP NAS上创建用做科学上网旁路由的openwrt虚拟机

    ·

    发布于

    修改于

    创建虚拟机

    需要用到的东西

    1. openwrt官方img文件,切记下载x64版本,有牛逼人下载x86的导致虚拟机无法识别img。
    2. qemu-img

    QNAP的虚拟化工作站无法直接使用openwrt官网下载的img格式,需要用qemu-img工具进行转换。命令如下:

    qemu-img convert -p -f raw -O qcow2 openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img openwrt.img
    1. 先用Virtualization Station创建一个无硬盘的虚拟机。
    2. 把qemu-img转换后的镜像openwrt.img复制到虚拟机目录。
    3. 在Virtualization Station中将openwrt.img添加进虚拟机,并设置好容量,比如10GB。如果无法在QNAP虚拟机界面修改磁盘空间,可以在添加img文件之前使用命令qemu-img resize openwrt.img 8G来调整img的空间大小(不是img文件的实际大小)。

    给文件系统扩容

    默认的文件系统大概只有104MB空间,这会导致很多应用无法正常使用。所以需要给文件系统扩容,磁盘容量已经在上一步虚拟机相关设置里完成扩容了,现在只需要在Free Space上创建文件系统。

    先安装必要的工具

    opkg update
    #分区前可能需要使用parted -l命令修复一下
    #如果不安装block-mount,openwrt是没有挂载选项的
    opkg install fdisk cfdisk parted block-mount

    使用fdisk和cfdisk将剩余空间分配并格式化为EXT4格式。

    在openwrt网页端的System菜单下选择挂载点,并把新创建的文件系统挂载为“/”。而后openwrt会给出一系列命令,如下所示:

    mkdir -p /tmp/introot
    mkdir -p /tmp/extroot
    mount --bind / /tmp/introot
    mount /dev/vda3 /tmp/extroot  #将这行中的/dev/vda3改为实际的设备路径
    tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
    umount /tmp/introot
    umount /tmp/extroot

    执行上述命令并重新启动openwrt即可完成扩容。

    关于网卡

    X710的驱动是i40e,默认就有,SR-IOV的网卡可以直接识别到。

    CX4网卡驱动为mlx5,默认未安装,SR-IOV的CX4网卡无法直接使用。这时候需要先用虚拟交换机的网卡让openwrt可以联网,然后执行下面的命令安装CX4网卡驱动:

    opkg install kmod-mlx5-core

    至此就可以使用CX4的SR-IOV了,也可以把虚拟交换机的网卡移除掉。

    修改lan口IP

    # 将 LAN 接口的协议设置为静态
    uci set network.lan.proto='static'
    # 设置新的 IP 地址
    uci set network.lan.ipaddr='192.168.2.1'
    # 设置子网掩码 (可选,若不设置则可能使用默认值)
    uci set network.lan.netmask='255.255.255.0'
    # 设置网关 (对于 LAN 接口通常不需要)
    # uci set network.lan.gateway='192.168.2.254'
    # 设置 DNS 服务器 (可选)
    # uci set network.lan.dns='8.8.8.8 8.8.4.4'
    
    # 提交更改
    uci commit network
    
    # 重启网络服务以应用更改
    /etc/init.d/network restart

    关于旁路由

    只需要一个lan口即可,设置好IP,网关设置为出口路由IP,关闭DHCP和IPv6。千万别忘了修改/etc/resolv.conf中的DNS地址。

    科学上网

    安装openclash,过程非常简单,如果因为dnsmasq冲突导致openclash安装失败,可以删除系统自带的dnsmasq再安装openclash。

    openclash的配置很简单,配置订阅即可。

    客户端使用这个旁路由上网时只需要将网关和DNS都设置为旁路由lan口IP地址即可。


  • BitLocker突破情况

    ·

    发布于

    修改于

    目前流行的BitLocker突破方式主要有两个:DMA解锁和TPM芯片通信嗅探。

    DMA解锁

    DMA解锁情况表


    VT-d内存完整性BitLocker(TPM)BitLocker(PIN)DMA解锁
    设置1(Win11笔记本电脑默认)启用启用启用(登录微软账号后)未启用不可解锁
    设置2未启用任意启用未启用可直接进行DMA解锁
    设置3启用未启用启用未启用可关闭VT-d后进行DMA解锁
    设置4任意任意任意启用不可解锁

    简要总结

    1. 只要启用了BitLocker的PIN码解锁,无论其他选项是何配置,都无法使用DMA解锁。
    1. 同时启用BitLocker和“内存完整性”保护,无法进行DMA攻击,原因如下:
    • “内存完整性”可以防护DMA攻击,需要通过禁用BIOS中的“VT-d”功能使“内存完整性”失效。
    • BitLocker加密会对BIOS中涉及安全的设置进行摘要(如“VT-d”、“Secure Boot”等),如果这些设置有变化,启动时则不进行TPM自动解锁,而是让用户输入恢复密钥。

    针对较新的笔记本电脑,出厂配置下只要用户登陆了微软账号,BitLocker就会在不弹出任何通知的情况下启用,此时就是同时启用BitLocker和“内存完整性”的情况。

    TPM芯片通信嗅探

    TPM的两种形态

    TPM芯片分为两种:dTPM(Discrete TPM)和fTPM(Firmware TPM)。

    dTPM

    dTPM就是独立TPM芯片,表现为一个焊在主板上的芯片或一个可在主板上插拔的芯片。

    fTPM

    fTPM是固件型TPM的意思,一般位于BIOS芯片中,并且在TEE(可信执行环境)中执行,但需要CPU支持才可启用。Intel从第八代酷睿(发布于2018年1月)开始支持fTPM。

    嗅探方法

    该方法仅针对dTPM有效,因为dTPM芯片一般位于SPI或LPC线路上,计算机开机时,BitLocker解密密钥会在该线路上明文传输。

    通过信号侦测仪一类的设备嗅探TPM芯片与CPU的通信即可嗅探到BitLocker密钥。

    应用前景

    这是一项很老的技术,至少在六年前就有讲述该技术的文章被发布到互联网上。因较老的CPU和主板不支持fTPM,所以在一些较老的主机上可以看到dTPM。

    当下的笔记本电脑基本几乎都是使用fTPM。因为现代CPU都支持fTPM,计算机供应商使用fTPM可以避免额外购买dTPM的费用和相关PCB电路设计的各种费用,所以在未来,包括笔记本电脑在内的PC整机产品不太可能使用dTPM。


  • 使用fio测试ZFS文件系统读写速度

    ·

    发布于

    修改于

    cd /mnt/data/dataset
    mkdir speedtest
    cd speedtest
    //下面是顺序写测试
    fio --name=seqwrite --rw=write --direct=1 --ioengine=psync --bs=128k --iodepth=32 --numjobs=10 --size=10G --group_reporting
    //下面是顺序读测试
    fio --name=seqread --rw=read --direct=1 --ioengine=psync --bs=128k --iodepth=32 --numjobs=10 --size=10G --group_reporting

    我是8块16TB组RAIDz2,加上2块2TB的NVME固态的镜像日志。测试结果如下:

    写入

    读取


  • 关于华为OEM版X710-DA2的一些问题

    ·

    发布于

    修改于

    我将手里的XP330刷成了最新的Intel官方固件,会出现一个口无法使用的问题。然后我又刷回了华为的SP330固件(当时我以为我手里的卡是SP330),问题依旧。然后我仔细看了一下我的卡不是SP330,而是XP330,遂刷入XP330的固件,问题解决,两个口都可使用。固件可以在超聚变官网下载。

    出现问题的原因想必是华为在固件上做了一些判断。

    另外,SP330和XP330有什么区别我并不知道。


  • Windows创建类RAID6分层存储

    ·

    发布于

    修改于

    首先通过界面创建一个存储池,我这里名字是MainPool。然后把HDD和SSD都放进这个池。

    查看存储池信息

    
    Get-StoragePool MainPool | Get-PhysicalDisk | Sort Size | FT -AutoSize

    创建SSD快速层,使用的是Mirror

    
    New-StorageTier -StoragePoolFriendlyName MainPool -FriendlyName SSDTier -MediaType SSD -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1 -FaultDomainAwareness PhysicalDisk
    
    

    创建HDD大容量层,使用的是允许2块盘故障的Parity

    New-StorageTier -StoragePoolFriendlyName MainPool -FriendlyName HDDTier -MediaType HDD -ResiliencySettingName Parity -PhysicalDiskRedundancy 2 -FaultDomainAwareness PhysicalDisk

    查看Tier信息

    Get-StorageTier

    创建分层结构的虚拟磁盘,同时在SSD上设置256GB的写缓存区

    $SSD = Get-StorageTier -FriendlyName SSDTier
    $HDD = Get-StorageTier -FriendlyName HDDTier
    $SSDSIZE = (Get-StorageTierSupportedSize -InputObject $SSD).TierSizeMax*0.95 -256GB
    $HDDSIZE = (Get-StorageTierSupportedSize -InputObject $HDD).TierSizeMax*0.95
    New-VirtualDisk -StoragePoolFriendlyName MainPool -FriendlyName "MainVHD" -StorageTiers @($SSD,$HDD) -StorageTierSizes @($SSDSIZE,$HDDSIZE) -WriteCacheSize 256GB


  • LSI 9207-8i刷P20固件

    ·

    发布于

    修改于

    主板是超微的H13SAE-MF(B650芯片组)。

    需要的软件和固件:

    文件名包含内容来源
    UEFI_BSD_P20.zip签名版的UEFI BIOS博通官网直接下载,无需登录
    9207_8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip固件和传统BIOS同上
    Installer_P20_for_UEFI.zipEFI环境下的刷新工具:sas2flash.efi同上
    Shell_Full.efi完整的X64 EFI Shellhttps://github.com/tianocore/edk2-archive/blob/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi

    开机按F11,从引导菜单进入EFI Shell。

    这个EFI Shell执行sas3flash.efi是没问题的,但是无法执行sas2flash.efi,所以需要Shell_Full.efi。进入方法很简单,在主板的EFI Shell中执行Shell_Full.efi就可以进入完整的EFI Shell,在这里就可以执行sas2flash.efi了。

    -c 0参数为指定HBA卡中的第一张卡,如果只插了一张HBA卡则不需要指定这个参数。

    查看信息

    sas2flash.efi -list

    有必要的话可以把信息截图备份一下。

    备份固件

    sas2flash.efi -ufirmware firmware.old

    备份bios

    sas2flash.efi -ubios bios.old

    清除固件

    sas2flash.efi -o -e 6

    刷入固件

    sas2flash -f 9207-8.bin

    刷入传统BIOS

    sas2flash -b mptsas2.rom

    刷入带签名的UEFI BIOS(支持安全启动)

    sas2flash -b x64sas2.rom


  • 关于BitLocker启用时间点

    ·

    发布于

    修改于

    样本是一台新购买的Thinkpad笔记本电脑,CPU为Ultra一代,预装有Windows 11操作系统。

    以U盘引导盘中Windows PE或Win To Go,在其中查看计算机内置硬盘的系统盘的BitLocker加密状态,结果如下表。

    工具\状态未初始化系统设置完成系统初始化设置但未登录微软账号完成系统初始化设置且登录微软账号
    Windows PE加密盘未锁定加密盘未锁定加密盘已锁定
    Win To Go加密盘未锁定加密盘未锁定加密盘已锁定

    事实证明,WTG和PE是一样的。并不存在“如果使用基于TPM的BitLocker系统盘,Win To Go能查看解密后的盘”。


  • QNAP虚拟机安装OpenWRT

    ·

    发布于

    修改于

    先去OpenWRT官网下载X86-64平台的img镜像,但这个镜像QNAP虚拟机软件没法直接用,需要用qemu-img转换一下。

    qemu-img convert -p -f raw -O qcow2 openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img openwrt.img

    而后创建新的虚拟机并使用该镜像作为虚拟机硬盘就可以了。

    将网卡驱动ipk包放入U盘

    mount -t vfat /dev/sda1 /mnt/upan
    opkg install XXX.ipk


最新