VPN: Wireguard landet nach großen Problemen neu in FreeBSD

Die geplante Implementierung von Wireguard in FreeBSD war so schlecht, dass nur noch massiver persönlicher Einsatz das Projekt retten konnte.

Artikel veröffentlicht am ,
Das Wireguard-Maskottchen ist ein Drache.
Das Wireguard-Maskottchen ist ein Drache. (Bild: Pixabay)

Die moderne VPN-Technologie Wireguard läuft nun auch offiziell mit Unterstützung der Wireguard-Community im Kernel des freien Betriebssystems FreeBSD. Die Integration umfasst auch einige Userland-Werkzeuge und die nun verfügbare Implementierung sollte im Großen und Ganzen korrekt funktionieren, wie der Wireguard-Gründer Jason Donenfeld auf der Mailingliste des Projekts ankündigt. Dafür musste der Code aber einmal völlig überarbeitet werden und Donenfeld kritisierte den bisherigen Ansatz extrem harsch.

Stellenmarkt
  1. Operations Manager (m/w/d)
    Gunnar Kühne Executive Search GmbH, Frankfurt am Main
  2. IT-Professional / Bioinformatiker (m/w/d)
    Bayerisches Landeskriminalamt, München
Detailsuche

Begonnen wurden die Arbeiten an dem Wireguard-Port für FreeBSD vor etwa einem Jahr durch Matthew Macy, der dies für das Unternehmen Netgate umgesetzt hat, das wiederum Hauptsponsor der Firewall-Distribution Pfsense ist. Die so entstandenen Arbeiten sind letztlich Ende November 2020 größtenteils in FreeBSD gelandet.

Laut Donenfeld scheiterten dessen Versuche jedoch, mit den dafür Verantwortlichen in Kontakt zu treten. Der Code des Ports ist letztlich dennoch in FreeBSD importiert worden und der zuständige Entwickler hat sich anderen Projekten zugewendet. Wohl nur durch Zufall ist Donenfeld dann vor Kurzem erneut auf den Port aufmerksam geworden.

C wie es nicht sein sollte

In der anschließenden Diskussion wurde dann wohl schnell klar, dass der bestehende Code grundsätzlich überarbeitet werden musste, was Donenfeld gemeinsam mit dem FreeBSD-Entwickler Kyle Evans sowie mit Matt Dunwoodie umsetzte, der für den OpenBSD-Port von Wireguard zuständig war.

Golem Akademie
  1. Penetration Testing Fundamentals: virtueller Zwei-Tage-Workshop
    17.–18. Januar 2022, Virtuell
  2. AZ-104 Microsoft Azure Administrator: virtueller Vier-Tage-Workshop
    13.–16. Dezember 2021, virtuell
Weitere IT-Trainings

Der zuvor in FreeBSD importierte Code war demnach von extrem schlechter Qualität. "Es gab wahllose Sleep-Aufrufe, um Race Conditions zu 'reparieren', Validierungsfunktionen, die nur True zurückgegeben haben, katastrophale kryptografische Schwachstellen, ganze Teile des Protokolls, die nicht implementiert wurden, Kernel-Panics, Umgehungen der Sicherheitsfunktionen, Überläufe, wahllose Printf-Anweisungen tief im Kryptocode, spektakulärste Buffer-Overflows und die ganze Litanei schrecklicher Dinge, die schief gehen, wenn die Leute nicht aufpassen, wenn sie C-Code schreiben".

Darüber hinaus hat der ursprüngliche Port auf FreeBSD einfach 40.000 Zeilen optimierten Kryptocode aus dem Linux-Kompatabilitätsmodul kopiert. Dieser sei aber nicht richtig integriert worden und mit einem Labyrinth aus Ifdef-Anweisungen verschränkt gewesen. Die drei beteiligten Entwickler haben den Code nun in gut einer Woche komplett überarbeitet und dabei im Prinzip wohl fast vollständig neu geschrieben. Lediglich die auch zuvor schon aus OpenBSD übernommenen Teile bleiben dabei unverändert.

Unabhängig von dieser Diskussion hat das Pfsense-Projekt bereits Mitte Januar eine Vorschau auf Wireguard in Pfsense 2.5 veröffentlicht, die noch auf dem alten FreeBSD-Code basiert, den Donenfeld und seine Mitstreiter nun ersetzt haben. Der Code ist dann letztlich auch mit Pfsense Plus 21.02 und mit Pfsense CE 2.5 Mitte Februar stabil veröffentlicht worden. Ob das Pfsense-Team nun seinen Code gegen den neuen FreeBSD-Code austauscht, ist derzeit noch nicht bekannt.

Aufgrund der vergleichsweise überstürzten Aktion wird der nun neue Wireguard-Code wohl nicht schon wie ursprünglich geplant mit dem kommenden FreeBSD 13 aktiviert, das in wenigen Wochen erscheinen soll. Laut Donenfeld ist jedoch eine stabile Veröffentlichung mit dem nachfolgenden FreeBSD 13.1 wahrscheinlich. Bis dahin sollen auch noch einige weitere Integrationen in den FreeBSD-Code umgesetzt werden. Hinzu kommen soll außerdem noch ein unabhängig installierbares Modul, dass als Backport sogar noch in FreeBSD 12 genutzt werden kann.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Stefan Eßer 18. Mär 2021

Das hat das FreeBSD-Projekt auch so gesehen und deshalb den gesamten Code wieder aus dem...

Stefan Eßer 18. Mär 2021

Nein, absolut kein Zufall. Warum ist das seltsam? Der ist doch nicht der Einzige, der...

waterwalker 16. Mär 2021

Die Firma ist sehr "seriös" schau mal auf den Wikipedia Artikel und lies dir durch, was...



Aktuell auf der Startseite von Golem.de
Resident Evil (1996)
Grauenhaft gut

Resident Evil zeigte vor 25 Jahren, wie Horror im Videospiel auszusehen hat. Wir schauen uns den Klassiker im Golem retro_ an.

Resident Evil (1996): Grauenhaft gut
Artikel
  1. Streaming: Chromecast erhält spezielle Youtube-Fernbedienung
    Streaming
    Chromecast erhält spezielle Youtube-Fernbedienung

    Die Steuerung von Youtube auf einem Chromecast soll mit einer neuen Funktion deutlich komfortabler werden.

  2. Studie: Kinder erhalten Smartphone meist zwischen 6 und 11 Jahren
    Studie
    Kinder erhalten Smartphone meist zwischen 6 und 11 Jahren

    Nur eine sehr geringe Minderheit der Eltern will ihrem Kind erst mit 15 Jahren ein Smartphone zur Verfügung stellen.

  3. Google: Kopfhörer verlieren Google-Assistant-Support auf iPhones
    Google
    Kopfhörer verlieren Google-Assistant-Support auf iPhones

    Wer Google Assistant am Kopfhörer benutzen will, ist künftig auf ein Android-Gerät angewiesen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Saturn-Advent: Samsung Portable SSD T5 1 TB 84€ • ViewSonic VX2718-2KPC-MHD (WQHD, 165 Hz) 229€ • EPOS Sennheiser GSP 670 199€ • EK Water Blocks Elite Aurum 360 D-RGB All in One 205,89€ • KFA2 Geforce RTX 3070 OC 8 GB 1.019€ • Alternate (u. a. AKRacing Core SX 269,98€) [Werbung]
    •  /