首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WireGuard用户认证

WireGuard用户认证
EN

Server Fault用户
提问于 2019-01-13 08:00:40
回答 2查看 34.7K关注 0票数 9

我读过有线护卫规范,看起来WireGuard本机不支持任何类型的用户身份验证(例如LDAP或类似的东西)。任何拥有服务器公钥并且其IP地址在服务器配置中被白化的客户端都可以连接。

有人知道提供用户身份验证的WireGuard扩展或实现吗?

EN

回答 2

Server Fault用户

发布于 2020-03-04 23:12:32

正如@Kamil所说,WireGuard的概念与其他VPN解决方案略有不同。不久之前,我也开始使用它,如果您想实现一些使用现有身份验证的东西,您可以像我在一些项目中看到的那样获得它:

  • 使用您喜欢的方法(加上2FA )验证您的用户,无论您想要什么。
  • 用户通过身份验证后,客户端生成一个临时密钥对。
  • 通过安全连接,客户端向服务器发送公钥,获取它们的配置(端点、服务器公钥等)
  • 客户端连接到VPN。
  • 当用户注销或会话到期时,服务器可以从WireGuard端点中删除对等方。

当然,所有这些都可以在客户端和服务器端实现自动化。

票数 3
EN

Server Fault用户

发布于 2021-06-02 14:39:07

为了扩展@Securez的建议,把SSH和Wireguard这样的东西结合起来怎么样?这里的想法是,SSH提供所需的“身份验证”服务,而Wireguard在对等方成功身份验证后提供安全隧道。

例如(在linux机器上),

  • 配置SSH以启用多个身份验证方法,例如AuthenticationMethods "publickey,keyboard-interactive"
  • 接下来,使用类似于oathtool的方法为SSH实现公钥+密码+ TOTP身份验证的组合(这也可以包括基于LDAP的身份验证或SSH支持的几种身份验证方法的任何组合,但肯定包括基于密钥的身份验证)
  • 然后将/etc/ssh/sshrc配置为调用一个脚本,该脚本基于用户登录到SSH,向Wireguard添加了一个对等端(还可以为防火墙上的用户IP地址打开WG端口,例如iptables)。

然后,用户按以下方式进行连接(可以使用简单的脚本实现自动化):

  1. 到远程对等点的SSH
  2. 成功身份验证后,断开SSH并激活Wireguard连接

可以调度cron作业来检查自每个活动对等点的最新握手以来经过的时间,如果时间大于指定的间隔,例如180秒(意味着对等点不再连接),启动对等点(如果适用,关闭防火墙端口)。

如果您不需要连接的用户能够将SSH放到远程对等端,则可以将用户shell设置为/sbin/nologin。此外,为了使在/etc/ssh/sshrc中调用的脚本能够向Wireguard添加对等程序,脚本将需要sudo访问。这种风险可以通过类似于/etc/sudoers中的以下内容加以限制:

%wireguard-users ALL=NOPASSWD: /path/to/add-wg-peer

其中,wireguard-users是将所有Wireguard用户添加到的组。理想情况下,add-wg-peer脚本不应接受任何参数,以限制误用。

这种设置的好处:

  • 使用经过良好测试、建立的、现成的部件
  • 公钥+密码+ TOTP组合满足a
  • 如果实现了防火墙功能,则通过限制Wireguard对授权IP地址的访问(并可能解决标识为Wireguard的已知限制的“漫游密探”问题),进一步减少了攻击面。

下边:

  • 你刚刚把SSH暴露在公共互联网上:o
  • 这里没有涵盖的其他一切

思想,观察,批评?我真的很想知道像这样的设置会导致什么潜在的陷阱。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/948816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档