通过 wireguard 使用 dropbear。
在内核启动期间、加密分区挂载之前,启用 wireguard 网络。 与 dropbear 结合使用,可以实现完全加密的远程启动,而无需在远程网络上存储密钥材料或暴露端口。只需存在能够连接到 wireguard 服务器端点的互联网连接即可。
可以使用常规的 dropbear 连接和 DNS 解析来查找 wireguard 端点。 这基本上可以创建完全加密的远程管理节点,并能够阻止所有本地访问。
具备 Linux 的工作知识。了解网络和 Wireguard。
支持通过 make 进行安装。 下载、解压并配置内容,然后在目标机器上安装。
获取最新版本并解压。
RELEASE=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/r-pufky/wireguard-initramfs/releases/latest | tr "/" "\n" | tail -n 1)
wget https://github.com/r-pufky/wireguard-initramfs/archive/refs/tags/"${RELEASE}".tar.gz
tar xvf "${RELEASE}".tar.gz
cd wireguard-initramfs-"${RELEASE}"
configs/initramfs 文件包含基于您可用的 wireguard 连接的变量。
更多信息请参阅 wg set 手册页。
make install
⚠️
大多数安装目前不会加密 /boot;因此客户端私钥应被视为 不受信任/已泄露。强烈建议使用带有适当端口阻断的独立点对点 wireguard 网络进行远程解锁。
使用以下任一方法重建 initramfs:
make build_initramfs # Debian
make build_initramfs_rpi # Raspberry Pi
update-initramfs -u -k all && update-grub # Manual build
reboot
任何静态错误都会中止构建。错误配置不会被捕获。 请确保在仍能物理访问机器时进行测试。
wireguard-initramfs 可与 dropbear 结合使用,实现远程系统解锁,而无需控制远程网络,也无需知道该系统的公共 IP。它还会在尝试 SSH 连接之前创建加密的无信任隧道。
先将 dropbear 设置为使用 所有 网络接口,以确保远程解锁首先通过 wireguard 工作。然后在它正常工作时,再将其限制到 wireguard 网络:
/etc/dropbear/initramfs/config
DROPBEAR_OPTIONS='... -p 172.31.255.10:22 ...'
如果您使用的是旧版本(例如日期为 2023-10-21 的版本),可以通过运行以下命令来更新当前项目:
sudo bash scripts/migrate_project_structure.sh
make install
make build_initramfs
适配器配置位于 /etc/wireguard/initramfs.conf,initramfs 配置位于 /etc/wireguard/initramfs。
这应使您的项目结构和内容保持不变;但是,由于现在支持完整的 wireguard 适配器配置,因此需要手动验证。
欢迎所有贡献,请提交拉取请求或报告 bug!
熟悉 Debian 打包?为它创建一个 .deb 包吧!