基于 Radius 证书 (eap) 的身份验证

基于 Radius 证书 (eap) 的身份验证

我们目前正在安装一个 freeradius 服务器,该服务器使用证书通过无线连接进行身份验证。我们已将其用于 802.1x,但 Novell 的 Windows 7 客户端破坏了 802.1x 协议。因此,我们必须进行基于证书的身份验证。

我已设置并运行一个测试域,可以进行常规的内部/外部身份验证。一旦我实施了证书,事情就开始变得疯狂。我已附加 radius -X 输出(至少是它尝试实例化 EAP 模块的部分)。我在 Google 上搜索了答案,但真的没有找到任何东西。任何帮助都将不胜感激。谢谢。


Module: Instantiating eap
  eap {
        default_eap_type = "eap"
        timer_expire = 60
        ignore_unknown_eap_types = no
        cisco_accounting_username_bug = no
        max_sessions = 4096
  }

 Module: Linked to sub-module rlm_eap_md5
 Module: Instantiating eap-md5
 Module: Linked to sub-module rlm_eap_leap
 Module: Instantiating eap-leap
 Module: Linked to sub-module rlm_eap_gtc
 Module: Instantiating eap-gtc
   gtc {
        challenge = "Password: "
        auth_type = "PAP"
   }
 Module: Linked to sub-module rlm_eap_tls
 Module: Instantiating eap-tls
   tls {
        rsa_key_exchange = no
        dh_key_exchange = yes
        rsa_key_length = 512
        dh_key_length = 512
        verify_depth = 0
        pem_file_type = yes
        private_key_file = "/etc/raddb/certs/server.pem"
        certificate_file = "/etc/raddb/certs/server.pem"
        CA_file = "/etc/raddb/certs/ca.pem"
        private_key_password = "whatever"
        dh_file = "/etc/raddb/certs/dh"
        random_file = "/etc/raddb/certs/random"
        fragment_size = 1024
        include_length = yes
        check_crl = no
        cipher_list = "DEFAULT"
    cache {
        enable = no
        lifetime = 24
        max_entries = 255
    }
   }
 Module: Linked to sub-module rlm_eap_ttls
 Module: Instantiating eap-ttls
   ttls {
        default_eap_type = "mschapv2"
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        virtual_server = "inner-tunnel"
        include_length = yes
   }
 Module: Linked to sub-module rlm_eap_peap
 Module: Instantiating eap-peap
   peap {
        default_eap_type = "mschapv2"
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        proxy_tunneled_request_as_eap = yes
        virtual_server = "inner-tunnel"
   }
 Module: Linked to sub-module rlm_eap_mschapv2
 Module: Instantiating eap-mschapv2
   mschapv2 {
        with_ntdomain_hack = no
   }
rlm_eap: Unknown default EAP type eap
/etc/raddb/eap.conf[17]: Instantiation failed for module "eap"
/etc/raddb/sites-enabled/inner-tunnel[223]: Failed to load module "eap".
/etc/raddb/sites-enabled/inner-tunnel[176]: Errors parsing authenticate section.

答案1

我们已经为 802.1x 实现了这个功能,但是 Novell 的 Windows 7 客户端破坏了 802.1x 协议。所以我们必须使用基于证书的身份验证。

我觉得这没有意义。无论您使用的是 EAP-PEAP、EAP-TLS 还是 EAP-TTLS,您的请求者都需要与身份验证器进行 802.1x 通信。如果 Novell 的客户端确实破坏了 802.1x,则无论您决定使用哪种身份验证机制(EAP 本身通过 EAPOL 进行隧道传输),您都无法使其正常工作,802.1x 需要您的请求者和身份验证器支持。


您的问题可能出在这里:

rlm_eap: Unknown default EAP type eap
/etc/raddb/eap.conf[17]: Instantiation failed for module "eap"

您无法将 EAP 身份验证机制设置为 EAP。EAP 只是一个身份验证框架 - 因此是可扩展身份验证协议。您需要为 EAP 选择一个协议。

您提到了证书,因此我假设您正在实施 EAP-TLS。您可能想要更改:

default_eap_type = "eap"

eap: default_eap_type = "tls"

相关内容