ubuntuusers.de

UniFi Controller

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Ubiquiti_Logo.png Unter dem Label UniFi vertreibt die Firma Ubiquiti_Networks eine Reihe aktiver Netzwerkkomponenten, die über eine einfache Weboberfläche – den UniFi Controller – eingerichtet und gesteuert werden können. Dieser Controller basiert auf dem UniFi-Server, der mit dem Controller zusammen installiert wird und als Hintergrunddienst läuft. Diese Seite beschreibt die Inbetriebnahme dieses UniFi Controllers unter Ubuntu.

Vor der Installation

Das bei der Installation von Unifi vorgeschlagene Java-Paket openjdk-11 unter Bionic bzw. openjdk-14 unter Focal, ist nicht kompatibel. Die aktuelle Version 6.0.45 des UniFi Controller benötigt Java 8 JRE. Fehlt die korrekte Java-Version startet der Dienst nicht. Ein manuelles entfernen der falschen Javaversion und anschließendes installieren der Richtigen, führt, ohne das erneute installieren des Controllers, leider nicht zum Erfolg. Es ist also notwendig folgendes Paket zuerst zu installieren:

  • openjdk-8-jre

Befehl zum Installieren der Pakete:

sudo apt-get install openjdk-8-jre 

Oder mit apturl installieren, Link: apt://openjdk-8-jre

Ist das Paket schon vorhanden erhält man eine entsprechende Meldung.

Installation

Der UniFi Controller steht in den offiziellen Quellen nicht zur Verfügung. Er kann entweder als deb-Paket direkt von der Ubiquiti-Seite heruntergeladen werden, oder man nutzt eine Fremdquelle 🇬🇧, die Ubiquity zur Verfügung stellt. Wenn man den UniFi Controller regelmäßig benötigt, um ein Netzwerk zu überwachen, ist die Nutzung der Fremdquelle der bessere Weg, da man dann automatisch mit Updates versorgt wird. Wenn man den Controller nur benötigt, um Netzwerkkomponenten einmalig einzurichten, genügt das deb-Paket.

Direkte Installation

Von Ubiquiti Networks werden DEB-Pakete ⮷ angeboten. Die unterstützten Ubuntu-Versionen und Architekturen werden aufgelistet. Nachdem man sie für die korrekte Ubuntu-Version und Architektur geladen hat, müssen die DEB-Pakete noch installiert werden.

Hinweis!

Fremdpakete können das System gefährden.

Installation über die Fremdquelle

Achtung!

Fremdquellen können das System gefährden

Um die Fremdquelle zu authentifizieren, muss man den Signierungsschlüssel mit folgendem Befehl importieren:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 06E85760C0A52C50  

Dann die Fremdquelle hinzufügen:

sudo add-apt-repository 'deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti' 

Anschließend noch die Paketlisten neu einlesen:

apt-get update 

und schließlich die Installation starten:

  • unifi (Fremdquelle)

Befehl zum Installieren der Pakete:

sudo apt-get install unifi 

Oder mit apturl installieren, Link: apt://unifi

Inbetriebnahme

Zugewiesener Speicherplatz

Der Unifi Controller nutzt eine Mongo-Datenbank. Für den Controller und für die MongoDB werden dabei für Log-Dateien über 6 GB Speicherplatz reserviert. Wenn auf dem Installationsmedium nicht so viel Platz zur Verfügung steht (oder nicht so viel Platz zur Verfügung gestellt werden soll), bestehen zwei Möglichkeiten: entweder lagert man die entsprechenden Log-Dateien aus, oder man weist das System an, mit kleineren Log-Dateien zu arbeiten. Für die erste Variante muss in verlinkbarer Umgebung genügend Speicherplatz vorhanden sein; die zweite empfiehlt sich nur, wenn vom System sonst keine MongoDBs genutzt werden.

Hinweis:

Wird keine der folgenden Maßnahmen ergriffen und stehen am Installationsort keine 6GB zur Verfügung, kann der Controller nicht gestartet werden.

1. Weg: Auslagerung der Log-Dateien

Nach der Installation liegen die betroffenen Log-Dateien einerseits in /var/lib/unifi/db/journal, andererseits in /var/lib/mongodb/journal. Sollen die Log-Dateien ausgelagert werden, müssen beide Verzeichnisse an einen Speicherort verschoben werden, auf dem genügend Platz zur Verfügung steht. Dieser Speicherort ist dann zu verlinken:

# Verschieben der Log-Dateien
sudo mv -R /var/lib/unifi/db/journal /Ort/mit/Platz/unifi_journal
sudo mv -R /var/lib/mongodb/journal /Ort/mit/Platz/mongodb_journal

# Verlinken der Log-Dateien
sudo ln -s /Ort/mit/Platz/unifi_journal /var/lib/unifi/db/journal
sudo ln -s /Ort/mit/Platz/mongodb_journal /var/lib/mongodb/journal 

2. Weg: Reduktion der Log-Dateien

