Server für UniFi WifiManager

WLAN-Infrastrukturen in Schulen richten wir auf Basis des Produkts UniFi ein. Leider ist die UniFi-Software für Linux lange nicht aktualisiert worden und es werden teils alte Software-Komponenten benötigt (MongoDB << Version 4.0, Java JRE v8). Diese Anleitung beschreibt, wie man einen UniFi-Controller auf Basis von Debian 11 aufsetzt und diese Installation durch die veralteten Software-Komponenten ergänzt.

Im Allgemeinen richten wir wifimanager.backbone auf dem ersten Virtualisierungs-Server virt-man-01.backbone ein. Hardware-Voraussetzung für einen WifiManager-Server sind: 2 Kerne, 2048MB RAM, 60GB Festplattenspeicherplatz).

Hinweis: Die Ordner /var/lib/unifi und /var/lib/mongodb werden "ausgelagert" auf eine separate Partition. Da MongoDB (wird als Abhängigkeit von UniFi mit-installiert) einiges an Speicherplatz benötigt, bitte /srv mit mind. 10G erstellen. Nach der Installation des Pakets 'unifi' dann aus /var/lib/ sowohl die Ordner unifi, als auch mongodb nach /srv verschieben und dann für beides einen Symlink nach /var/lib legen.

Der WifiManager-Server benötigt im Virtualisierungs-Server nur eine Netzwerkschnittstelle. Die VM wifimanager.backbone ist mit dem BackBone-Netzwerk verbunden.

Installationshinweise

Die virtuelle Maschine wifimanager.backbone wird zunächst mit einer Debian 11 Minimal Installation aufgesetzt, die WebGUI des UniFi-Controllers wird nach Fertigstellung der Installation einfach via https://wifimanager.backbone:8443 von einem der Virtualisierungs-Server aufgerufen, die VM wifimanager.backbone benötigt keine eigene Desktop-Umgebung o.ä.

Natürlich muss die VM über einen SSH-Server erreichbar sein, dieses Feature kann bei der Basis-Installation des System ausgewählt werden. Wichtig ist, dass man bei der Installation den Punkt "Desktop Environment" explizit abwählt.

Installation von UniFi auf der VM

sudo touch /etc/apt/sources.list.d/100-ubnt.list

1. In /etc/apt/sources.list.d/100-ubnt.list folgende APT Quelle eintragen:

deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti

2. Dann Hinzufügen des nötigen GPG-Keys für das UniFi APT Repository mit

wget -O /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg

3. In /etc/apt/sources.list.d/mongo-server-3.6.list die MongoDB 3.6 Quelle hinzufügen (Hinweis: hier muss leider auf sehr alte Software zurückgegriffen werden):

deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main

4. Dann Hinzufügen des nötigen GPG-Keys für MongoDB 3.6 mit

wget -qO /etc/apt/trusted.gpg.d/mondodb-server-3.6.asc https://www.mongodb.org/static/pgp/server-3.6.asc

