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

  1. Recovery-Firmware laden 3.7.58
  2. Gerät vom Strom nehmen
  3. Reset-Knopf gedrückt halten
  4. Strom einschalten
  5. 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
  6. Das Gerät wechselt in einen weiß / blau Wechsel und wird irgendwann mit der bereitgestellten Firmware neustarten

Flashen der Freifunk Nordwest Firmware

  1. Firmware herunterladen (Firmware-Selector (Ubiquiti UniFi AC))
  2. 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.
  3. 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.
    1. 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.
    2. mtd -e kernel0 write /tmp/fw.bin kernel0 Der Befehl entsperrt den Flash-Speicher 0 und beschreibt diesen mit der zuvor übertragenen Firmware.
    3. mtd -r -e kernel1 write /tmp/fw.bin kernel1 Wiederholen von Schritt 2 für Flash-Speicher 1 und Reboot.
    4. 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.