Kategorien
Linux

Unifi Controller – Restore von einem anderen System bzw. Backup

Ein Backup zu haben tut gut, allerdings nur wenn man auch weiß wie man’s wieder einspielt! 🙂

Die Unifi Hilfe und auch das Forum bieten leider relativ wenig Informationen dazu wie man ein mit dem Controller erstelltes Backup (findet sich gewöhnlich unter /var/lib/unifi/backup bzw. /var/lib/unifi/backup/autobackup und hat die Endung .unf) wieder einspielt.

Nach einer frischen Installation der Controller Software kann man am Startbildschirm auswählen eine vorhandene Sicherung ein zu spielen, der upload vom lokalen PC hat bei mir aufgrund der Größe des Backups nicht funktioniert. Und es steht auch nicht immer das gesamte /var/lib/unifi Verzeichnis zur Verfügung – wer also nur die „unf“ Datei hat geht wie folgt vor:

Datei Backup Datei z.B. „autobackup_5.13.32_20200806_2200_1596319200003.unf“ manuell in das Verzeichnis /var/lib/unifi/backup/autobackup/ kopieren und eine passende „autobackup_meta.json“ Datei im selben Verzeichnis erstellen.

Diese hat folgenden Inhalt:

{„autobackup_5.13.32_20200806_2200_1596319200003.unf“:{„version“:“5.13.32″,“time“:1596319200003,“datetime“:“2020-08-01T22:00:00Z“,“format“:“bson“,“days“:90,“size“:6463895536}}

Anschließend erkennt der Unifi Controller das Backup und bietet es direkt für den Restore an!

Bei einer Datenmenge von 6,1 GB kann man sich dann auch auf einem flotten System schon mal eine längere Pause gönnen, besser mit Stunden rechnen…! 🙂

Damit kann man dann auch ein Backup eines Controllers der mit einer älteren Mongo-DB gelaufen ist, problemlos in ein aktuelles Ubuntu System mit Mongo-DB 3.6.9 einspielen.

Zur Installation des Unifi Controllers empfehle ich übrigens das Script von Glenn R.

Kategorien
Allgemein

Unifi Controller Firewall Regel-erstell Bug

Seit inzwischen etwas mehr als einem Jahr setze ich in einigen Netzwerken recht erfolgreich Hardware von Unifi und entsprechend auch deren Controller ein. Ich bin inzwischen ein kleiner Fan von der Unifi Infrastruktur, sie funktioniert gut und ist zu leistbaren Preisen verfügbar – wenn auch zeitweise nur mit längeren Lieferzeiten.

Gestern hatte ich mal wieder das „Vergnügen“ mit dem Unifi Support zu chatten, ich wollte einen vermeintlichen Bug den ich im Interface zum Erstellen von Firewall Regeln gefunden habe melden.

Was soll ich sagen, eine Stunde später war ich am Ende meiner Nerven aber irgendwie habe ich es dann doch geschafft die werte Dame davon zu überzeugen den Fehler weiter zu melden…

Der Fehler ist eigentlich schnell erklärt und nachvollziehbar – bei mir auf zwei unterschiedlichen Cloud Key’s mit ebenfalls zwei Unterschiedlichen Firmware Versionen:

Cloud Key und Controller mit der Vorversion
Cloud Key mit aktueller Firmware und Controller Version

Erstellt man eine einfache Firewall Regel welche den TCP Verkehr zu einem bestimmten Host dessen IP Adresse angegeben wird frei schaltet und speichert diese, dann erscheint nach dem Speichern im selben Dialog beim Editieren keine IP Adresse mehr. Die Regel funktioniert zwar, kann aber nicht mehr zuverlässig verändert werden.

Testregel – sämtlicher TCP Verkehr zum Server 8.8.8.8 erlauben
Nach dem Speichern wird unter Address/Port Group der Default angezeigt, IP Address ist leer.

Für den Fall dass jemand langweilig ist kommt hier noch der Mitschnitt vom Chat mit Unifi – ich hoffe es wird verständlich warum ich mich darüber geärgert habe…! 🙂

