Radius认证配置与排错
配置Radius认证
配置接口地址及路由
ping测试FortiGate与Radius Server之间的连通性。测试环境使用FortiAuthenticator作为Radius服务器,地址是192.168.91.209。
# execute ping 192.168.91.209 PING 192.168.91.209 (192.168.91.209): 56 data bytes 64 bytes from 192.168.91.209: icmp_seq=0 ttl=63 time=0.3 ms 64 bytes from 192.168.91.209: icmp_seq=1 ttl=63 time=0.2 ms 64 bytes from 192.168.91.209: icmp_seq=2 ttl=63 time=0.1 ms 64 bytes from 192.168.91.209: icmp_seq=3 ttl=63 time=0.1 ms 64 bytes from 192.168.91.209: icmp_seq=4 ttl=63 time=0.2 ms --- 192.168.91.209 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.3 ms
配置Radius服务器
选择”用户与认证“-->”RADIUS“,点击”新建“。
配置参数:
名称:输入一个名称,不冲突即可;
认证方法:FortiGate支持CHAP,MS-CHAP,MS-CHAP,PAP认证方法。如果认证方法是默认,则FortiGate会使用PAP、MSCHAP_v2和CHAP三种方式向Radius服务器发送请求,Radius服务器的日志中往往会报一些错误,因此请指定一种认证方法,这里使用PAP;
IP/名称:在主服务器输入Radius服务器的IP地址;
密钥:FortiGate和Radius服务器之间的共享密钥,这里设置为fortinet。
点击”确认“,配置完成。
对应的命令行如下:
config user radius edit "Radius209" set server "192.168.91.209" set secret ENC fJ6Xhg0wVEZyp8qAJfiuNSJLqyNVrWsRwQ1zELqWc7GnyBso4IrSelJJR4DBKmXQ/ex9cFWq3nJfoWEbWjRy1nrwUMl5HJGPiHO+c8MXXy6IAUE38ec4Y/x5VnRPZpEgPPiVIuCXZfbpnjcR1t5RdO8lgTTRkhiNqBFvrZtyxsucpqRYSH7eyTN0ih5nJigvUn8oAg== set auth-type pap next end
Radius服务器测试
FortiGate与Radius服务器之间连通性测试
GUI编辑Radius服务器的配置界面,点击”测试连接性“。
CLI的语法:
#diagnose test authserver radius-direct <server_name or IP> <port number (0 default port)> <secret> <pap | chap | mschap | mschap2> <user> <password>
如果连接状态是”成功“,则FortiGate与Radius服务器之间通信正常。
对应的CLI测试结果如下:
# diagnose test authserver radius-direct 192.168.91.209 1812 fortinet pap user1 12345678 RADIUS server '192.168.91.209' status is OK Access-Accept AVP: l=12 t=Vendor-Specific(26) v=Fortinet(12356) VSA: l=6 t=Fortinet-Group-Name(1) Value: 'grp1'
如果连接状态是“对服务器密钥无效”,则FortiGate与Radius服务器之间的密钥不一致。
对应的CLI测试结果如下:
# diagnose test authserver radius-direct 192.168.91.209 1812 fortinet pap user1 12345678 RADIUS server '192.168.91.209' status is Secret invalid
如果连接状态是“不能连接 RADIUS 服务器”,则Radius服务器的地址或者端口不正确,或者Radius服务器没有授权FortiGate作为客户端。
对应的CLI测试结果如下:
# diagnose test authserver radius-direct 192.168.91.209 1812 fortinet pap user1 12345678 RADIUS server '192.168.91.209' status is Server unreachable
测试Radius服务器中的用户及密码
GUI编辑Radius服务器的配置界面,点击”测试用户认证信息“。
CLI的语法:
# diagnose test authserver radius <server_name> <chap | pap | mschap | mschap2> <username> <password>
用户名或者密码不正确
对应的CLI测试结果如下:
# diagnose test authserver radius Radius209 pap user1 test123 authenticate 'user1' against 'pap' failed, assigned_rad_session_id=730523922 session_timeout=0 secs idle_timeout=0 secs!
用户名和密码正确
可以看到Radius服务器返回的状态是成功,以及用户属于,如user1属于用户组grp1。
对应的CLI测试结果如下:
# diagnose test authserver radius Radius209 pap user1 12345678 authenticate 'user1' against 'pap' succeeded, server=primary assigned_rad_session_id=730523923 session_timeout=0 secs idle_timeout=0 secs! Group membership(s) - grp1
其他Radius配置参数
修改Radius端口
config user radius edit Radius209 set radius-port xxx next end
指定原IP地址
config user radius edit Radius209 set source-ip x.x.x.x next end
创建radius用户
选择“用户与认证”-->“设置用户”,点击“新建”
选择"远程RADIUS用户",点击“下一步”
输入“用户名”和“RADIUS服务器”,点击“下一步”
如果Radius用户需要绑定FortiGate本地的Fortitoken,则勾选“双因子认证”。这里不需要,直接点击“下一步”
如果需要现在为Radius用户指定一个用户组,可以勾选“用户组”来指定,也可以等创建完用户后,在用户组菜单中添加。这里不勾选,直接点击“提交”
创建完成
创建radius用户组
选择“用户与认证”-->"用户组",点击"新建"
配置参数
输入用户组名称group1,在远程组下,点击“添加”,在”远程服务器“中选择已配置的Radius服务器。
指定Radius的用户组,这里使用grp1,表示group1匹配Radius用户组grp1下的用户,可以添加多个组;如果组选择“Any”,表示匹配Radius服务器下的所用用户。
选择完成后,点击“确认”。
配置完成
Radius认证Debug
认证成功
[1906] handle_req-Rcvd auth req 730524052 for user1 in Radius209 opt=0000001d prot=0 [466] __compose_group_list_from_req-Group 'Radius209', type 1 [616] fnbamd_pop3_start-user1 [518] __fnbamd_cfg_get_radius_list_by_server-Loading RADIUS server 'Radius209' [342] fnbamd_create_radius_socket-Opened radius socket 12 [342] fnbamd_create_radius_socket-Opened radius socket 13 [1394] fnbamd_radius_auth_send-Compose RADIUS request [1351] fnbamd_rad_dns_cb-192.168.91.209->192.168.91.209 认证请求,radius服务器是192.168.91.209,用户名user1,认证方法是PAP [1323] __fnbamd_rad_send-Sent radius req to server 'Radius209': fd=12, IP=192.168.91.209(192.168.91.209:1812) code=1 id=6 len=101 user="user1" using PAP [319] radius_server_auth-Timer of rad 'Radius209' is added [633] create_auth_session-Total 1 server(s) to try [1360] fnbamd_auth_handle_radius_result-Timer of rad 'Radius209' is deleted 认证响应,响应code 2,认证成功,返回的用户属性 [1802] fnbamd_radius_auth_validate_pkt-RADIUS resp code 2 [320] extract_success_vsas-FORTINET attr, type 1, val grp1 [1385] fnbamd_auth_handle_radius_result-->Result for radius svr 'Radius209' 192.168.91.209(1) is 0 [266] find_matched_usr_grps-Skipped group matching [216] fnbamd_comm_send_result-Sending result 0 (nid 0) for req 730524052, len=2154 [789] destroy_auth_session-delete session 730524052
认证失败
[1906] handle_req-Rcvd auth req 730524053 for user1 in Radius209 opt=0000001d prot=0 [466] __compose_group_list_from_req-Group 'Radius209', type 1 [616] fnbamd_pop3_start-user1 [518] __fnbamd_cfg_get_radius_list_by_server-Loading RADIUS server 'Radius209' [342] fnbamd_create_radius_socket-Opened radius socket 12 [342] fnbamd_create_radius_socket-Opened radius socket 13 [1394] fnbamd_radius_auth_send-Compose RADIUS request [1351] fnbamd_rad_dns_cb-192.168.91.209->192.168.91.209 认证请求,radius服务器是192.168.91.209,用户名user1,认证方法是PAP [1323] __fnbamd_rad_send-Sent radius req to server 'Radius209': fd=12, IP=192.168.91.209(192.168.91.209:1812) code=1 id=7 len=101 user="user1" using PAP [319] radius_server_auth-Timer of rad 'Radius209' is added [633] create_auth_session-Total 1 server(s) to try [1360] fnbamd_auth_handle_radius_result-Timer of rad 'Radius209' is deleted 认证响应,响应code 3,认证拒绝 [1802] fnbamd_radius_auth_validate_pkt-RADIUS resp code 3 [1385] fnbamd_auth_handle_radius_result-->Result for radius svr 'Radius209' 192.168.91.209(1) is 1 [216] fnbamd_comm_send_result-Sending result 1 (nid 0) for req 730524053, len=3172 [789] destroy_auth_session-delete session 730524053