什么是 802.1X ?

IEEE 802.1X是一种网络访问控制(NAC)协议,它定义了一种在网络交换机或接入点上进行认证的标准方式。它是一个端口级别的访问控制协议,通过端口的身份验证来控制网络上的主机是否有权访问资源。IEEE 802.1X提供了一种允许网络管理员验证用户的身份、检查设备是否满足最低安全标准并允许或拒绝访问网络的方法。

使用IEEE 802.1X,网络管理员可以防止未经授权的设备、病毒或其他恶意软件进入网络并对网络进行攻击。此外,它也提供了一种机制来保护网络免受暴力破解、ARP欺骗和MAC地址欺骗等攻击形式。因此,IEEE 802.1X可以增加网络的安全性以确保网络的保密性和数据完整性。

Linux环境

Linux下网络配置工具不同的发行版之间略有不同,而且有些发行版默认的网络工具存在问题,会导致认证失败的问题。

本文提供一种基于Docker的认证方法。

首先当然需要安装 Docker 和 docker-compose

配置

docker-compose 配置

Dockerfile

FROM debian:11
RUN set -e; \
    apt-get update; \
    apt-get upgrade -y; \
    apt-get install -y net-tools wpasupplicant

docker-compose.yaml

version: '3'

services:
  uniteos:
    build:
      context: ./
      dockerfile: Dockerfile
    command: wpa_supplicant -D wired -i enp3s0 -c /wpa.conf -dd -t
    network_mode: host
    volumes:
      - ./wpa.conf:/wpa.conf:ro
    restart: always

wpa 配置文件

wpa.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
ap_scan=0
network={
  key_mgmt=IEEE8021X
  eap=PEAP
  phase2="autheap=GTC"
  identity="<username>"
  password="<password>"
  priority=2
}

运行

docker-compose up -d