(09:17:35 AM) Manfred: Hello,
I think I found a bug!
When I crate a firewall rule wich allows all TCP traffic to a specific IP address, the IP address will be removed from the rule management interface after I save the rule.
(09:20:37 AM) Customer Service: Sorry to keep you waiting! All of our agents are currently assisting other customers, but we’ll be with you shortly! You’re welcome to explore our help center, which might have a solution for you. Take a look. https://help.ubnt.com/hc/en-us
(09:23:37 AM) Customer Service: We are experiencing unusually high support volume. We thank you for your patience and we will be with you shortly.
(09:28:25 AM) *** Anna G joined the chat ***
(09:28:30 AM) Anna G: Hi there. Let me check it for you.
(09:28:41 AM) Manfred: hi anna, please 🙂
(09:30:08 AM) Manfred: Current Version5.9.29 (Build: atag_5.9.29_11384)
(09:33:19 AM) Anna G: Which browser are you using?
(09:33:55 AM) Manfred: chrome
(09:37:16 AM) Anna G: Have you tried to clear browser history and cache?
(09:38:18 AM) Manfred: yes
(09:39:58 AM) Anna G: Please try accessing the controller in incognito mode of your chrome browser.
(09:40:29 AM) Manfred: ok, one moment…
(09:42:19 AM) Manfred: same error – after saving the ip address is empty in the field
(09:42:29 AM) Manfred: did you try that on your test system?
(09:43:34 AM) Anna G: Not yet. Please give me a moment to check this with my internal team.
(09:44:35 AM) Manfred: please create a new „wan out“ rule with accept tcp to an external ip address, save it and edit the rule again – should have an empty ip address field in destination field…
(09:50:29 AM) Anna G: On which OS is the controller installed?
(09:50:50 AM) Manfred: cloud key 🙂
(09:51:04 AM) Manfred: UCK.mtk7623.v0.12.2.ac6742e.181220.1824
(09:51:27 AM) Anna G: Have you tried rebooting the CK?
(09:52:09 AM) Manfred: no, have you tried to create a rule on your controller?
(09:53:13 AM) Anna G: Could you please reboot the CK and let me know if the issue persists?
(09:53:52 AM) Manfred: if i reboot the controller this chat will be ended or isn’t it so?
(09:54:32 AM) Manfred: to check if it’s bug or a problem on my system you would only have to do 5 clicks in the firewall settings and you could see if it happens on your site too or just on mine…
(09:55:03 AM) Manfred: I will check that on a second controller now – if the error is there too I will not have to reboot mine or?
(09:57:45 AM) Anna G: Any updates?
(09:57:55 AM) Manfred: second controller – same problem there…
(09:58:05 AM) Manfred: Visitor uploaded: after_saving.png
(09:58:06 AM) Manfred: Visitor uploaded: before_saving.png
(09:58:06 AM) Manfred: Visitor uploaded: rule_overview_with_test-rule.png
(09:58:37 AM) Manfred: would it be possible for you to check that on your test controller now?
(09:59:21 AM) Anna G: on which OS is this second controller installed?
(09:59:40 AM) Manfred: uck
(09:59:54 AM) Manfred: same version
(10:00:17 AM) Anna G: Can you please reboot this second cloud key and let me know if the issue resolves?
(10:00:32 AM) Anna G: I need to provide this information to my team.
(10:00:45 AM) Manfred: you are joking?
(10:02:38 AM) Anna G: Please check out the known issues mentioned in the release note:
https://community.ubnt.com/t5/UniFi-Updates-Blog/UniFi-Network-Controller-5-10-12-Stable-has-been-released/ba-p/2665341
(10:03:20 AM) Anna G: Refreshing/rebooting the controller should resolve any display issues reported after upgrading.
(10:05:55 AM) Manfred: i make a restart but am not really happy with the situation!
actually, i’m trying to help you identify a bug in your product and help you fix it, the easiest way would be to reproduce the problem on a test system.
the problem exists exactly the same after the restart as before.
for my part i have already spent more time to report the bug here and am a bit annoyed in the meantime.
please take this information and pass it on to your team, i will pass it on for my part on my blog.

(10:06:58 AM) Manfred: second cloud key with same problem has this cloud key version:
UCK.mtk7623.v0.12.2.ac6742e.181220.1824
(10:07:13 AM) Manfred: and controller version:
5.9.29-11384-1
(10:07:14 AM) Anna G: Thank you for the update!
(10:07:49 AM) Anna G: I will escalate this.
(10:07:56 AM) Manfred: thank you

