ubuntu搭建freeradius服务器,有线网和无线网进行802.1X认证

服务器 0

1. 综述

802.1X 是一种基于端口的网络访问控制协议,常用于无线局域网(WLAN)和有线局域网(LAN)中,以提供对用户或设备的身份验证。

本文简单介绍在ubuntu上安装freeradius服务器,交换机和无线控制器配置802.1X(思科型号,注意交换机和无线控制器必须支持802.1x认证功能,普通的华为路由器没有此功能),以及在linux客户端进行有线和无线802.1X认证。

需要的硬件设备:
(1)ubuntu主机,搭建freeradius服务器
(2)支持802.1X的交换机
(3)支持802.1X的无线控制器
(4)linux客户端,用于测试连接802.1X认证
(5)足够的网线

2. ubuntu上搭建freeradius服务器

  1. 选择合适版本的ubuntu桌面版本,这里有一个坑的地方,ubuntu桌面版本和linux客户端版本要保持大版本的一致,不然会由于openssl的版本问题,可能导致出错,如果不使用网络证书的话没啥问题。
  2. ubuntu上安装freeradius, 命令行sudo apt-get install freeradius。
  3. FreeRadius 环境测试,freeradius提供了测试功能,命令是radtest Username Password ServerIP Port Secre
    freeradius默认是不用数据库的,用户信息,保存在users(注:这里简单起见不使用数据库)
    注意:这里用root账号登录,不然会无法访问以下路径,也无法修改文件内容
    cd /etc/freeradius/3.0
    gedit users
    在这里插入图片描述
  4. 测试的时候开两个终端,命令行sudo service freeradius stop先将freeradius服务关闭,一个终端执行 sudo freeradius -X,然后再开一个终端执行 radtest steve testing localhost 1812 testing123
  5. 1812是默认端口,testing是用来验证身份的,在clients.conf中写明
    如果出现Access Accept的提示,测试成功!
    这里值得注意的是最后手机或者IPad终端进行链接时,所输入的身份和密码是 steve和testing
    如下图所示:
    在这里插入图片描述
  6. 修改client.conf文件
    反注释掉 client private-network -1 部分代码
    修改ipaddr为电脑通过网线链接路由器或交换机(支持802.1X协议)DHCP获取到的IP:比如192.168.41.100,这里在测试环境下建议将IP改为0.0.0.0,允许所有的客户端进行连接。
    cd /etc/freeradius/3.0
    gedit client.conf

在这里插入图片描述

  1. 修改完配置文件,命令行sudo service freeradius stop先将freeradius服务关闭,一个终端执行 sudo freeradius -X重新启动即可生效。
  2. 保证freeradius服务器所在的ubuntu主机和交换机以及无线控制器直连,最好用网线直连,无认证的方式保持能够直接通信。
    EAP功能补充
  3. freeradius开启EAP功能,编辑EAP配置文件,通常位于/etc/freeradius/3.0/mods-enabled/eap
    gedit /etc/freeradius/3.0/mods-enabled/eap
    找到eap配置块,并确保启用了TLS:
    eap {
    default_eap_type = tls

    }
    在tls-config tls-common块中,配置证书路径:
    tls-config tls-common {
    private_key_file = /etc/freeradius/3.0/certs/server.key
    certificate_file = /etc/freeradius/3.0/certs/server.pem
    ca_file = /etc/freeradius/3.0/certs/ca.pem
    dh_file = /etc/freeradius/3.0/certs/dh

    }
    确保这些证书文件是存在的,并且权限正确。
  4. 证书的生成,如果你没有证书,可以使用FreeRADIUS提供的脚本来生成它们:
    cd /etc/freeradius/3.0/certs
    chmod +x bootstrap
    ./bootstrap
    这将生成CA证书、服务器证书和客户端证书。
    注:添加读权限,不然freeradius -X无法启动,tls会报错,会认为无法访问证书
    chmod o+r /etc/freeradius/3.0/certs/server.pem
    chmod o+r /etc/freeradius/3.0/certs/ca.pem
    chmod o+r /etc/freeradius/3.0/certs/server.key
    注意这里有坑:
    证书是有有效期的,默认是60天。
    需要在linux客户端上设置当前时间:
    date -s “2024-05-30 10:55:02”

