Firmware selber bauen

Ich habe gestern mal probiert die Firmware selber zu bauen, doch ich bin recht früh auf ein Problem gestoßen und zwar wird in dem Repository site-ffrn in der Datei modules auf das Repository ffrn-packages verwiesen. Dieses existiert jedoch nicht mehr oder ich habe keine Zugriffsrechte. Wo bekommt man den eine aktuelle site config her? Ich habe das ffrn repository jetzt erstmal auskommentiert und nutze nur das Repository von Freifunk Hochstift. Bisher ist es noch am kompilieren. Keine Ahnung also ob da was brauchbares herauskommt.

1 Like

Cool! Benutze mal den v1.2… Branch und lösche das Repository einfach aus der Config. Wir haben eh keine eigenen Pakete mehr.

Danke, das hatte ich schon gemacht. Nachdem ich die Images jetzt auf einem vServer mit 8 Kernen (keine dedizierten, aber immerhin) anstatt auf meinem Laptop kompiliert habe lief es auch einigermaßen zügig durch. Das x86-64 hat ungefähr eine halbe Stunde und ar71xx-generic etwa 15 Minuten gebraucht.

Ich habe es dann mal auf einen D-Link DIR-505 A1 gespielt und auf den ersten Blick scheint er zu funktionieren.
Ganz oberflächlich ist mir aber aufgefallen, das die Status Seite und der Config-Mode einen pinken Farbbalken anstatt dem grünen haben. Ob es weitere eventuell auch nicht nur optische Unterschiede zu einem der offiziellen builds gibt habe ich noch nicht untersucht.

Der Link oben scheint nicht zu funktionieren. Wenn man den IPv6 Anteil der URL gegen eine Domain tauscht geht es. Hat Discourse etwa Probleme mit IPv6 Links? Naja hier ist der Link als Text: http://[2a01:4f8:171:fcff:ceb2:55ff:fedc:30a9]/

Also die Farbunterschiede scheinen einfach zwei CSS Files (Status und Setup) zu sein. Da muss man die Farbwerte austauschen und das File vor dem eigentlichen kompilieren kompilieren. Steht aber auch in den Dateien drin. Interessant wäre es zu wissen, ob es noch andere nicht wirklich dokumentierte Veränderungen gibt. Ansonsten scheint meine Firmware aber zu funktionieren.

Falls es auch mal ein anderer probieren will, das Skript um mir automatisch einen nightly Build zu erzeugen findet sich hier auf GitHub.

Und was mich schon länger etwas stört ist, das fw.ffrn.de zwar ein gültiges TLS Zertifikat hat, aber nicht automatisch umgeleitet wird. Mir ist bewusst, dass das nicht so einfach ist, da die Router von der Domain auch ihre Updates ziehen und diese kein TLS drin haben um Platz zu sparen, aber wenn man die Redirect Regel noch darum ergänzt, das wenn man in einem der Ordner stable, beta, experimental oder nightly ist nicht umgeleitet wird ist das ja kein Problem. Aktuell bestünde eben rein theoretisch die recht einfache Möglichkeit, dass ein Angreifer die Datei beim Abruf manipuliert. Okay nicht so wahrscheinlich, aber eben auch einfach zu verhindern.
Für Apache, okay der Firmwareserver vom FFRN verwendet denke ich nginx, aber dort wird es es etwas sehr ähnliches geben, würde das folgende z.B. alles umleiten, außer eben die Firmware, welche im Ordner images liegt:

RewriteEngine on
RewriteCond %{SERVER_NAME} =fw.ff.tomhe.de
RewriteCond %{REQUEST_URI} !^/images.*
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Achso, falls sich jetzt jemand sorgen macht, die Updates sind signiert und die Router haben den öffentlichen Schlüssel mit dem die Signatur erzeugt wird eingebacken. Dementsprechend würde eine Manipulation dort nur dazu führen, das der Router kein Update macht.

1 Like

Nein, es ist ausschließlich die Farbe gepatched worden.

Naja… wenn ich eine Ausnahme für diese Pfade mache, ist der Download ja eh wieder unverschlüsselt. Der Effekt also gleich null. Das hilft leider nicht.

Danke, das ist gut zu zu wissen.

Doch das hilft, man geht ja zum Download mit dem Browser der TLS integriert hat auf die Startseite und wird umgeleitet. Und da der gluon-firmware-selector alle URLs nur relativ verlinkt, erfolgt auch der Firmware Download per HTTPS.

Aber das ist ja wirklich nicht so wichtig, ich möchten da wirklich explizit keine große Sache daraus machen, das ist mir halt nur aufgefallen und ich denke man könnte da irgendwann mal was machen, aber eben ein Projekt für irgendwann.

Jedenfalls Vielen Dank für deine Antwort!

@tomh Gute Idee, mit der Startseiten-Umleitung und TLS zu aktivieren halte ich immer für eine sinnvolle Überlegung. Alternativ könnte man auch zwei vhosts nutzen:

  1. Manueller Download komplett verschlüsselt über neue Domain firmware.ffrn.de. Bei der manuellen Installation findet in der Regel keine Signaturprüfung statt, so dass es hier einen Sicherheitsvorteil brächte. Diese Seite wird in FAQ/Wiki und auf www beworben und ggf. auf fw.ffrn.de verlinkt.

  2. Automatischer Download für Geräteupdates über fw.ffrn.de. Nur für automatisierte Zugriffe empfohlen, die eine Signaturprüfung sicherstellen.

Vorteil: fw.ffrn.de wird nicht nenneswert geändert.