Unifi Chat Transcript – 11.02.2019

Kategorien
Linux

Unifi Controller auf Ubuntu 18.04 installieren

Die aktuelle Unifi Controller Software 5.8.28 lässt sich unter Ubuntu 18.04 LTS derzeit leider nicht so einfach installieren, die mitgelieferte Mongo-DB Version von Ubuntu entspricht nicht jener die der Controller verlangt.

Ergo muss man die passende Mongo-DB Version installieren um den Controller zum Laufen zu bekommen, ein Upgrade von 16.04 auf 18.04 scheint zu funktionieren.

Für die Installation des Controllers hat sich ein Unifi Benutzer die Arbeit gemacht und ein Script gebaut welches die komplette Installation quasi automatisiert, hierfür ist ein frisch installiertes Ubuntu System die beste Basis – wurden bereits Versuche unternommen die Controller Software zu installieren, sollte man alle Überreste vorher entfernen.

Der Link zum Download der Software führt über einen Beitrag im Unifi Forum:

https://community.ubnt.com/t5/UniFi-Wireless/UniFi-Installation-Scripts-UniFi-Easy-Update-Scripts-Works-on/td-p/2375150

Kategorien
Linux

Unifi Controller – Firmware Upgrade hinter Proxy Server

Mit dem Unifi Controller lässt sich Unifi Hardware wunderbar managen, das Ding läuft auch unter Linux sehr gut und integriert die Netzwerkverwaltung an einer Stelle – eigentlich alles wunderbar. Einzig hinter einem Proxy Server mit restriktiven Einstellungen bei der Firewall hat das Ding seine Probleme – hier hat die Firma Ubiquiti aus unbekannten Gründen keine Proxy Unterstützung integriert.

Im Controller kann man unter Maintenance für alle Firmware Versionen die Dateien cachen – ein Klick auf den „Cache“ Button sollte eigentlich im Hintergrund einen Download starten.

Sobald kein direkter Zugriff auf das Internet möglich ist erscheinen im unifi Logfile folgende Meldungen:

<webapi-126> ERROR system – Error in downloading https://dl.ubnt.com/unifi/firmware/US24P250/3.9.6.7613/firmware.bin

Da auch unser Controller ohne Proxy nicht auf’s Internet zugreifen darf klappt auch das Cachen der Firmware Dateien auf dem Controller nicht.

<webapi-88> WARN system – failed to get firmware update info: connect timed out

Mein Ansatz das Problem zu lösen bzw. zu umgehen ist folgender:

Ich übernehme den Download der Firmware Dateien und lege sie dort ab wo sie der Controller anschließend laden kann, dafür überarbeite ich die „bundles.json“ Datei in der der Pfad der Firmware Datei für den Download hinterlegt ist.

Folgendes Bash-Script erledigt dies:

https://www.grufo.com/get_unifi_firmware.sh.txt

Einfach herunterladen, unter get_unifi_firmware.sh abspeichern und mittels „chmod +x get_unifi_firmware.sh“ ausführbar machen.

Für den Download habe ich einfach am Controller einen nginx Server installiert und die Dateien in dessen Default Ordner abgelegt. Die Pfad müssen im Script entsprechend angepasst werden, ebenso der Proxy Server.

Nach dem Ausführen des Scriptes sollten die Firmware Dateien im angegebenen Ordner zu finden sein und über die Server URL erreichbar sein.

Die bundles.json Datei wurde nach dem Download mit den lokalen Pfaden versorgt, der Controller sollte am Ende des Scripts automatisch neu gestartet worden sein. Im Controller Webinterface kann man sich jetzt neu anmelden und unter Maintenance den Cache der Firmware Dateien aktualisieren.

Nach nur wenigen Klicks sollte die Firmware im Cache geladen sein und die Unifi Endgeräte können direkt darauf zugreifen und das Firmware Upgrade einspielen…

Was mich etwas nachdenklich macht ist dass Unifi es seit längerer Zeit nicht für nötig befunden hat ihren Controller Proxy tauglich zu machen – für Unternehmen sollte ein direkter Internet Zugriff ohne Kontrolle eigentlich tabu sein!