Ubiguiti Unifi Controller kein Login mehr möglich
Falls es bei euch auch dazu kommt, das ihr euch nicht mehr am Ubiguiti Unifi Controller anmelden könnt, obwohl ihr 100% sicher seid das euer Benutzername und Passwort richtig sind und folgende Fehlermeldung beim Login kommt:
Login error Invalid username and/or password.
Bei mir zeigte zudem die UI des USG (Unifi Secure Gateway) die folgende Meldung:
The UniFi Controller is currently unreachable.
und unter https://network.unifi.ui.com wurde der Cloud Key als offline
angezeigt.
Auch ein Restore meiner Backup Dateien über die Cloud Key UI im Browser brachte keinen Erfolg.
Als ich ein wenig mir das Server Log des Unifi Controllers angeschaut habe, habe ich direkt einen Verdacht bekommen: Datenbank korrupt! Das Logfile bekommt ihr, wenn ihr euch auf den Cloud Key via SSH Verbindet unter /srv/unifi/logs
hier liegen alle relevanten Logfiles.
less /srv/unifi/logs/server.log
Nach ein wenig Recherche bin ich darüber gestoßen, dass man das Passwort des Benutzers direkt in der MongoDB zurücksetzen kann. Dies sollte wie folgt funktionieren:
Ubiguiti Unifi Controller Passwort zurücksetzen
Via SSH auf den Cloud Key Verbinden und dann an die Mongo DB verbinden:
mongo --port 27117 --shell --quiet
dies führt zu folgender Welcome Message:
type "help" for help Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user
nun lassen wir uns alle Datenbanken anzeigen
show dbs
folgendes Ausgabe kam bei mir:
ace 0.03125GB ace_stat 0.5GB local 0.03125GB
nun öffnen wir die ace
DB
use ace
bestätigt wird uns das so:
switched to db ace
und nun kam der Moment der mich stutzig machte. Bei der Suche nach Admin Usern blieb das Abfrage Ergebnis leer:
db.admin.find()
Normalerweise, sollte hier in etwa so etwas als Ausgabe kommen:
{ "_id" : ObjectId("5a4552a24f0c66c01a730277"), "x_shadow" : "$6$IeSrq0LS$14mN.UZ5yh2wXspXr.Ee6flD5vg5wRmMqgmnX9DL79u2o/9Z9EaBkLx2Di8OG.Gb0wq6Vy4wnEpg.7Istdfuu1", "name" : "admin", "email" : "yourmail@domain.tld", "time_created" : NumberLong(1514492578), "last_site_name" : "default" }
sollte bei euch die obige Ausgabe kommen, könnt ihr das Passwort wie folgt zurücksetzen:
Startet eine neue Konsole, bzw. Terminal und verbindet euch mit dem Cloud Key. Zur Not beendet die MongoDB Verbindung mit exit
und führt die nachfolgenden Befehle dort aus:
apt update
apt install whois
printf "mypassword" | mkpasswd --stdin --method=sha-512
Wir installieren hier das Paket whois nach, welches uns ein Passwort Hash Tool mitbringt. mypassword, solltet ihr natürlich in euer Neues Passwort ändern. Die Ausgabe sollte dann in etwa so aussehen:
$6$LvF7R7Q3qo$bXFAWhbscrQ1rxYXF.Ut.iJ5I.59HBx8mpJnF3AayklAgX/izmh/Q16jG4aSlbI557QbwxnnV8LfkyqC0cZhc/
Diesen Hashwert brauchen wir nun wieder in der MongoDB Konsole. Also entweder habt ihr diese noch offen oder ihr befolgt die oben beschriebenen Schritte nochmals. Kopiert euch auf jeden Fall den Hashwert.
In der Mongo DB Konsole, bitte ändert den Hashwert hinter "x_shadow" :
in euren ab und prüft die ObjectID
:
db.admin.update({"_id":ObjectId("5a4552a24f0c66c01a730277")},{$set: {"x_shadow" : "$6$LvF7R7Q3qo$bXFAWhbscrQ1rxYXF.Ut.iJ5I.59HBx8mpJnF3AayklAgX/izmh/Q16jG4aSlbI557QbwxnnV8LfkyqC0cZhc/"}})
Wenn alles klappt solltet ihr folgende Ausgabe bekommen:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
Verifizieren könnt ihr das nun mit dem folgenden Befehl:
db.admin.find({"name":"admin"})
Und nun, testet euren UI Login im Browser. Wie gesagt, bei mir brachte dies leider nichts. Ich habe den Cloud Key zurückgesetzt und das letzte Backup eingespielt...
Cloud Key zurücksetzen
In der Cloud Key UI unter Maintenance findet ihr den Punkt RESET TO DEFAULTS
diesen einfach anwählen und warten bis der Cloud Key einmal neu gestartet ist. Im Anschluss kann man sich am Cloud Key mit den Standard Credentials (ubnt/ubnt) einloggen und den Key soweit Konfigurieren wie man es möchte. Im Anschluss daran, einfach die Controller URL aufrufen. Hier wird man vom Setup Assistenten begrüßt. Ich habe diesen einfach einmal durchgeklickt. Im Anschluss geht man dann in der Controller UI in die Einstellungen
zum Menüpunkt Backup
. Hier sollten alle alten verfügbaren Backups angezeigt werden. Wählt das letzte aus und drück auf Restore. Der Prozess dauert ein wenig, danach einfach neu einloggen. Dies brachte bei mir den Erfolg! Login geht wieder :-)
Quellen
- https://community.ui.com/questions/Cant-Login-to-Unifi-Controller-anymore/d35f748e-45a8-4086-ba65-33e581788c61
- https://blog.sleeplessbeastie.eu/2018/08/15/how-to-reset-admin-password-on-unifi-controller/
- https://community.ui.com/questions/Cant-Login-to-Unifi-Controller-anymore/d35f748e-45a8-4086-ba65-33e581788c61