跳至内容

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