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
    • 最新
    • 标签
主页 / computer / 问题 / 1731919
Accepted
apohl
apohl
Asked: 2022-07-16 12:32:31 +0800 CST2022-07-16 12:32:31 +0800 CST 2022-07-16 12:32:31 +0800 CST

如何使用 FreeRadius 配置 strongSwan eap-radius 以进行 EAP-MSCHAPv2 身份验证?

  • 772

我正在尝试使用 RADIUS 身份验证配置 strongSwan IPsec VPN。使用 OpenLDAP 对 FreeRadius 进行用户名/密码的实际 EAP-MSCHAPv2 身份验证是成功的,但随后我遇到以下错误消息:

Jul 15 21:31:04 odroidc4 charon-systemd[814594]: authentication of '100.80.129.171' with EAP successful
Jul 15 21:31:04 odroidc4 charon-systemd[814594]: constraint check failed: peer not authenticated by CA 'C=DE, O=ahpohl, CN=ahpohl Root CA'
Jul 15 21:31:04 odroidc4 charon-systemd[814594]: selected peer config 'eap-radius' unacceptable: non-matching authentication done
Jul 15 21:31:04 odroidc4 charon-systemd[814594]: no alternative config found

搜索约束检查失败消息并没有给出任何结论性的结果。我尝试了 Windows 10 Pro 和 iPhone iOS 15.5 客户端,两者都因相同的约束检查而失败。

如何使支票通过或禁用支票?谁是“对等体”、客户端或 RADIUS 服务器?

我使用以下内容swantctl.conf:

connections {
  eap-radius {
    pools = ipv4, ipv6
    send_cert = always
    local {
      auth = pubkey
      certs = vpnCert.pem
      id = vpn.ahpohl.com
    }
    remote {
      auth = eap-radius
      cacerts = ahpohlCert.pem
      eap_id = %any
    }
    children {
      eap-radius {
        local_ts = 0.0.0.0/0, ::/0
        esp_proposals = aes256-sha256-sha1-modp2048
      }
      version = 2
      proposals = aes256-sha256-modp2048
    }
  }
}

pools {
  ipv4 {
    addrs = 10.10.1.64/26
    dns = 192.168.178.1
  }
  ipv6 {
    addrs = 2a02:168:4407:1::/122
    dns = fd00::ca0e:14ff:fe0c:e6a5
  }
}

CA 和服务器证书是使用 strongSwanpki工具创建的:

# create CA
pki --gen --type rsa --size 3072 --outform pem > private/ahpohlKey.pem
pki --self --ca --lifetime 3652 --in private/ahpohlKey.pem --dn "C=DE, O=ahpohl, CN=ahpohl Root CA" --outform pem > x509ca/ahpohlCert.pem

# create server certificate:
pki --gen --type rsa --size 3072 --outform pem > private/vpnKey.pem
pki --req --type priv --in private/vpnKey.pem --dn "C=DE, O=ahpohl, CN=vpn.ahpohl.com" --san vpn.ahpohl.com --outform pem > vpnReq.pem
pki --issue --cacert x509ca/ahpohlCert.pem --cakey private/ahpohlKey.pem --type pkcs10 --in vpnReq.pem --serial 01 --lifetime 1826 --flag serverAuth --flag ikeIntermediate --crl https://www.ahpohl.com/crl/ahpohl.crl --outform pem > x509/vpnCert.pem

我按照 StrongSwan wiki上的 howtos进行 strongSwan 配置、证书创建和证书互操作性建议。strongSwan VPN 网关的完整连接日志和 FreeRadiusradiusd -X调试输出有点长,需要放在这里,但如果需要,可以使用。

vpn ipsec
  • 1 1 个回答
  • 223 Views

1 个回答

  • Voted
  1. Best Answer
    user1686
    2022-07-16T13:20:13+08:002022-07-16T13:20:13+08:00

    不指定remote { cacerts= }。此选项意味着 VPN 客户端应发送其自己的“用户”或“机器”证书以进行 IKE 身份验证,这与您仅使用 EAP 来验证客户端的目标相矛盾。由于您的客户端不发送证书,只发送密码,因此它们永远不会匹配此连接。

    您甚至应该添加send_certreq=no以使 strongSwan 不请求证书,因为它无论如何都不会被验证(这可能会通过不让服务器发送大量可接受的 CA 来大大加快握手速度,否则默认情况下会这样做)。

    (同时使用证书和 MSCHAP 并非不可能,但是……如果您有客户端证书,则可以首先将它们用于身份验证,而完全不用 RADIUS 或 MSCHAP。)

    请注意,versionand proposals(and send_certreq) 应该在连接级别指定,而不是在 children{} 内,因为它们是“全局”IKE 参数。(strongSwan wiki 中的示例似乎是错误的。)

    connections {
        vpn {
            version = 2
            local = { ... }
            send_cert = always
            remote = { ... }
            send_certreq = no
            proposals = aes256-sha256-modp2048
            children = {
                vpn = { ... }
            }
            pools = ipv4, ipv6
        }
    }
    
    • 1

相关问题

  • 为什么 Little Snitch 拒绝从 vpn.btguard.com 到 openvpn 的传入连接?

  • Cisco anyconnect 不断断开连接并重新连接

  • 802.1X 绕过/MAC 欺骗预防

  • 任何设备上的 OpenVPN - 仅转发 DNS

  • OpenVPN 可以连接,流量有效但我不在本地网络中

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve