记录基于FreeRADIUS实现网络交换机登录认证的完整实操过程。该方案完全遵循 FreeRADIUS 官方文…
一、背景
在网络运维中,网络设备(交换机、路由器等)的登录认证通常有三种选择:
- 本地账号
- TACACS+ 集中认证
- RADIUS 认证
在本次测试中,设备主要用于内部管理,仅需要完成“设备管理员登录身份验证”,为了降低运维人员工作复杂度,不涉及命令级授权,也不需要计费功能。同时,受限于成本与现有条件,不具备部署商业 TACACS 系统或引入额外授权组件的预算。
选择 FreeRADIUS 作为统一认证服务:
- 完全开源、无授权成本
- 官方文档完整、行为可预期
- 可覆盖网络设备登录认证的基本需求
严格遵循官方文档、不引入复杂设计的前提下,搭建一套“只做认证”的 FreeRADIUS 配置,用于网络交换机登录验证。

二、安装FreeRADIUS
安装 FreeRADIUS(官方推荐方式)
“Where possible, while learning the basics, it’s recommended that beginners use the packaging system that is used by your operating system.”
在条件允许的情况下,在学习基础阶段,官方推荐初学者使用其操作系统自带的包管理系统来安装 FreeRADIUS。
sudo apt update && sudo apt install freeradius freeradius-utils- freeradius:服务端(radiusd / freeradius)
- freeradius-utils:测试工具
三、配置
3.1 启动调试模式
第一次启动必须用调试模式
“When the server has been installed on a new machine, the first step is to start it in debugging mode, as user root:”
当服务器被安装在一台新机器上之后,第一步就是以 root 用户身份,在调试模式下启动它。
停止 systemd 服务(避免端口冲突)
sudo systemctl stop freeradius调试模式启动(强制步骤)
sudo freeradius -X当看到Ready to process requests,说明安装成功了:

3.2 本服务器认证测试
添加一个本地临时测试的用户testing(这个可以理解为运维人员的账号),使用password,在文件的最顶部。
官方文档
RADIUS server must know the user’s cleartext password.
sudo nano /etc/freeradius/3.0/mods-config/files/authorizetesting Cleartext-Password := "password"
# 重启freeradius
sudo freeradius -X本机测试(使用 localhost client):
radtest testing password 127.0.0.1 0 testing123出现了预期的Access-Accept则表示成功了:

3.3 清理测试配置
为保证系统安全,刚才添加的测试用户testing需要删除
sudo nano /etc/freeradius/3.0/mods-config/files/authorize
# 删除如下这行
testing Cleartext-Password := "password"3.4 添加 RADIUS client
添加正式的内网需要通过radius认证的网络设备,添加到和localhost client平级的位置上。
sudo nano /etc/freeradius/3.0/clients.conf
3.5 添加运维人员账号
添加运维人员:xiaohong,密码是:StrongPass123
sudo nano /etc/freeradius/3.0/mods-config/files/authorizexiaohong Cleartext-Password := "StrongPass123"
Reply-Message := "You have successfully logged in.",
Huawei-Exec-Privilege := 15因为我这个华为设备通过Reply-Message确认登录是不是有问题,所以必须要有这个Reply-Message。
其中Huawei-Exec-Privilege为内置字段,不可变更:
cat /usr/share/freeradius/dictionary.huawei
3.6 启动freeradius
sudo systemctl enable freeradius && sudo systemctl start freeradius
四、交换机测试登录
成功登录
