From 8a29d4844674d935612619dbc93429e5910010b3 Mon Sep 17 00:00:00 2001 From: Korel Date: Tue, 29 Oct 2024 18:40:34 -0400 Subject: [PATCH] IEEE802.1x Dockerized Environment Includes Documentaiton for the IEEE802.1x Dockerized Environement. This page details a simplified alternative to set up IEEE 802.1X on one's host machine. This also includes the build files for users who want to build it themselves instead of pull from Dockerhub. Tested on physical hardware for ARM devices. Signed-off-by: Korel --- .../IEEE-802.1X-DockerizedEnvironment.png | Bin 0 -> 8637 bytes .../DockerBuildFilesForIEEE802-1x.zip | Bin 0 -> 27235 bytes .../IEEE802.1xDockerizedEnvironment.md | 277 ++++++++++++++++++ 3 files changed, 277 insertions(+) create mode 100644 Images/ImagesForPlatformConfiguration/IEEE-802.1X-DockerizedEnvironment.png create mode 100644 PlatformConfigurations/DockerBuildFilesForIEEE802-1X/DockerBuildFilesForIEEE802-1x.zip create mode 100644 PlatformConfigurations/IEEE802.1xDockerizedEnvironment.md diff --git a/Images/ImagesForPlatformConfiguration/IEEE-802.1X-DockerizedEnvironment.png b/Images/ImagesForPlatformConfiguration/IEEE-802.1X-DockerizedEnvironment.png new file mode 100644 index 0000000000000000000000000000000000000000..1d861063aa62487201acaad6257ab7bc7f4c604d GIT binary patch literal 8637 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

