目标:

  1. 启动be7000的ssh并软固化(不考虑升级问题)
  2. 精细化配置ipv6防火墙,对内网特定mac的ipv6访问

针对目标1实际测试使用xmir-patcher可以解锁它的ssh.https://github.com/openwrt-xiaomi/xmir-patcher

  • 运行run.sh
  • 先使用1修改目标ip命令
  • 然后使用2命令解开ssh
  • 然后使用6命令
  • 完成后就能够ssh连接小米
  • 账号密码均为root:root,立即修改密码

软固化

Shell
mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
./auto_ssh.sh install

此部分参考https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8283638&extra=page%3D1&page=1

精细化配置ipv6防火墙,对内网特定mac的ipv6访问

默认使用cui来进行防火墙配置直接编辑文件/etc/config/firewall

以外网特定ping内网ip为例在文件中追加

纯文本
config rule
option name 'Allow_WAN_to_Specific_MAC_ICMPv6_Ping'
option src 'wan'
option dest 'lan'
option proto 'ipv6-icmp'
option icmp_type 'echo-request'
option target 'ACCEPT'
option family 'ipv6'
option mac 'xx:xx:xx:xx:xx:xx'
Shell
/etc/init.d/firewall restart

实际测试外网ping没有问题

进行特定端口及mac地址的开放,使用Ip6tables方案

  • 网上及ai生成的方法均有问题常见问题如下
  • -m mac方案没有--mac-destination选项,而ai幻觉有
  • 使用-m u32方案,筛选数据包的字节,但给出方案都不生效,但抓包进行数据分析估计可以解决
  • 使用-d方案,用具体mac转换为ip地址后64bit,大概率是固定的,但这里给出方案有问题-d::xxxx:xxxx:xxxx:xxxx/128,这里我想匹配后64,但这里的掩码数据含义为从左侧算有多少个1所以匹配有问题,参考官方文件可以改为-d::xxxx:xxxx:xxxx:xxxx/::FFFF:FFFF:FFFF:FFFF可以满足要求
纯文本
ip6tables -I FORWARD 8 \
-i pppoe-wan -o br-lan \
-p tcp --dport 433 \
-m conntrack --ctstate NEW \
-d ::xxxx:xxxx:xxxx:xxxx/0000:0000:0000:0000:ffff:ffff:ffff:ffff \
-j ACCEPT

查看规则是否生效

纯文本
ip6tables -L FORWARD -n -v --line-numbers

持久化

持久化遇到了比较多的问题,路由器下很多文件无法写入。

参考auto_ssh.sh脚本的方式,在data下新建ip6tables文件夹,建立firewall_tv.sh文件

Shell
#!/bin/sh
install() {
# Add script to system autostart docker
uci set firewall.startup_script=include
uci set firewall.startup_script.type='script'
uci set firewall.startup_script.path="/data/ip6tables/firewall_tv.sh"
uci set firewall.startup_script.enabled='1'
uci commit firewall
echo -e "\033[32m startup_script complete. \033[0m"
}
uninstall() {
# Remove scripts from system autostart
uci delete firewall.firewall_tv.sh
uci commit firewall
echo -e "\033[33m startup_script has been removed. \033[0m"
}
startup_script() {
# Put your custom script here.
echo "Starting custom scripts..."
sleep 20
ip6tables -I FORWARD 8 -i pppoe-wan -o br-lan -p tcp --dport 433 -m conntrack --ctstate NEW -d ::xxxx:xxxx:xxxx:xxxx/0000:0000:0000:0000:ffff:ffff:ffff:ffff -j ACCEPT 2>/dev/null
}
main() {
[ -z "$1" ] && startup_script && return
case "$1" in
install)
install
;;
uninstall)
uninstall
;;
*)
echo -e "\033[31m Unknown parameter: $1 \033[0m"
return 1
;;
esac
}
main "$@"
Shell
chmod +x firewall_tv.sh
./firewall_tv.sh install

实际测试可以完成功能

目前打开了设备防火墙实际仍然禁止访问,但可以穿过路由器

后续考虑使用api将ipv6与阿里域名进行绑定,单开帖说明