5. UniFi läuft leider nur mit Java 8 (OpenJDK 1.8), diese veraltete Java Version beziehen wir aus Debian stretch (Eintrag in /etc/apt/sources.list.d/stretch.list:

deb http://deb.debian.org/debian stretch main
deb http://security.debian.org/ stretch/updates main

6. Installieren von UniFi-Controller-Software

sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install unifi

Nötigen Anpassungen der Netzwerkeinstellungen in /etc/network/interfaces

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 172.16.0.99
        netmask 255.255.255.0
        network 172.16.0.0
        broadcast 172.16.0.255
        gateway 172.16.0.253
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 172.16.0.253
        dns-search backbone

Einbinden eines UniFi-Access-Points

Login via WebGUI unter https://172.16.0.99:8443.

Anpassungen der Einstellungen:

Einstellungen > Neues Drahtlosnetzwerk hinzufügen > SSID > "Hier SSID-Namen einfügen"

IP-Anpassungen:

Gerät > Uplink Kabelgebunden > Konfiguration > Netzwerk

Statische IP:   172.16.0.150
Netzwerkmaske:  255.255.255.0
Bevorzugte DNS: 172.16.0.253
Gateway:        172.16.0.253

> Zur Warteschlange > Ausstehende Änderungen anwenden Geräte > Gerät einbinden (Überträgt Daten aus Einstellungen (s. unten))

Nach kurzer Wartezeit und einem Neustart ist der Access-Point nun einsatzbereit.

Anpassungen in Einstellungen/Erstellen der WLAN-Netze

In der Web-GUI von wifimanager.backbone auf Einstellungen > Drahtlose-Netzwerke > Drahtlos-Netzwerk hinzufügen gehen und folgenede Eintragungen vornehmen:

Neues RADIUS-Profil hinzufügen:

Profilname: TJENER
IP: 172.16.0.41
Port: 1812
PW: <pwgen 24>

Benutztes PW danach bitte dokumentieren.

Für WLAN-teachers:

SSID: WLAN-teachers
WPA-Enterprise
VLAN-ID: 21
WPA-Modus: Nur WPA2
RADIUS-Profil: TJENER

Für WLAN-students:

SSID: WLAN-students
WPA-Enterprise
VLAN-ID: 22
WPA-Modus: Nur WPA2
RADIUS-Profil: TJENER

Für WLAN-edu:

SSID: WLAN-edu
WPA-Enterprise
VLAN-ID: 23
WPA-Modus: Nur WPA2
RADIUS-Profil: TJENER

Für WLAN-guests:

SSID: WLAN-guests
Offen
VLAN-ID: 24

Danach wechseln nach Geräte, den zu konfigurierenden AP auswählen und provisionieren auswählen. Die Konfiguration wird jetzt an den AP geschickt und dort gespeichert.

Anpassungen für Freeradius (u.A. LDAP)

Config aus /etc/freeradius/* übernehmen von tjener.kath oder tjener.ebg und entsprechend an neue Schule anpassen.

Anpassungen in /etc/freeradius/modules/ldap

ldap {
        #
        #  Note that this needs to match the name in the LDAP
        #  server certificate, if you're using ldaps.
        server = "ldap.intern"
        identity = "cn=freeradius,ou=freeradius,dc=skole,dc=skolelinux,dc=no"
        password = <24-stelliges Freeradius Tjener-Profil Passwort>
        basedn = "dc=skole,dc=skolelinux,dc=no"
        filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
        #base_filter = "(objectclass=radiusprofile)"

Nötige Anpassungen in LDAP

Mit Tool ldapvi (hier mit mcedit als Editor):

sudo VISUAL=mcedit ldapvi --discover -D cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no -h ldap.intern -ZZZ
PW: <LDAP Admin-PW aus itzks-creds>

Aus Freeradius-PW einen SSHA-Hash erstellen:

sudo slappasswd <Passwort>

Vorzunehmende Änderungen/Anpassungen:

        copy "2 ou=people,..."-block
        > add ou=freeradius,dc=skole,dc=skolelinux,dc=no
          objectClass: top
          objectClass: organiuationalUnit
          ou: freeradius

        copy "11 cn=admin,..."
        > add cn=freeradius,ou=freeradius,dc=skole,dc=skolelinux,dc=no
          objectClass: top
          objectClass: organizationalRole
          objectClass: simpleSecurityObject
          cn: freeradius
          description: Freeradius Service-Account
          userPassword: {SSHA}<output von slappasswd>

Anpassungen in /etc/freeradius/clients.conf

Secret mit pwgen 24 erstellen und hinzufügen. Secret dann in itzks-creds unter dem Eintrag für das Tjener Freeradius-Profil vermerken.

Setup-Test

Installieren von freeraidus-utils mit

sudo apt-get install freeradius-utils

Testen der Freeradius-LDAP-Anbindung mit dem Tool radtest (idealerweise vorher Gosa-PW ändern, da das benutzte PW in der Bash-History zu sehen ist.):

Da der Freeradius-Dienst auf dem Tjener läuft, muss dessen IP-Adresse angegeben werden.

sudo radtest -x <UID> <Test-PW> 172.16.0.41 10 <Secret>

Nutzungshinweise für UniFi

Nutzungshinweise finden sich hier.

Installation

Basisinstallation Jessie

IT-Zukunft Schule: Technik/Installation/VM/WifiManager (zuletzt geändert am 2021-12-27 21:45:42 durch MikeGabriel)