freifunk:infrastruktur:server:build

build.erfurt.freifunk.net

Dies ist der Firmware-Buildserver.

  • build.erfurt.freifunk.net
  • SSH (Port 1034)
  • rsync (Port 873)
  • Debian 8 (Jessie)
    • Installation-Optionen: SSH-Server, Standard-Systemutilities
  • Tools zum Bauen der Gluon-Firmware

Verzeichnisstruktur

Alle zum Bau notwendigen Quellen liegen im Ordner

  • /data/gluon

Für jede Upstream-Version der Firmware gibt es ein eigenes Verzeichnis.

  • upstream/2014.3
  • upstream/2014.3.1
  • upstream/trunk

Per Symlink zeigen die eigenen Branches

  • stable
  • beta
  • experimental

auf die passenden Upstream-Verzeichnisse.

Die fertigen Firmware-Images liegen im Ordner

  • /data/firmware-mirror

Signaturschlüssel

  • Privaten Schlüssel erstellen
    • ecdsakeygen -s > secret
  • Öffentlichen Schlüssel ableiten
    • ecdsakeygen -p < secret > public

Der private Schlüssel (secret) ist an sicherer Stelle abzuspeichern und vom Server zu löschen. Er wird nur zum Signieren der Firmware temporär auf den Server kopiert. Der öffentliche Schlüssel sollte im Wiki unter Firmware hinterlegt werden.

Firmware signieren

  • auf Server (als Benutzer) per SSH einloggen
  • Firmware signieren
    • bei der ersten Nutzung von sudo wird das eigene Serverpasswort benötigt („[sudo] password for USERNAME:“)
    • bei „Type in secret key:“ muss der eigenen private Firmware-Signaturschlüssel aus der Zwischenablage eingefügt werden
    • wenn alles geklappt hat gibt es keine weitere Ausgabe/Fehlermeldung
  • Stable-Version signieren
    • sudo -u freifunk /home/freifunk/sign.sh /data/gluon/stable/output/images/sysupgrade/stable.manifest
  • Beta-Version signieren
    • sudo -u freifunk /home/freifunk/sign.sh /data/gluon/beta/output/images/sysupgrade/beta.manifest
  • Experimental-Version signieren
    • sudo -u freifunk /home/freifunk/sign.sh /data/gluon/experimental/output/images/sysupgrade/experimental.manifest

Die Konfigurationsdateien für das VPN der Nodes liegt in

  • /data/vpn
  • mc
  • screen
  • make
  • git
  • python
  • bzip2
  • gcc
  • g++
  • libncurses-dev
  • libssl-dev
  • libz-dev
  • gawk
  • subversion
  • xz-utils
  • qemu-utils
  • time

Quellen

Debian-Pakete einbinden

mape2k baut mithilfe des openSUSE Build Service für ecdsautils und libuecc passende Debian-Pakete. Zur Installation muss nur das Repository und der GPG-Key des Repository eingebunden werden.

  • /etc/apt/sources.list.d/ecdsautils.list

/etc/apt/sources.list.d/ecdsautils.list

deb http://download.opensuse.org/repositories/home:/mape2k:/freifunk/Debian_8.0 ./

  • Repository-GPG-Key einbinden
    • wget -q http://download.opensuse.org/repositories/home:/mape2k:/freifunk/Debian_8.0/Release.key -O - | apt-key add -

Notwendige Pakete

Jetzt einfach das folgende Paket installieren:

  • ecdsautils

Notwendige Pakete

  • rsync

Konfiguration

  • /etc/rsyncd.conf

/etc/rsyncd.conf

uid = nobody
gid = nogroup
max connections = 25
socket options = SO_KEEPALIVE

[firmware]
  path = /data/firmware-mirror/
  comment = Firmware-Mirror Freifunk Erfurt
  read only = true

Nachbereitung / Start

  • systemctl enable rsync.service
  • systemctl start rsync.service

Notwendige Pakete

  • rsync

Konfiguration

  • /etc/rsyncd.conf

/etc/rsyncd.conf

uid = nobody
gid = nogroup
max connections = 25
socket options = SO_KEEPALIVE

[vpn]
  path = /data/vpn
  comment = VPN-Keys
  read only = true
  hosts allow = 62.141.56.190 2001:1b60:2:12:4328:6:0:909 88.198.234.12 2a01:4f8:201:240f:1::1

Unter „hosts allow“ sind die VPN-Server zu hinterlegen.

Nachbereitung / Start

  • systemctl enable rsync.service
  • systemctl start rsync.service
  • freifunk/infrastruktur/server/build.txt
  • Zuletzt geändert: 03.05.2020 17:52
  • von mape2k