零信任网络之-Zerotier使用涉及的常用命令及子网路由脚本 ｜095
视频地址：https://youtu.be/PNaF6fs2FlM节点加入网络命令、然后面板中勾选验证 zerotier-cli join Network_ID 子网路由 #通过ip add sh或ip a命令查看zerotier接口以及本地物理接口 #把相应的接口名称赋值给变量 PHYSICAL_IFACE=<物理网卡接口名字> ZEROTIER_IFACE=<zerotier接口名字> #开启内核转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p #添加防火墙转发规则 iptables -t nat -A POSTROUTING -o $PHYSICAL_IFACE -j MASQUERADE iptables -A FORWARD -i $PHYSICAL_IFACE -o $ZEROTIER_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $ZEROTIER_IFACE -o $PHYSICAL_IFACE -j ACCEPT iptables-save #保存规则，持久化，重启后仍有效 sudo apt install iptables-persistent -y sudo iptables-save > /etc/iptables/rules.v4子网路由落地机一键脚本 #!/bin/bash # 脚本功能：自动获取物理网卡和 ZeroTier 网卡接口名称，并设置 iptables 规则以支持 NAT 和转发 # 检查是否以 root 权限运行 if [ "$EUID" -ne 0 ]; then echo "此脚本需要以 root 权限运行，请使用 sudo 执行" exit 1 fi # 自动获取物理网卡接口名称 # 假设物理网卡是系统中主要的以太网接口（非 lo 和虚拟接口） PHYSICAL_IFACE=$(ip link show | grep -E '^[0-9]+: (en|eth|wlan)[0-9a-z]*:' | awk '{print $2}' | sed 's/://' | head -n 1) if [ -z "$PHYSICAL_IFACE" ]; then echo "错误：未找到物理网卡接口，请检查系统网络配置" exit 1 fi echo "检测到的物理网卡接口: $PHYSICAL_IFACE" # 自动获取 ZeroTier 网卡接口名称 # ZeroTier 接口通常以 zt 开头 ZEROTIER_IFACE=$(ip link show | grep -E '^[0-9]+: zt[a-z0-9]+:' | awk '{print $2}' | sed 's/://' | head -n 1) if [ -z "$ZEROTIER_IFACE" ]; then echo "错误：未找到 ZeroTier 网卡接口，请确保 ZeroTier 已安装并加入网络" exit 1 fi echo "检测到的 ZeroTier 网卡接口: $ZEROTIER_IFACE" # 启用内核转发 echo "启用内核转发..." sysctl -w net.ipv4.ip_forward=1 # 确保内核转发在重启后依然生效 if ! grep -q "net.ipv4.ip_forward=1" /etc/sysctl.conf; then echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf fi echo "内核转发已启用并设置为开机生效" # 设置 iptables 规则 echo "设置 iptables 规则..." iptables -t nat -A POSTROUTING -o "$PHYSICAL_IFACE" -j MASQUERADE iptables -A FORWARD -i "$PHYSICAL_IFACE" -o "$ZEROTIER_IFACE" -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i "$ZEROTIER_IFACE" -o "$PHYSICAL_IFACE" -j ACCEPT # 保存 iptables 规则 echo "保存 iptables 规则..." iptables-save > /etc/iptables/rules.v4 # 安装 iptables-persistent 以确保规则在重启后依然有效 echo "安装 iptables-persistent..." apt update apt install iptables-persistent -y # 再次保存规则，确保持久化 iptables-save > /etc/iptables/rules.v4 echo "配置完成！" echo "物理网卡接口: $PHYSICAL_IFACE" echo "ZeroTier 网卡接口: $ZEROTIER_IFACE" echo "内核转发已启用" echo "iptables 规则已设置并保存" ACL的简单实用 # 允许指定ip间的icmp协议数据包 accept ipprotocol 1 ipsrc 192.168.191.16/32 or ipsrc 192.168.191.84/32 # ztsrc 7e435d4dae ztdest e636f3f601 ； # 丢弃所有的icmp协议数据包 drop ipprotocol 1 ; # 定义一个tag 名为deptartment id=1000（id必须唯一） # 其中该有两个枚举值，分别为不同部门，sales、admin tag department id 1000 enum 10 sales enum 20 admin ; # 部门枚举值差异为0的主机，之间icmp协议被允许 accept ipprotocol 1 and tdiff dept 0 ;
零信任网络之-Tailscale使用涉及的常用命令 ｜094
视频地址：https://youtu.be/N6Fcwyz9TKs加入节点 节点加入 tailscale up --auth-key=tskey-auth-ky1Lj4iNWo11CNTRL-Ls4d6dQCZrN6djhfnFEsNqXNpu1XcHrc 子网路由 #子网落地节点，进行子网声明 tailscale up --advertise-routes=192.168.0.0/24,192.168.1.0/24 #发起访问节点 tailscale up --accept-routes #开启内核数据转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p 流量出口 #出口节点进行出口节点声明 sudo tailscale up --advertise-exit-node #发起出口访问节点运行出口指定，并且排除局域网 sudo tailscale set --exit-node=<exit-node-ip> --exit-node-allow-lan-access=true #在出口节点上开启内核的数据转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p ACL相关语法 #ACL部分在使用前要把目前允许所有的规则注释掉，使用“//”注释掉 例如 // {"action": "accept","src":["*"],"dst":["*:*"],}, 根据需要进行 {"action": "accept","src":["*"],"dst":["*:*"],}, #这里的src、dst可以是 groups、tag、hosts、IP #如果使用groups、tag 和 hosts则需要在Access controls中提前声明 例如 #tag在使用前要进行所属用户声明 "tagOwners": {"tag:ubuntu-srv": ["dino.milaone@gmail.com"],}, #groups在使用前也要进行所属用户声明 "groups": { "group:example": ["alice@example.com", "bob@example.com"],},