跳到内容

FreeRADIUS 802.1X 服务器

简介

RADIUS 是一种用于管理网络访问的 AAA(身份验证、授权和计费)协议。FreeRADIUS 是 Linux 和其他类 Unix 系统的事实上的 RADIUS 服务器。

先决条件和假设

以下为此过程的最低要求

  • 能够以 root 用户身份运行命令或使用 sudo 提升权限
  • RADIUS 客户端,例如路由器、交换机或 Wi-Fi 接入点

安装 FreeRADIUS

您可以从 dnf 仓库安装 FreeRADIUS

dnf install -y freeradius

配置 FreeRADIUS

安装完软件包后,您需要首先为 FreeRADIUS 生成 TLS 加密证书

cd /etc/raddb/certs
./bootstrap

随后,您需要添加用户进行身份验证。打开 users 文件

cd ..
vi users

在文件中插入以下内容

user    Cleartext-Password := "password"

userpassword 分别替换为所需用户名和密码。

请注意,密码未被哈希,因此如果攻击者获取了 users 文件,他们可能会获得对您的受保护网络的未经授权的访问。

您还可以使用 MD5 哈希或 Crypt 哈希密码。要生成 MD5 哈希密码,请运行

echo -n password | md5sum | awk '{print $1}'

password 替换为所需的密码。

您将得到一个哈希值 5f4dcc3b5aa765d61d8327deb882cf99。在 users 文件中,改为插入以下内容

user    MD5-Password := "5f4dcc3b5aa765d61d8327deb882cf99"

您还需要定义客户端。这是为了防止对我们的 RADIUS 服务器进行未经授权的访问。编辑 clients.conf 文件

vi clients.conf

插入以下内容

client 172.20.0.254 {
        secret = secret123
}

172.20.0.254secret123 分别替换为客户端将使用的 IP 地址和密钥值。对其他客户端重复此操作。

启用 FreeRADIUS

完成初始配置后,您可以启动 radiusd

systemctl enable --now radiusd

在交换机上配置 RADIUS

设置好 FreeRADIUS 服务器后,您将在作者的 MikroTik 交换机上配置 RADIUS 客户端作为有线 802.1X 客户端

/radius
add address=172.20.0.12 secret=secret123 service=dot1x
/interface dot1x server
add interface=combo3

172.20.0.12 替换为 FreeRADIUS 服务器的 IP 地址,将 secret123 替换为之前设置的密钥。

作者:Neel Chauhan

贡献者:Steven Spencer