[Berlin-wireless] BBB-VPN-Server / OLSR HNA-hack

Philipp Borgers borgers at mi.fu-berlin.de
Di Mai 23 14:45:19 CEST 2017


On Tue, May 23, 2017 at 01:23:51PM +0200, Bastian Bittorf wrote:
> * Philipp Borgers <borgers at mi.fu-berlin.de> [23.05.2017 13:21]:
> > > > https://github.com/freifunk-berlin/olsrd/commit/37d65ccbd222985f3a59bd7601bddd4a89315918
> > > 
> > > Das ist ja alles ganz fürchterlich.
> > > Bitte tut da mal ein paar Kommentare in den Code.
> > 
> > Sehr hilfreicher Kommentar. Danke!
> 
> Ich selbst verstehe den code nicht ohne weiteres.
> Ich vermute jedoch derjenige, der den checkin machte.

olsr_input_hna verarbeitet eingehende OLSR-HNA-Nachrichten. Eine Nachricht kann
Informationen zu mehreren Präfixen enthalten, deshalb iterieren wir über die in
einer Nachricht enthaltenen Präfixe:

https://github.com/freifunk-berlin/olsrd/blob/37d65ccbd222985f3a59bd7601bddd4a89315918/src/hna_set.c#L435

Der Hack überprüft, ob es sich um einen Präfix handelt der eine Route ins
Internet announced (0.0.0.0/0):

https://github.com/freifunk-berlin/olsrd/blob/37d65ccbd222985f3a59bd7601bddd4a89315918/src/hna_set.c#L448

Ist dies der Fall verwerfen wir die Information zum Präfix in dem wir den
Speicherbereich mit Daten überschreiben, die wir noch bearbeiten wollen:

https://github.com/freifunk-berlin/olsrd/blob/37d65ccbd222985f3a59bd7601bddd4a89315918/src/hna_set.c#L452

Sollte es keine Daten geben, die wir zum Überschreiben nutzen können, gibt es
eigentlich auch nichts mehr zu tun und wir verlassen die Funktion.

Ziel des Hacks war es, HNAs die ins Internet (0.0.0.0/0 bzw. ::/0) führen nicht
weiterzuleiten. Das Verhalten ist unerwünscht, da wir über das BBB-VPN nur
Inseln ans Mesh anbinden wollten, aber keine Internet zur Verfügung stellen
wollten.

Gruß Philipp

Ps.: Höhere Programmiersprachen haben schon was für sich...
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.berlin.freifunk.net/pipermail/berlin/attachments/20170523/41a3fbb9/attachment.sig>


Mehr Informationen über die Mailingliste Berlin