我最近深入研究了具有动态 VLAN 分配的 802.1x 身份验证。
我当前的设置包含: - 一个客户端 - 一个 SG220 思科交换机(请求者) - 一个基于 LDAP AD 的 freeradius(身份验证器) - 一个用于防火墙并充当 DHCP 服务器的 fortigate。
就身份验证而言,它是有效的。我的用户通过了身份验证,并收到了此表单中的“访问接受”消息。
Sending Access-Accept of id 12 to xxx.xxx.xxx.xxx port 6103
Tunnel-Private-Group-Id:0 = "vlan_name"
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Type:0 = VLAN
MS-MPPE-Recv-Key = 0xd899b158c44adb59894a8ad4c7554010571fffe1c3ef87f74db910c482c2be82
MS-MPPE-Send-Key = 0xe094d1c3e2fb5d5153963089c533278338d655284858156b0fb2e78e72ab7060
EAP-Message = 0x03320004
Message-Authenticator = 0x00000000000000000000000000000000
User-Name = "username"
我已将隧道属性添加到我的 LDAP 目录,并且像之前的 freeradius 调试消息一样显示它存储在 radius 包中。
我已经阅读了无数的帖子,其中都提到您应该将“use_tunneled_reply = yes”添加到您的 eap.conf 文件中,我已经按照如下所示进行了操作:
eap {
use_tunneled_reply = yes
default_eap_type = ttls
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = 4096
md5 {
}
leap {
}
gtc {
auth_type = PAP
}
tls {
certdir = ${confdir}/certs
cadir = ${confdir}/certs
private_key_password = whatever
private_key_file = ${certdir}/server.key
pem_file_type = yes
certificate_file = ${certdir}/server.pem
CA_file = ${cadir}/ca.pem
dh_file = ${certdir}/dh
random_file = /dev/urandom
CA_path = ${cadir}
cipher_list = "DEFAULT"
make_cert_command = "${certdir}/bootstrap"
cache {
enable = no
max_entries = 255
}
verify {
}
}
ttls {
virtual_server = "inner-tunnel"
}
peap {
virtual_server = "inner-tunnel"
}
mschapv2 {
}
}
就交换机配置而言,接口如下:
encrypted radius-server host xxx.xxx.xxx.xxx auth-port 1812 acct-port 0 key "some hash"== priority 1 usg-type 802.1x
aaa authentication enable default radius
dot1x system-auth-control
vlan 50
name "vlan_name"
interface gi1
switchport mode access
dot1x port-control auto
spanning-tree portfast
交换机 vlan 从 fortigate 获取 dhcp,vlan 也是在 fortigate 创建的。
我只让它工作到设置静态访问端口的程度。
到目前为止,我已经没有任何选项和论坛可以浏览了。
如果有人能给我指明正确的方向,我会很高兴。我甚至不确定我是否应该在 freeradius 端或交换机端寻找问题。
如果您需要更多文件或日志,请联系我。
亲切的问候