Damit die MongoDB nicht von selbst die Log-Dateien anzulegen versucht, ist als erstes zu unterbinden, dass MongoDB automatisch als Hintergrunddienst läuft. Dazu muss die Datei /etc/mongodb.conf mit root-Rechten [2] geöffnet werden. Die Zeile

1
ENABLE_MONGODB="yes"

ist umzustellen auf

1
ENABLE_MONGODB="no"

Danach muss UniFi mitgeteilt werden, dass bloß kleine (oder auch gar keine) Log-Dateien anzulegen sind. Hierfür muss die Datei /usr/lib/unifi/data/system.properties mit root-Rechten [2] editiert werden. Um kleine Log-Dateien von je 128 MB statt je 1 GB anzulegen, ist bei der Zeile unifi.db.extraargs das Kommentarzeichen (#) zu entfernen und die Option --smallfiles zu ergänzen:

1
unifi.db.extraargs=--smallfiles

Um gar keine Log-Dateien anzulegen, ist bei der Zeile unifi.db.nojournal=false das Kommentarzeichen (#) zu entfernen und die Option auf true zu setzen:

1
unifi.db.nojournal=true

Nun muss der UniFi-Server als Dienst neu gestartet werden [4], danach lässt sich der Controller normal benutzen.

Bedienung

Der UniFi Controller wird nach der Installation automatisch als systemd Service Unit gestartet. Der UniFi Controller ist über einen beliebigen graphischen Webbrowser unter einer der beiden folgenden Adressen anzusprechen:

  • http://<hostname>:8080

  • https://<hostname>:8443

Bei einer lokalen Installation kann <hostname> durch localhost oder 127.0.0.1 ersetzt werden; ansonsten ist die Server-IP einzutragen.

Beim ersten Aufruf wird der Nutzer aufgefordert, ein Admin-Konto anzulegen, über das die Steuerung der Netzwerkkomponenten von nun an von einem beliebigen Rechner aus unternommen werden kann (sofern der Host in Reichweite ist).

Die weiteren Möglichkeiten des Controllers (Statistiken zu einzelnen Netzwerkkomponenten und zu verbundenen Clients, Hauspläne mit der Reichweite einzelner Access-Points, etc.) unterscheiden sich unter Ubuntu nicht von anderen Betriebssystemen. Die Bedienung ist selbstklärend.

Änderung der Standard-Ports

Standardmäßig arbeitet UniFI mit folgenden Ports:

Standard-Ports von UniFi
Port Dienst
8080 http-Schnittstelle
8443 https-Schnittstelle
27117 MongoDB-Schnittstelle

Sämtliche Ports lassen sich in der Datei /usr/lib/unifi/data/system.properties umdefinieren, beim Bearbeiten sind Root-Rechte notwendig[5]. Dazu ist bei den entsprechenden Zeilen auch das Kommentarzeichen zu entfernen.

Temporäre Nutzung

Standardmäßig läuft der UniFi Server als ständiger Dienst auf dem System, auf das er installiert wurde. Wird der UniFi-Controller nur benötigt, um einen einzelnen Access-Point einzurichten oder ein kleines Netzwerk, das nicht ständig überwacht werden muss, so ist es sinnvoll, den Dienst auszuschalten. Man kann dazu folgenden Befehl verwenden:

sudo systemctl disable unifi 

Der Dienst wird nun nicht mehr beim Systemstart geladen, kann aber weiterhin manuell gestartet werden.

Problembehebung

Passwort Reset funktioniert nicht

Wer sein Admin-Passwort verlegt hat, muss entweder den Controller neu installieren, wenn die Passwort-Rücksetzung nicht funktioniert, oder folgendes Brecheisen verwenden:

Zuerst ist sicherzustellen, dass die MongoDB läuft:

sudo service mongodb restart 

Dann ist über folgenden Befehl herauszufinden, unter welchem Benutzernamen man sein Konto hinterlegt hat:

mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);" 

Das führt zu folgender Ausgabe (wobei die Option name den gesuchten Benutzernamen ausgibt):

MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27117/ace
MongoDB server version: 3.6.3
{
	"_id" : ObjectId("0123456789abcdef01234567"),
	"name" : "NAME",
	"email" : "EMAIL",
	"x_shadow" : "IRGENDEIN-UNLESERLICHER-HASH",
	"time_created" : NumberLong(0123456789),
	"last_site_name" : "default",
}

Nun ist ein neues Passwort zu erstellen (der Befehl mkpasswd findet sich im Paket whois [1] ):

mkpasswd -m sha-512 

Der Passwort-Hash, den man erhält, ist nun über folgenden Befehl in die MongoDB einzutragen (sowohl "NAME" als auch "PASSWORT-HASH" sind durch die eigenen Angaben zu ersetzen):

mongo --port 27117 ace --eval 'db.admin.update( { "name" : "NAME" }, { $set : { "x_shadow" : "PASSWORT-HASH" } } )' 

Danach kann man sich unter dem Benutzernamen mit dem neu erstellten Passwort normal anmelden.

Diese Revision wurde am 18. Februar 2021 20:59 von 4german erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Netzwerk, Internet