实战记录:基于免费的 FreeRADIUS 实现华为路由器登录认证

实战记录:基于免费的 FreeRADIUS 实现华为路由器登录认证

4 周前 25 1 0℃

实战记录:基于免费的 FreeRADIUS 实现华为路由器登录认证

记录基于FreeRADIUS实现网络交换机登录认证的完整实操过程。该方案完全遵循 FreeRADIUS 官方文…

一、背景

在网络运维中,网络设备(交换机、路由器等)的登录认证通常有三种选择:

  • 本地账号
  • TACACS+ 集中认证
  • RADIUS 认证

在本次测试中,设备主要用于内部管理,仅需要完成“设备管理员登录身份验证”,为了降低运维人员工作复杂度,不涉及命令级授权,也不需要计费功能。同时,受限于成本与现有条件,不具备部署商业 TACACS 系统或引入额外授权组件的预算。

选择 FreeRADIUS 作为统一认证服务:

  • 完全开源、无授权成本
  • 官方文档完整、行为可预期
  • 可覆盖网络设备登录认证的基本需求

严格遵循官方文档、不引入复杂设计的前提下,搭建一套“只做认证”的 FreeRADIUS 配置,用于网络交换机登录验证。

二、安装FreeRADIUS

安装 FreeRADIUS(官方推荐方式)

sudo apt update && sudo apt install freeradius freeradius-utils
  • freeradius:服务端(radiusd / freeradius)
  • freeradius-utils:测试工具

三、配置

3.1 启动调试模式

停止 systemd 服务(避免端口冲突)

sudo systemctl stop freeradius

调试模式启动(强制步骤)

sudo freeradius -X

当看到Ready to process requests,说明安装成功了:

3.2 本服务器认证测试

添加一个本地临时测试的用户testing(这个可以理解为运维人员的账号),使用password,在文件的最顶部。

sudo nano /etc/freeradius/3.0/mods-config/files/authorize
testing 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/authorize
xiaohong 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

四、交换机测试登录

成功登录

已复制到剪贴板