1个不稳定版本
0.1.0 | 2020年8月26日 |
---|
#5 in #host-name
11KB
165 行
nss-wiregarden
nss-wiregarden是一个libnss名称服务切换主机插件,通过设备和网络名称解析wiregarden对等节点。
构建
cargo build --release
安装
Ubuntu的软件包安装即将推出。同时,您可以从本地构建中安装。
运行./install.bash
以在当前机器上安装,或者./install-lxd.bash <container>
将安装到当前机器上的LXD容器中(适用于测试)。这将安装共享库,以便libnss可以加载它。
nss-wiregarden需要安装libsqlite3。
将wiregarden
服务添加到/etc/nsswitch.conf
。例如
hosts:files dns wiregarden
操作
给定一个wiregarden接口已启动,例如
root@m3:~# wiregarden status
Interface Network Address Port Peers Status
wgn001 civil-manatee 10.160.91.3/24 42501 3 interface_up
Network Peer Address Endpoint Key
civil-manatee m3 (this host) 10.160.91.3/24 3loqTaoObb1cwHMCeiVGiUVLd5S2g8/6HAQVmGQEc1g=
civil-manatee m4 10.160.91.4/24 KGhcMQZ/Z3NFHRuotV6JX66a/wHVr92aznKBLLAFJXw=
civil-manatee m2 10.160.91.2/24 7kWe4PNriOs3InKODoP4fTWWmCZlckhtPHX259JkNz8=
civil-manatee m1 10.160.91.1/24 10.149.84.66:51281 sDLG2DwVmnDQik9YuZwqS007+AWfMr0fxPrL6JtlkXc=
使用nss-wiregarden,您可以通过<host>.<network>
解析对等节点
root@m3:~# ping m1.civil-manatee
PING m1.civil-manatee (10.160.91.1) 56(84) bytes of data.
64 bytes from m1.civil-manatee (10.160.91.1): icmp_seq=1 ttl=64 time=0.949 ms
安全
NSS插件以只读、受限模式读取/var/lib/wiregarden/db
,并查询wiregarden本地数据库以获取接口和对等节点信息。默认情况下,此数据库对所有用户可读,因为它只包含接口信息和状态,不包含机密信息。
因为插件代码可能从任何使用libc解析主机名的进程执行,所以它必须能够抵御本地权限提升类型的安全攻击。选择Rust是因为它出色的运行时安全性特征,但作者还没有彻底审查crate依赖项。
通过wiregarden.io报告安全漏洞。
故障排除
如果插件由于任何原因无法读取数据库或遇到意外错误,它将无法解析名称,但其他主机名称解析器应该可以继续使用正确配置的NSS。要调试wiregarden名称无法解析的原因,请安装库的调试版本,错误信息将打印到stderr。
版权所有 2020 Cmars Technologies LLC。
依赖项
~22MB
~418K SLoC