Ubiquiti UniFi AC
HowToFlash
Linux
Der Flashvorgang der UniFi AC Geräte benötigt das Tool „mtd“. Dieses wurde in neueren Versionen der Stock-Firmware entfernt. Daher muss zunächst ein Recovery auf die Version 3.7.58 durchgeführt werden. Der Vorgang ist der gleiche um wieder auf die Stock-Firmware zurück zu flashen.
Für alle Vorgänge muss sich dein System im gleichen Subnetz wie das UniFi AC Gerät befinden. Dieses hat standardmäßig die IP-Adresse 192.168.1.20 (/24). Du kannst dir bspw. die 192.168.1.21 (/24) zuweisen. Nur .1 und .20 solltest du meiden, da diese von der Stock- oder Freifunk-Firmware genutzt werden.
Recovery
- Recovery-Firmware laden 3.7.58
- Gerät vom Strom nehmen
- Reset-Knopf gedrückt halten
- Strom einschalten
- Sobald das Gerät in einer schnelleren Abfolge weiß, blau und aus blinkt, ist es bereit eine Firmware per TFTP zu empfangen tftp -m binary 192.168.1.20 -c put BZ.qca956x.v3.7.58.6385.170508.0957.bin
- Das Gerät wechselt in einen weiß / blau Wechsel und wird irgendwann mit der bereitgestellten Firmware neustarten
Flashen der Freifunk Nordwest Firmware
- Firmware herunterladen (Firmware-Selector (Ubiquiti UniFi AC))
- Firmware auf das Gerät übertragen scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o KexAlgorithms=+diffie-hellman-group1-sha1 FIRMWARE-DATEI ubnt@192.168.1.20:/tmp/fw.bin Die Optionen -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no sorgen dafür, dass kein Host-Key Eintrag auf deinem Rechner erzeugt oder gefunden wird. Das sollte sonst nicht eingesetzt werden, da es ein fundamentales Sicherheitsmerkmal für SSH-Sitzungen ist. Die Option -o KexAlgorithms=+diffie-hellman-group1-sha1 aktiviert eine veraltete Schlüsselmethode, die früher (v3.7.58) in den UniFi AC Geräten angewendet wurde, inzwischen allerdings in einigen Linux-Distributionen standardmäßig deaktiviert ist. Auch diese Option sollte sonst nicht eingesetzt werden. Das Passwort lautet ubnt.
- Shell auf dem Gerät öffnen ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o KexAlgorithms=+diffie-hellman-group1-sha1 ubnt@192.168.1.20 Erläuterungen zu den Optionen siehe Schritt 2.
- dd if=/dev/zero bs=1 count=1 of=/dev/mtd4 Das Gerät hat zwei Flash-Speicher. Bei einem Update wird der inaktive Speicher beschrieben und beim nächsten mal der Flash-Speicher für den Bootvorgang gewechselt. Ist das Update fehlerhaft, startet das Gerät nochmal neu und wechselt wieder auf den anderen Flash-Speicher mit der zuvor installierten Firmware. Dieser Befehl lässt das Gerät beim nächsten mal von Flash-Speicher 0 starten.
- mtd -e kernel0 write /tmp/fw.bin kernel0 Der Befehl entsperrt den Flash-Speicher 0 und beschreibt diesen mit der zuvor übertragenen Firmware.
- mtd -r -e kernel1 write /tmp/fw.bin kernel1 Wiederholen von Schritt 2 für Flash-Speicher 1 und Reboot.
- Das Gerät startet im Config-Mode neu. FERTIG!
Windows
Was wird benötigt?
- Euren AP
- Ein PoE-Netzteil oder einen PoE-Switch
- mindestens 2 Netzwerkkabel
- Eine passende Freifunk-Firmware (Direkter Link zur AP-AC-Pro Firmware)
- Folgende Programme:
- Putty (https://www.putty.org/)
- WinSCP (https://winscp.net/eng/download.php)
Vorbereitungen
- Der AP sollte am besten über einen PoE-Adapter angeschlossen werden, dann kann der LAN-Ausgang vom Netzteil direkt an den Rechner/Laptop gesteckt werden. Sollte kein PoE-Adapter vorhanden sein (und man muss über einen PoE-fähigen Switch gehen), muss man AP und Rechner ins selbe VLAN stecken.
- Der Rechner sollte auf die IP 192.168.1.100 und die Subnetzmaske 255.255.255.0 eingestellt sein
- AP sollte eingesteckt sein und betriebsbereit sein
Durchführung
Achtung - diese Anleitung gilt für einen fabrikneuen AP - eventuell schon voher mit einem Controller verbundene APs sollten zurückgesetzt werden!
SSH verbinden
- Per SSH über Putty mit dem AP verbinden (IP: 192.168.1.20 - Port: 22) -> es sollte eine Auffordung zur Eingabe eines Benutzernamens im Terminal erscheinen
- Einloggen über Benutzername ubnt und Passwort ubnt (Standardmäßig
WinSCP verbinden
- WinSCP auf folgende Daten einstellen (Benutzername \ Passwort wie bei SSH):
- Übertragrungsprotokoll: SCP
- Serveradresse: 192.168.1.20
- Portnummer: 22
- Benutzername: ubnt
- Passwort: ubnt
- Dann über die rechte Adressleiste in das Verzeichnis /tmp wechseln
- Auf der linken Seite den Ordner mit der Firmware aufrufen, diese kann der einfachheit halber in sysupgrade.bin umbenannt werden
- Dann kann durch einfaches Drag+Drop die Datei rübergezogen werden, und wird damit hochgeladen auf den AP
Nun kann WinSCP wieder geschlossen werden, und zurück nach Putty gewechselt werden.
Firmware flashen
- Folgen Befehl ausführen, um herauszufinden auf welchen Speicher-Block die eigentliche Firmware liegt:
grep kernel /proc/mtd
-> Die daraus resultieren zwei Zeilen beginnend mit mtdX zeigen an wo eure Standard-Firmware liegt
- Dann die Firmware auf die beiden Speicherblöcke schreiben (Dieser Befehl muss zweimal ausgeführt werden, für beide Speicherblöcke):
dd if=/tmp/firmware.bin of=/dev/mtdblockX
- Nun muss ein Nullbyte an den Anfang der Bootpartion geschrieben werden, dazu diese Ausfinding machen:
grep bs /proc/mtd
-> Es kommt diesesmal eine Zeile mit mtdX
- Dann den Bootsektor mit einem Nullbyte überschreiben:
dd if=/dev/zero bs=1 count=1 of=/dev/mtdX
Router neustarten
- Nun kann der Router neugestartet werden:
reboot
Router einstellen
- Nach dem Neustart kann der Router unter der IP 192.168.1.1 Freifunk-typisch eingestellt werden
Router in Betrieb nehmen
Im Standardbetriebsmodus ist das "Internet" an den WAN-Port Main anzuschliessen. Das Freifunk-Netzwerk ist verfügbar am zweiten LAN-Port.