3. 思科交换机配置(有线网启用802.1X)

  1. 启用802.1x认证,在命令行界面输入:
    aaa new-model
    dot1x system-auth-control
    以上两条命令启用aaa和802.1x功能。
    cisco交换机的命令行位置如下图:
    在这里插入图片描述

  2. 添加aaa验证的radius服务器
    在命令行界面执行如下代码
    radius server ubuntu-test
    address ipv4 192.168.1.25 auth-port 1812
    key testing123
    exit
    以上的密码在freeradius的clients.conf文件里保存,默认密码,192.168.1.25是ubuntu里的radius服务器的IP,请修改为实际的IP。

  3. 配置有线网接口开启使用802.1X认证,这一步需要控制具体的网口,如下图所示:

在这里插入图片描述
以上示例启用23号网口的802.1X认证。

  1. 将23号网线直连到Linux客户端上。

4. Linux客户端进行802.1X的有线网连接

  1. 首先请确保安装了wpa_supplicant
    sudo apt-get install wpasupplicant

  2. 配置 wpa_supplicant
    创建或编辑wpa_supplicant的配置文件,通常这个文件位于/etc/wpa_supplicant/wpa_supplicant.conf。以下是一个基本的配置示例,用于有线网络
    ctrl_interface=/var/run/wpa_supplicant
    update_config=1
    eapol_version=1
    ap_scan=0

    network={
    key_mgmt=IEEE8021X
    eap=PEAP
    identity=“steve”
    password=“testing”
    phase1=“peaplabel=0”
    phase2=“auth=MSCHAPV2”
    }

使用的是PEAP方式,不需要用网络证书。
这里的账号密码是/etc/freeradius/3.0/users里的steve和testing。

  1. 启动 wpa_supplicant
    使用以下命令启动wpa_supplicant,确保指定正确的网络接口(例如eth0):
    sudo wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wired

  2. 如果配置正常的话可以发现连接上有线网,并能够和CISCO交换机通信。

5.思科无线控制器的配置(无线网启用802.1X)

  1. 创建radius服务器,
    如下图所示:
    在这里插入图片描述
  2. 启用802.1X认证
    在这里插入图片描述
    针对具体的wifi开启802.1X的无线认证功能。

补充EAP功能开启

  1. 创建EAP服务,如下图所示:
    在这里插入图片描述
  2. 开启EAP服务,如下图所示:
    在这里插入图片描述

6.Linux客户端进行802.1X的无线网连接

  1. 安装 wpa_supplicant:
    如果你的系统中还没有安装wpa_supplicant,你可以通过包管理器安装它。在Ubuntu上,你可以使用:
    sudo apt-get install wpasupplicant

  2. 配置 wpa_supplicant:
    你需要创建或编辑wpa_supplicant的配置文件,通常这个文件位于/etc/wpa_supplicant/wpa_supplicant.conf。以下是一个配置802.1X认证的示例配置:
    ctrl_interface=/var/run/wpa_supplicant
    network={
    ssid=“你的SSID”
    key_mgmt=WPA-EAP
    eap=PEAP
    identity=“steve”
    password=“testing”
    phase1=“peaplabel=0”
    phase2=“auth=MSCHAPV2”
    }
    替换你的SSID、你的用户名和你的密码为实际的值,这里是账号密码是steve和testing。
    无线网的802.1X认证方式为PEAP。

  3. 运行 wpa_supplicant:
    使用以下命令启动wpa_supplicant,确保指定正确的接口(例如wlan0)和配置文件路径:
    sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D nl80211,wext

  4. 使用 wpa_cli 连接网络:
    一旦wpa_supplicant运行,你可以使用wpa_cli来管理连接。首先启动wpa_cli:
    sudo wpa_cli
    在wpa_cli的命令行界面,你可以使用以下命令来重新加载配置并连接网络:
    reconfigure
    然后,检查状态:
    status

7. 总结

802.1X的配置难点在与freeradius服务器的配置,以及思科路由器和思科无线控制器的配置。以上是个人实际使用中的一点总结,希望有所帮助。

也许您对下面的内容还感兴趣: