Die neueste Version des freien UNIX-ähnlichen Betriebssystems OpenBSD 7.5 wurde vorgestellt. Das OpenBSD-Projekt wurde 1995 von Theo de Raadt gegründet, nachdem es einen Konflikt mit den Entwicklern von NetBSD gab, der dazu führte, dass Theo den Zugang zum CVS-Repository von NetBSD verlor. Daraufhin entwickelte Theo de Raadt zusammen mit einer Gruppe Gleichgesinnter basierend auf dem Quellbaum von NetBSD ein neues offenes Betriebssystem, dessen Hauptziele Portabilität (Unterstützung von 13 Hardware-Plattformen), Standardisierung, Stabilität, proaktive Sicherheit und integrierte kryptografische Werkzeuge sind. Die Größe des vollständigen Installations-ISO-Images des basalen Systems OpenBSD 7.5 beträgt 630 MB.
Neben dem Betriebssystem ist das OpenBSD-Projekt für seine Komponenten bekannt, die in anderen Systemen weit verbreitet sind und sich als eine der sichersten und qualitativ hochwertigsten Lösungen etabliert haben. Dazu gehören: LibreSSL (ein Fork von OpenSSL), OpenSSH, der Paketfilter PF, die Routing-Dämonen OpenBGPD und OpenOSPFD, der NTP-Server OpenNTPD, der Mailserver OpenSMTPD, der Terminalsynchronisierer tmux (eine Alternative zu GNU screen), der identd-Dämon mit der Implementierung des IDENT-Protokolls, die BSDL-Alternative zum GNU groff-Paket – mandoc, das Protokoll zur Einrichtung von ausfallsicheren Systemen CARP (Common Address Redundancy Protocol), ein leichter HTTP-Server und das Dateisynchronisierungstool OpenRSYNC.
Wesentliche Verbesserungen:
- Der Installer hat die Unterstützung für die Verschlüsselung der Root-Partition hinzugefügt. Im automatisierten Installationsmodus (autoinstall) besteht die Möglichkeit, die Festplattenverschlüsselung mit der Angabe eines im Klartext verwendeten Passworts oder der Bereitstellung von Schlüsseln auf einem separaten Träger zu aktivieren. Die Builds für die Architektur AMD64 cdXX.iso und installXX.iso wurden für den Bootvorgang im EFI-Modus angepasst.
- Ein systemaufruf namens pinsyscalls wurde hinzugefügt, der den Zugriff auf Systemaufrufe nur aus bestimmten Bereichen des Adressraums des Prozesses erlaubt. Der Kernel und ld.so können den genauen Eingangspunkt jedes Systemaufrufs registrieren, der von Programmen und der libc.so-Bibliothek verwendet wird, um anschließend den Versand von Systemaufrufen aus nicht registrierten Orten zu blockieren.
- Die Unterstützung für indirekten Zugriff auf Systemaufrufe über die Funktion syscall wurde entfernt. In Kombination mit pinsyscalls ermöglicht diese Änderung das Verbot des direkten Zugriffs auf Systemaufrufe ohne die Verwendung von Bindings, die in der libc bereitgestellt werden. Pakete, in denen direkter Zugriff auf Systemaufrufe auftritt, wie Perl und Go, wurden modifiziert, um nur Funktionen aus der libc zu verwenden.
- Auf ARM64-Systemen wurde die Nutzung von Pointer Authentication (PAC) und Branch Target Identification (BTI) Mechanismen erweitert.
- Im Netzwerkinterface ppp wurde hinzugefügt IPv6-Unterstützung.
- In dem Tool netstat wurde die Ausgabe von Statistiken zur Effektivität des Routen-Cachings implementiert (in der Ausgabe von „netstat -s“ werden jetzt Treffer- und Fehlschlagszähler angezeigt).
- Im Paketfilter pf wurden Änderungen am Netzwerk-Stack berücksichtigt, die mit der Parallelisierung von Operationen auf Multiprozessorsystemen verbunden sind. Bei der Ausführung des Tools tcpdump mit dem Netzwerkinterface pflog wird die Anzeige von Paketen sichergestellt, die beim Auslösen der Standardregel mit der Aktion „block“ verworfen wurden. Für Regeln mit der Aktion „pass“ wird die Anzeige von blockierten ungültigen Paketen ermöglicht. Im divert wurde eine Überprüfung der Korrektheit der Optionen in IPv4-Paketen hinzugefügt.
- Die Unterstützung für Multiprozessorsysteme (SMP) wurde verbessert. Die Timeout-Handler im Netzwerk-Stack, die Paketzählung für das Loopback-Interface und das Modul vscsi_filtops wurden als mp-safe eingestuft. Es wurde die Möglichkeit für parallele Ausführungen der Systemaufrufe bind und connect sowie für Operationen mit UDP-Tabellen für IPv4 und IPv6 gewährleistet. Die Unterstützung für gleichzeitiges Senden von UDP-Paketen aus verschiedenen Threads wurde hinzugefügt.
- Die Verarbeitung von Situationen, in denen der Swap-Bereich überläuft, wurde verbessert; Änderungen wurden hinzugefügt, um gegenseitige Blockaden auszuschließen.
- Im Kern für arm64-Systeme wurde das Caching des Inhalts von Seitentabellenpools und PTE-Deskriptoren implementiert, was die Leistung auf Multicore-Systemen erheblich verbessert hat.
- Es wurden Verbesserungen am Hypervisor VMM vorgenommen. Die Implementierung des vionet-Geräts wurde neu geschrieben, um Multithreading und den Zero-Copy-Datenaustausch zwischen Host und Gastbetriebssystem zu unterstützen, ohne dass eine Zwischenpufferung erforderlich ist. Die Stabilität des Hypervisors wurde auf Intel VMX-Systemen erhöht. Zusätzlich wurde eine weitere Schutzmaßnahme gegen neu entdeckte Schwachstellen in Prozessoren, die mit spekulativer Ausführung von Befehlen und dem Auslesen von Restdaten aus Registern zusammenhängen, eingeführt.
- Für amd64-Systeme wurde sysctl machdep.retpoline hinzugefügt, um die Aktivierung des Retpoline-Mechanismus zum Schutz vor Spectre-Angriffen zu steuern.
- Die Implementierung des drm-Frameworks (Direct Rendering Manager) wurde mit dem Linux-Kernel 6.6.19 synchronisiert (in der vorherigen Version – 6.1.55).
- Unterstützung für neue Hardware wurde hinzugefügt, und neue Treiber, die mit Komponenten verschiedener SoCs, der Unterstützung von Ethernet-Controllern und der Verlagerung von Netzwerkoperationen auf die Seite der Netzwerkkarten in Verbindung stehen, wurden aufgenommen.
- Im Sound-System uaudio ist es erlaubt, mehrere Treiber für Audiogeräte anzuhängen.
- Treiber apldcp und apldrm wurden für die Grafikcontroller, die in Apple-Geräten verwendet werden, hinzugefügt. Für das Apple Powerbook wurde die Möglichkeit zur Steuerung der Tastaturbeleuchtung implementiert.
- Der Treiber qwx für drahtlose Qualcomm IEEE 802.11ax-Chips wurde durch Portierung des Treibers ath11k aus dem Linux-Kernel (Teil des Kernels seit Version 5.6) erstellt. Der Treiber ermöglicht den Einsatz drahtloser Adapter, die in Laptops wie dem Lenovo ThinkPad X13s und DELL XPS 9500 verwendet werden. Für die Funktion des Treibers ist die Installation von Firmware-Dateien erforderlich.
- Die Utility pax hat die Möglichkeit zur Schreiboperation in pax-Archive hinzugefügt, und die Utility tar unterstützt nun pax-Archive, die größer als 8 GB sind.
- In ifconfig wurde die Unterstützung zur Angabe von Portnummern für tunnelverwandte Netzwerkinterfaces wie gif und gre hinzugefügt.
- Im bgpd wurden der Mechanismus zur Nachrichtenübertragung und die meisten Parser für Protokolle auf die neue API für sichere Speicherverwaltung umgestellt.
- Im rpki-client wurde die experimentelle Unterstützung für den digitalen Signaturalgorithmus P-256 hinzugefügt. Es ist nun möglich, die Gültigkeit des RPKI Trust Anchors auf bestimmte autonome Systemnummern zu beschränken. Außerdem wurde die Unterstützung für RPKI signierte Präfixlisten (Signed Prefix List) implementiert.
- Im smtpd wurde die Unterstützung für RFC 7505 („Null MX“ zur Identifizierung von Servern, die keine E-Mails empfangen) hinzugefügt, und es wurde die Möglichkeit geschaffen, mehrzeilige Tabellen und Listen mit Filtern in smtpd.conf einzubetten. DomänenEs wurde die Möglichkeit geschaffen, eine benutzerdefinierte Umgebung von KDE Plasma 5.27 aus den Paketen kde-plasma und kde-plasma-extra zu installieren (nach dem Ende der Unterstützung von KDE4 blieb die Unterstützung für die Verwendung des Desktopumgebungen KDE Plasma 5 in OpenBSD nicht funktionsfähig). Zur Installation werden die Versionen KDE Plasma 5.27.10, KDE Applications 23.08.4 und KDE Frameworks 5.115.0 angeboten.
- Die Pakete LibreSSL und OpenSSH wurden aktualisiert. Eine detaillierte Übersicht über die Verbesserungen finden Sie in den Berichten zu LibreSSL 3.9.0, OpenSSH 9.6 und OpenSSH 9.7.
- Die Anzahl der Ports für die Architektur AMD64 beträgt: 12309 (vorher 11845), für aarch64 — 12145 (vorher 11508), für i386 — 10830 (vorher 10603). Unter den Versionen der Anwendungen in den Ports:
- Asterisk 16.30.1, 18.21.0, 20.6.0
- Audacity 3.4.2
- CMake 3.28.3
- Chromium 122.0.6261.111
- FFmpeg 4.4.4
- Firefox 123.0.1, ESR 115.8.0
- GCC 8.4.0, 11.2.0
- GHC 9.6.4
- GNOME 45
- Go 1.22.1
- Go 1.22.1
- JDK 8u402, 11.0.22, 17.0.10, 21.0.2
- Krita 5.2.2
- LLVM/Clang 13.0.0, 16.0.6, 17.0.6
- LibreOffice 24.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.6
- MariaDB 10.9.8
- Mono 6.12.0.199
- Mutt 2.2.13 und NeoMutt 20240201
- Node.js 18.19.1
- OCaml 4.14.1
- OpenLDAP 2.6.7
- PHP 7.4.33, 8.0.30, 8.1.27, 8.2.16, 8.3.3
- Postfix 3.8.6
- PostgreSQL 16.2
- Python 2.7.18, 3.9.18, 3.10.13, 3.11.8
- Qt 5.15.12 (+ kde Patches), 6.6.1
- R 4.2.3
- Ruby 3.1.4, 3.2.3, 3.3.0
- Rust 1.76.0
- SQLite 3.44.2
- Shotcut 23.07.29
- Sudo 1.9.15.5
- Suricata 7.0.3
- Tcl/Tk 8.5.19, 8.6.13
- TeX Live 2023
- Thunderbird 115.8.1
- Vim 9.1.139, Neovim 0.9.5
- Xfce 4.18.1
- Aktualisierte Komponenten von Drittanbietern, die Teil von OpenBSD 7.5 sind:
- Der Grafikstack Xenocara basiert auf X.Org 7.7 mit xserver 21.1.11 + Patches, freetype 2.13.0, fontconfig 2.14.2, Mesa 23.1.9, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.3.
- LLVM/Clang 16.0.6 (+ Patches)
- GCC 4.2.1 (+ Patches) und 3.3.6 (+ Patches)
- Perl 5.36.3 (+ Patches)
- NSD 4.8.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ Patches)
- Gdb 6.3 (+ Patch)
- Awk 22.01.2024
- Expat 2.6.0.
- zlib 1.3.1 (+ Patches).
Quelle: opennet.ru