ty+Yr!Y!t(aX#=DQdM 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 literal 0 HcmV?d00001 diff --git a/PlatformConfigurations/DockerBuildFilesForIEEE802-1X/DockerBuildFilesForIEEE802-1x.zip b/PlatformConfigurations/DockerBuildFilesForIEEE802-1X/DockerBuildFilesForIEEE802-1x.zip new file mode 100644 index 0000000000000000000000000000000000000000..4e9950bb44c32ff9237564e3ef5ba8766086a0ad GIT binary patch literal 27235 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 literal 0 HcmV?d00001 diff --git a/PlatformConfigurations/IEEE802.1xDockerizedEnvironment.md b/PlatformConfigurations/IEEE802.1xDockerizedEnvironment.md new file mode 100644 index 0000000..e045871 --- /dev/null +++ b/PlatformConfigurations/IEEE802.1xDockerizedEnvironment.md @@ -0,0 +1,277 @@ +--- +title: IEEE 802.1x Dockerized Environment +parent: Platform Configuration +nav_order: 7 +layout: default +--- + +# IEEE 802.1x Dockerized Environment + +## Introduction + +Due to the complexity of the IEEE 802.1x configuration we thought it might be helpful to create a simplified +alternative to set up IEEE 802.1X on one's host machine. This section will cover a Docker image that contains many of +the necessary installations and configuration changes already in place for IEEE 802.1X. + +**NOTE: This image contains the configurations for the Authenticator and the Radius-Server to run on the same device.** + +## Docker Installation + +To use the IEEE 802.1X Docker image, you will need to have Docker installed + +If Docker is not already installed on the device that will act as the Authenticator and the FreeRADIUS-Server +follow the steps below: + +1. First, update your existing list of packages: + + ``` + sudo apt update + ``` + +2. Next, install a few prerequisite packages which let `apt` use packages over HTTPS: + + ``` + sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common + ``` + +3. Then add the GPG key for the official Docker repository to your system: + + ``` + curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - + ``` + +4. Add the Docker repository to APT sources: + + ``` + sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" + ``` + +5. Next, update the package database with the Docker packages from the newly added repo: + + ``` + sudo apt update + ``` + +6. Make sure you are about to install from the Docker repo instead of the default Debian repo: + + ``` + apt-cache policy docker-ce + ``` + + You’ll see an output like this, although the version number for Docker may be different: + + ``` + root@dentlab-infra2:~# apt-cache policy docker-ce + docker-ce: + Installed: (none) + Candidate: 5:26.1.4-1~debian.10~buster + Version table: + *** 5:26.1.4-1~debian.10~buster 500 + 500 https://download.docker.com/linux/debian buster/stable arm64 Packages + 100 /var/lib/dpkg/status + ``` + +7. Finally, install Docker: + + ``` + sudo apt install docker-ce + ``` + +8. To check that it’s running use: + + ``` + sudo systemctl status docker + ``` + + Example Output: + + ``` + root@dentlab-infra2:~# systemctl status docker + ● docker.service - Docker Application Container Engine + Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) + Active: active (running) since Tue 2024-10-29 01:27:46 UTC; 2h 8min ago + Docs: https://docs.docker.com + Main PID: 3786 (dockerd) + Tasks: 19 + Memory: 3.1G + CGroup: /system.slice/docker.service + └─3786 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock + + ``` + +Congratulations you now have Docker Installed! Create Docker account if you do not have one already at [DockerHub](https://app.docker.com/). + +## Pulling the Docker Image + +Login to your Docker account: + +``` +docker login -u ${Username} +``` + +- At the password prompt, enter your password or a personal access token. You can create a personal access token via your account settings in Dockerhub. + +To pull the docker image onto you host machine simply run: + +``` +docker pull korelu/ieee802-1x-authenticator-and-server:ARM_V1.0 +``` + +Once you pull the docker image run the docker image in a container with your host network + +``` +docker run --rm --tty --interactive --network host --privileged --name my_host korelu/ieee802-1x-authenticator-and-server:ARM_V1.0 +``` + +## Building the Docker Image + +If you would like to build the Docker image yourself the Docker build files used in the Docker image are included below: + +[DockerBuildFilesForIEEE802-1x.zip](../PlatformConfigurations/DockerBuildFilesForIEEE802-1X/DockerBuildFilesForIEEE802-1x.zip) + +Once installed unzip the files and you should see: + +``` +root@dentlab-infra2:/etc/docker/DockerBuildFilesForIEEE802-1x# ls +802-1x-tr-mgmt clients.conf default Dockerfile eap hostapd.conf users +``` + +To build the docker image run the following in the unzipped folder: + +``` +docker build --network host -t authenticatorAndServerimage . +``` + +**NOTE: This may take some time** + +By default, Docker uses the DNS settings of the host machine. +However, if the build has trouble resolving names like deb.debian.org you may need to specify a DNS resolver. + +To do this create or edit the `daemon.json` file within `/etc/docker`. Fill it with the ip address of your DNS resolver. + +Example: + +``` +root@dentlab-infra2:/etc/docker# ls +daemon.json DockerBuildFilesForIEEE802-1x + +root@dentlab-infra2:/etc/docker# cat daemon.json +{ + "dns": ["127.0.0.1", "8.8.8.8"] +} +``` + +Once you build the Docker image run the docker image in a container with your host network + +``` +docker run --rm --tty --interactive --network host --privileged --name my_host authenticatorAndServerimage +``` + +## Review Configuration Files + +You will now see all the necessary installations have been added to your device. To complete the configuration do the following: + +1. `/etc/hostapd/hostapd.conf` + + - As the network administrator review the `/etc/hostapd/hostapd.conf` file to specify the Network Interface of your + desired Access Point. + + **You will have to create or specify a bridge to use in the hostapd.conf file that will filter by the learned Mac Addresses in the Forwarding Data Base Table. + By default, the `br0` is set for usage in the Docker image** + +2. `/etc/freeradius/3.0/certs/ca.pem` + + - By default, the docker image configuration is set up for TTLS, as such the server must present a certificate to authenticate + itself to the client + + **You will also have to share the server certificate authority (`/etc/freeradius/3.0/certs/ca.pem`) file from the server + with the Supplicant that will request access to the network.** + +3. `/etc/freeradius/3.0/users` + + - Review the`/etc/freeradius/3.0/users` file to add or remove users that should be allowed onto the network. + +4. `/etc/freeradius/3.0/clients.conf` + + - The `/etc/freeradius/3.0/clients.conf` file is used for configuring devices that are allowed to communicate with the FreeRADIUS server. If you want to set up additional authenticators you may add them here. + +5. `/usr/local/bin/802-1x-tr-mgmt` + - The `/usr/local/bin/802-1x-tr-mgmt` file is a script used for adding/removing Mac Address entries from the Forwarding Database Table. + It is important for the authenticator as it will adjust device filtering based on the result of the Radius Server. + +## Example Usage + +![IEEE802.1x_Dockerized_Environment](../Images/ImagesForPlatformConfiguration/IEEE-802.1X-DockerizedEnvironment.png) + +Pull or build the Docker container on the **Authenticator-RadiusServer**: + +1. Create a bridge and enslave the desired Access Point Interface to the bridge + + ``` + ip link add name br0 type bridge + ip link set swp2 master br0 + ip link set br0 up + ip link set swp2 up + ``` + +2. Share the `/etc/freeradius/3.0/certs/ca.pem` file with any Supplicants + + ``` + scp ${src} ${dest} + ``` + +3. Start hostapd + ``` + hostapd /etc/hostapd/hostapd.conf -g /var/run/hostapd.pid -d -B + ``` +4. Start the freeradius-Server + ``` + freeradius -X + ``` +5. Start the hostapd_cli to have ports learn Mac Addresses and add/remove entries from the Forwarding Database Table + ``` + hostapd_cli -i swp2 -a /usr/local/bin/802-1x-tr-mgmt + ``` + +On the **Supplicant** send EAP requests for Network access: + +``` +wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant-TTLS.conf -D wired -i swp1 +``` + +Output Example: + +``` +root@dentlab-infra2:/etc/freeradius/3.0# freeradius -X +FreeRADIUS Version 3.0.17 +Copyright (C) 1999-2017 The FreeRADIUS server project and contributors +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE +You may redistribute copies of FreeRADIUS under the terms of the +GNU General Public License +For more information about these matters, see the file named COPYRIGHT +Starting - reading configuration files ... +including dictionary file /usr/share/freeradius/dictionary +including dictionary file /usr/share/freeradius/dictionary.dhcp +including dictionary file /usr/share/freeradius/dictionary.vqp +[...] +(9) Sent Access-Accept Id 9 from 127.0.0.1:1812 to 127.0.0.1:37455 length 0 +(9) MS-MPPE-Recv-Key = 0x2cc56408030921797d08515c352bb3b9a621c8376a53b23bd09412f49010c16f +(9) MS-MPPE-Send-Key = 0xb9add5fed4611771adbf2bcfd5db49df266d5d67924a9364f6a6c8d4e11c0bfb +(9) EAP-Message = 0x03520004 +(9) Message-Authenticator = 0x00000000000000000000000000000000 +(9) User-Name = "IxiaUser1" +(9) Finished request +Waking up in 4.9 seconds. +(0) Cleaning up request packet ID 0 with timestamp +131 +(1) Cleaning up request packet ID 1 with timestamp +131 +(2) Cleaning up request packet ID 2 with timestamp +131 +(3) Cleaning up request packet ID 3 with timestamp +131 +(4) Cleaning up request packet ID 4 with timestamp +131 +(5) Cleaning up request packet ID 5 with timestamp +131 +(6) Cleaning up request packet ID 6 with timestamp +131 +(7) Cleaning up request packet ID 7 with timestamp +131 +(8) Cleaning up request packet ID 8 with timestamp +131 +(9) Cleaning up request packet ID 9 with timestamp +131 +Ready to process requests +```