Add installation guide for erx + mi4a
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Fabian Bläse 2022-12-01 19:57:38 +01:00
parent 325ca42a21
commit f99fe536b5
3 changed files with 220 additions and 0 deletions

View File

@ -0,0 +1,7 @@
---
title: "Hardware"
bookCollapseSection: true
date: 2022-12-01T17:25:00+01:00
---
{{< section >}}

View File

@ -0,0 +1,99 @@
---
title: "Ubiquiti ER-X / ER-X-SFP / EP-R6"
date: 2022-12-01T17:25:00+01:00
---
<!--more-->
## Installation
### OpenWrt installieren
{{< hint info >}}
Für den EP-R6 muss ein ausreichend aktuellen OpenWrt verwendet werden, damit die Installation per Web-UI funktioniert.
{{< /hint >}}
{{< hint info >}}
Die Installation per TFTP funktioniert nur, wenn der TFTP-Modus über die serielle Konsole aktiviert wird.
Der mit einem aktualisierten Bootloader hinzu gekommene TFTP-Modus per Reset-Button erwartet ein signiertes Image und funktioniert daher nicht.
{{< /hint >}}
{{< tabs >}}
{{< tab "Per Web-UI" >}}
Für die Installation über das Hersteller Web-UI kann ein spezielles initramfs Image verwendet werden.
Leider fehlt dieses Image in den OpenWrt Downloads, da die Standardkonfiguration zu groß ist.
Stattdessen kann dieses Image verwendet werden, um ein OpenWrt zu installieren: https://fw.sgstbr.de/tools/edgerouter-x/
Die für dieses Image verwendete OpenWrt Version und Konfiguration findet sich ebenfalls auf dieser Seite.
- Web UI öffnen und einloggen
- **Port:** `eth0`
- **IP-Konfiguration:** statisch, `192.168.1.2/24`
- **IP des Routers:** `192.168.1.1`
- **User:** ubnt
- **Passwort:** ubnt
- Image hochladen und installieren
{{< / tab >}}
{{< tab "Per TFTP" >}}
Zunächst muss das OpenWrt initramfs heruntergeladen werden: `*-initramfs-kernel.bin`.
Für OpenWrt 22.03.2:
- [EdgeRouter X](https://downloads.openwrt.org/releases/22.03.2/targets/ramips/mt7621/openwrt-22.03.2-ramips-mt7621-ubnt_edgerouter-x-initramfs-kernel.bin)
- [Edgerouter X SFP / EdgePoint R6](https://downloads.openwrt.org/releases/22.03.2/targets/ramips/mt7621/openwrt-22.03.2-ramips-mt7621-ubnt_edgerouter-x-sfp-initramfs-kernel.bin)
Das heruntergeladene Image booten (vgl. [OpenWrt Wiki](https://openwrt.org/inbox/toh/ubiquiti/ubiquiti_edgerouter_x_er-x_ka#serial_installation_with_tftp)):
- Über serielle Konsole anschließen ([pinout](https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka#serial))
- Während dem Booten die Option 1 auswählen
- Das heruntergeladene `-initramfs-kernel.bin` per TFTP bereitstellen:
```sh
mkdir tftp
cp ~/Downloads/*-initramfs-kernel.bin tftp/
cd tftp
sudo in.tftpd -l -L -s .
```
- Image per TFTP über eth0 booten (den Anweisungen des Bootloaders folgen)
Es ist nun ein OpenWrt gebootet, mit dem nun die Freifunk Firmware installiert werden kann.
{{< / tab >}}
{{< / tabs >}}
### Freifunk Firmware installieren
Mit dem nun laufenden OpenWrt kann die Freifunk-Firmware über SSH geflasht werden.
{{< hint info >}}
OpenWrt verwendet eine andere Portkonfiguration, daher muss jetzt auf den Port `eth1` gewechselt werden.
{{< /hint >}}
- Über den Port `eth1` in OpenWrt einloggen
- **Konfiguration des Laptops:** DHCP
- **IP des Routers:** 192.168.1.1
- **User:** root
- Freifunk Firmware flashen
```sh
scp -O ~/Downloads/fff-firmware.bin root@192.168.1.1:/tmp/
ssh root@192.168.1.1
# Wichtig: -n nicht vergessen!
sysupgrade -n /tmp/fff-firmware.bin
```
{{< hint info >}}
Die Portbelegung des Routers ändert sich abermals, dieses mal auf den von Freifunk gewohnten Standard:
- **eth0:** WAN
- **eth1, eth2:** BATMAN (falls node-Firmware)
- **eth3, eth4:** CLIENT
{{< /hint >}}
## Ports für Layer3 Konfiguration
- Alle Geräte
- `eth0:*` bzw. `eth0:t`
- `eth1:*` bzw. `eth1:t`
- `eth2:*` bzw. `eth2:t`
- `eth3:*` bzw. `eth3:t`
- `eth4:*` bzw. `eth4:t`
- Nur für ERX-SFP und EP-R6
- `eth5:*` bzw. `eth5:t`
## Links
- [OpenWRT Wiki](https://openwrt.org/toh/ubiquiti/edgerouter_x_er-x_ka)

View File

@ -0,0 +1,114 @@
---
title: "Xiaomi Mi Router 4A"
date: 2022-12-01T17:25:00+01:00
---
<!--more-->
{{< hint danger >}}
**Achtung!**
Es sind verschiedene Versionen des '''Xiaomi Mi 4A Gigabit''' im Umlauf, von denen sich aktuell einige nicht mit OpenWrt / Freifunk betreiben lassen.
Geräte, die ab September 2021 gefertigt wurden, sind mit einem anderen SPI Flash ausgestattet. Diese werden erst ab Firmwareversion 20221201 unterstützt. Ältere Firmwares führen zu einer Bootloop und dürfen daher nicht installiert werden.
Geräte mit Stock-Firmware 2.30.20 sind eine neue Hardware-Revision ("v2", "Xiaomi Router AC1200"). Diese lassen sich aktuell nicht mit OpenWrt / Freifunk betreiben.
{{< /hint >}}
## Installation
Zum Überschreiben der Herstellerfirmware ist ein Exploit des Web-UI nötig: https://github.com/acecilia/OpenWRTInvasion
**Videozusammenfassung** des Exploits: https://www.youtube.com/watch?v=VxzEvdDWU_s
Die Videoanleitung sollte nur als zusätzliche Hilfestellung, nicht aber als Referenz genutzt werden!
### Router vorbereiten
{{< hint warning >}}
**Achtung!**
Für den Mi Router 4A 100m (nicht Gigabit) ist eine ältere Herstellerfirmware nötig, da OpenWrt nicht mit dem Partitionslayout der neueren kompatibel ist.
{{< /hint >}}
{{< details "Herstellerfirmware downgraden" >}}
- Ältere Herstellerfirmware herunterladen: [bigota.miwifi.com](https://bigota.miwifi.com/xiaoqiang/rom/r4ac/miwifi_r4ac_firmware_e9eec_2.18.58.bin)
- Mit gedrückter Reset-Taste Strom verbinden und warten bis die LED orange blinkt
- DHCP Server bereitstellen, mit einem der beiden LAN-Port verbinden
- Auf dem Default-Gateway einen TFTP Server starten, Firmware als `test.bin` ablegen
- Beispiel für TFTP unter Linux:
```sh
sudo dnsmasq --no-daemon --bind-interfaces -p0 --dhcp-authoritative --dhcp-range=192.168.1.100,192.168.1.200 --log-dhcp --enable-tftp --tftp-root=$(pwd) --listen-address 192.168.1.1
```
- Warten, bis die blaue LED schnell blinkt
- Strom trennen und erneut verbinden
{{< /details >}}
- Router mit dem Internet verbinden (wichtig, da beim Installationsvorgang zusätzliche Daten vom Router aus dem Internet geladen werden müssen!)
- entweder über den WAN-Port
- oder per WiFi Client (Modus "WiFi Access Point", hier ändert sich allerdings die IP Adresse des Web-UI!)
- PC mit einem der beiden LAN-Ports verbinden, IPv4 Adresse per DHCP beziehen
- Mit **192.168.31.1** verbinden und Setup-Assistenten durchlaufen
- Stok auslesen: Im Web UI einloggen. Die URL in der Adresszeile beinhaltet etwas wie `stok#3700b146c87e45fea51170f87f47d34c`
### Exploit ausnutzen
Hierfür kann auch der [Anleitung des OpenWRTInvasion Exploits](https://github.com/acecilia/OpenWRTInvasion) gefolgt werden.
Für **Windows** gibt es eine Dockervariante, die in der oben verlinkten Anleitung beschrieben wird.
(nicht getestet)
- Git Repository klonen:
```sh
git clone https://github.com/acecilia/OpenWRTInvasion.git
```
- `python3-pip` installieren
- Im geklonten Repository `./remote_command_execution_vulnerability.py` ausführen:
```sh
cd OpenWRTInvasion
./remote_command_execution_vulnerability.py
```
- IP Adresse des Routers und stok (nur den Teil nach `stok#`) eingeben
### OpenWrt flashen
- Mit `telnet` auf dem Router einloggen (**User:** root, **Passwort:** root):
```sh
telnet 192.168.31.1
```
- OpenWrt sysupgrade Image nach /tmp/firmware.bin kopieren
```sh
cd /tmp
wget -O firmware.bin <firmware-url>
```
- Prüfsumme berechnen:
```sh
./busybox sha256sum firmware.bin
```
- Installieren:
```sh
mtd -e OS1 -r write firmware.bin OS1
```
Theoretisch kann hier auch direkt die Freifunk Firmware heruntergeladen und geflasht werden.
### Freifunk Firmware flashen
- Über LAN-Port in OpenWrt einloggen
- **IP:** 192.168.1.1
- **User:** root
- Freifunk Firmware flashen
- per Web-UI:
- System → Backup / Flash Firmware → "Flash new firmware image"
- **Wichtig**: "Keep settings" abwählen!
- per SSH:
```sh
scp -O ~/Downloads/fff-firmware.bin root@192.168.1.1:/tmp/
ssh root@192.168.1.1
# Wichtig: -n nicht vergessen!
sysupgrade -n /tmp/fff-firmware.bin
```
## Ports für Layer3 Konfiguration
- `wan:*` bzw. `wan:t`
- `lan1:*` bzw. `lan1:t`
- `lan2:*` bzw. `lan2:t`
## Links
- [OpenWRT Wiki (Gigabit)](https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition)
- [OpenWRT Wiki (100m)](https://openwrt.org/toh/xiaomi/mi_router_4a_mir4a_100m)