配置FreeRADIUS仅支持EAP TTLS PAP

问题描述 投票:0回答:1

我有一个仅支持 PAP 的外部 RADIUS 服务器。我已将 FreeRADIUS 2.2.4 配置为将 EAP-TTLS 隧道内的 PAP 请求(从为 WPA2 Enterprise 配置的 WiFi 接入点)代理到此 RADIUS 服务器,并使用 eapol_test 对其进行了测试。我可以手动将 PC 或 Mac 配置为仅发送 EAP-TTLS+PAP,但这并不理想。

未配置的 WPA2 Enterprise 客户端连接时,它们会尝试 PEAP、LEAP 和 EAP-MD5。我禁用了大多数其他 EAP 类型,但似乎我需要 TTLS 块中的

default_eap_type
中至少支持一种其他 EAP 类型。我的 eap.conf 中未注释的部分如下:

eap {
    default_eap_type = ttls
    timer_expire     = 60
    ignore_unknown_eap_types = no
    cisco_accounting_username_bug = no
    max_sessions = 4096
    md5 {
    }
    tls {
        certdir = ${confdir}/certs
        cadir = ${confdir}/certs

        private_key_password = heythatsprivate
        private_key_file = ${certdir}/server.pem
        certificate_file = ${certdir}/server.pem
        dh_file = ${certdir}/dh
        random_file = /dev/urandom
        CA_path = ${cadir}
        cipher_list = "DEFAULT"
        make_cert_command = "${certdir}/bootstrap"
        ecdh_curve = "prime256v1"
        cache {
              enable = yes
              lifetime = 24 # hours
              max_entries = 255
        }
        verify {
        }
        ocsp {
              enable = no
              override_cert_url = yes
              url = "http://127.0.0.1/ocsp/"
        }
    }
    ttls {
        default_eap_type = md5 
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        virtual_server = "inner-tunnel"
    }
}

有没有办法配置 FreeRADIUS,以便 TTLS 内不允许使用 EAP 类型或明确要求隧道内使用 PAP?

谢谢, -罗汉

freeradius
1个回答
0
投票

尝试设置除默认服务器之外的新服务器...

server my-server {
   authorize { ... }

   authenticate { 
       eap
   }

   accounting { ... }
}

然后创建一个内部隧道用于第二阶段的身份验证

server my-tunnel {
     authorize {
          pap
     }
     ...
     authenticate {
         Auth-Type PAP {
            pap
         }
     }
     ...
}

您需要修改您的 EAP 配置,如下所示:

eap {
            default_eap_type = ttls
            ...

            ttls {
                    default_eap_type = gtc
                    copy_request_to_tunnel = yes
                    use_tunneled_reply = yes
                    virtual_server = "my-tunnel"
            }
            ...
     }

然后为每个客户端指定您要使用哪个服务器来处理身份验证请求

client example {
    ipv6addr       = x.x.x.x
    netmask        = 32
    secret         = *******
    shortname      = example
    virtual_server = my-server
}

我确信这将实现您想做的事情。

问候,

-埃尔南·加西亚

© www.soinside.com 2019 - 2024. All rights reserved.