AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1065300
Accepted
Lasse Michael Mølgaard
Lasse Michael Mølgaard
Asked: 2021-06-02 02:06:33 +0800 CST2021-06-02 02:06:33 +0800 CST 2021-06-02 02:06:33 +0800 CST

当来自 Windows VPN 客户端时,半径身份验证在 Strongswan 中不起作用?

  • 772

我的 strongswan VPN 服务器正在针对本地 Freeradius 服务器对 VPN 客户端进行身份验证。

所有用户日志都被代理到远程 radius 服务器,该服务器根据 Samba Active Directory 服务器验证用户。

但是我遇到了一些问题。

以下部分适用于使用 Strongswan VPN 客户端的 Android 用户:

connections
{
  rw-eap {
    local_addrs = SERVER_PUBLIC_IPV4, SERVER_PUBLIC_IPV6

    local {
      auth = pubkey
      certs = example-ecdsa.cer
      id = vpn.example.com
    }
    remote-android {
      auth = eap-radius
      id = *@example.com
    }
  }
}

监视 Freeradius 的输出显示如下内容:

(5) Received Access-Request Id 135 from 192.168.200.1:47851 to 192.168.200.1:1812 length 193
(5)   User-Name = "[email protected]"
(5)   NAS-Port-Type = Virtual
(5)   Service-Type = Framed-User
(5)   NAS-Port = 4
(5)   NAS-Port-Id = "rw-eap"
(5)   NAS-IP-Address = SERVER_PUBLIC_IPV4
(5)   Called-Station-Id = "SERVER_PUBLIC_IPV4[4500]"
(5)   Calling-Station-Id = "CLIENT_IPV4[3988]"

来自 Strongswan 的日志给出:

06[IKE] IKE_SA rw-eap[6] established between SERVER_PUBLIC_IPV4[vpn.example.com]...CLIENT_IPV4[[email protected]]

但是,当尝试从 Windows 客户端连接到服务器时,除非我在 Strongswan 中使用以下配置,否则它几乎是死在水中:

connections
{
  rw-windows {
    local_addrs = SERVER_PUBLIC_IPV4, SERVER_PUBLIC_IPV6

    local {
      auth = pubkey
      certs = example-ecdsa.cer
      id = vpn.example.com
    }

    remote-windows {
      auth = eap-radius

      # Don't use *@example.com here - as windows does not pass username as id, 
      # so this config will not match in that case.
      id = %any
    }
  }
}

使用此配置,我至少可以让 Strongswan 启动 Radius 身份验证,但我没有比这更进一步。

Freeradius 的输出给了我类似的东西:

(21) Received Access-Request Id 151 from 192.168.200.1:47851 to 192.168.200.1:1812 length 306
(21)   User-Name = "\300\250\000d"
(21)   NAS-Port-Type = Virtual
(21)   Service-Type = Framed-User
(21)   NAS-Port = 7
(21)   NAS-Port-Id = "rw-windows"
(21)   NAS-IP-Address = SERVER_PUBLIC_IPV4
(21)   Called-Station-Id = "SERVER_PUBLIC_IPV4[4500]"
(21)   Calling-Station-Id = "CLIENT_PUBLIC_IPV4[3989]"

这导致 Strongswan 日志中出现以下条目:

06[CFG] looking for peer configs matching SERVER_PUBLIC_IPV4[%any]...CLIENT_PUBLIC_IPV4[CLIENT_PRIVATE_IPV4]

这导致了我的几个问题,例如:

  • 第一:为什么Windows VPN客户端不像Strongswan那样将用户名作为ID传递?

  • 第二:为什么将用户名从 Strongswan 传递给 Freeradius "\300\250\000d"?

在 Windows 客户端上进行更多调试:

上面的示例是在使用 MS-CHAP v2 的客户端上使用 EAP-TTLS 时生成的。

当使用 MS-CHAP 时,Freeradius 确实会使用正确的用户名调用,但是当请求被代理时,用户名/密码身份验证失败。

我想 MS-CHAP 登录需要封装或其他什么,因为身份验证请求的编码与 Android 用户连接时的编码不同?

strongswan freeradius2 eap
  • 1 1 个回答
  • 421 Views

1 个回答

  • Voted
  1. Best Answer
    ecdsa
    2021-06-02T07:34:47+08:002021-06-02T07:34:47+08:00

    这两个问题的答案是相同的:Windows 将其 IP 地址作为 IKE 身份发送(然后在 RADIUS 消息中作为用户名属性逐字转发)。

    相反,您应该将 RADIUS 服务器配置为进行 EAP-Identity 交换(如果您eap_start = yes在strongswan.conf中进行了配置),或者让 strongSwan 通过启用eap-identity插件并eap_id = %any在remote...部分中进行配置来完成此操作。

    • 1

相关问题

  • 为什么“ipsec statusall”不显示任何连接?

  • 如何通过 IPv6 IPSec (strongswan) 网关重定向流量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve