Firmwareinstallation/Xiaomi Mi Router 4A

Aus Freifunk Franken
Wechseln zu:Navigation, Suche

Installation

Da die OpenWrt-Firmware des Routers noch nicht final ist, sollte zuerst auf der offiziellen OpenWrt Seite nachgelesen werden: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#openwrt_support

Aktuell (Dezember 2021) ist dieser Firmware Exploit der einfachste Weg: https://github.com/acecilia/OpenWRTInvasion

Zusätzlich gibt es eine Videozusammenfassung, welche als Refernz dienen kann. bitte beachtet aber die Hinweise im oben verlinkten Git Repository: https://www.youtube.com/watch?v=VxzEvdDWU_s

Hier die Zusammenfassung (für Linux):

  1. Testing-FFF-Firmware herunterladen: https://fw.sgstbr.de/testing/20210829/layer3/
  2. OpenWrt-Firmware herunterladen: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#installation
  1. Router WAN-port mit Internet verbinden
  2. PC per LAN-Kabel mit einem der beiden LAN-Ports verbinden
  3. Mit 192.168.31.1 verbinden und Router initial einrichten
  4. Stok auslesen: Erneut im Router einloggen. Die URL beinhaltet etwas wie stok=3700b146c87e45fea51170f87f47d34c
  1. Git Repository klonen https://github.com/acecilia/OpenWRTInvasion
  2. python3-pip installieren
  3. Im geklonten repository "python3 remote_command_execution_vulnerability.py" ausführen
  4. IP Adresse des Routers und Stok (nur den Part hinter dem =) eingeben
  5. telnet auf den Router (root:root)
  6. Firmware nach /tmp/firmware.bin
  7. Prüfe Checksum: ./busybox sha256sum firmware.bin
  8. Installation mit mtd -e OS1 -r write firmware.bin OS1
  1. Nach Reboot Login mit OpenWrt Defaults (192.168.1.1 Username: root kein Passwort)
  2. FFF-Testing-FW installieren: sysyupgrade -n --force /tmp/fff-testing-firmware.bin


Für Windows gibt es eine Dockervariante, beschrieben im OpenWRTInvasion-Git. (Nicht getestet, SebaBe, Dezember 2021)

Konfiguration

Die Testing-FW läuft bereits mit DSA.

Die Namen der Interfaces von links nach rechts sind "wan", "lan1" und "lan2". Bei DSA gilt die Syntax <if-name>:* für untagged, bzw. <if-name>:t für tagged:

Beispiel:

 config gateway 'meta'
         option config_version '2'
 #FFF Client
 config vlan '1'
         option comment 'client'
         option ports 'wan:t lan1:* lan2:*'
 #WAN Uplink
 config vlan '2'
         option comment 'wan'
         option ports 'wan:*'
 #Client Konfiguration
 config client
         option vlan '1'
         list ip6addr 'fd43:5602:29bd:XXXX::1/64'
         list ip6addr '2a0b:f4c0:XXXX:XXXX::1/64'
         list ipaddr '10.83.XXX.1/24'
         option dhcp_start '10.83.XX.50'
         option dhcp_limit '200'
         option essid 'name.freifunk'
         option chan2ghz '11'
         option chan5ghz '36'
 #Vlan für WAN festlegen
 config wan
         option vlan '2'
 #DNS Konfiguration
 config dns
         list server 'fd43:5602:29bd:ffff::42'
         list server 'fd43:5602:29bd:ffff:a:a:a:a'
         list server 'fd43:5602:29bd:ffff::252'
 #Wireguard Peering
 config wireguardpeer 'f3n'
         option endpoint_host 'HOST'
         option endpoint_port 'PORT'
         option persistent_keepalive '25'
         option remote_public_key 'XXXX'
         option local_private_key 'XXXX'
         option rxcost '16384'  #Anpassen je nach Anbindung
         option mtu '1420'