Die Veröffentlichung eines freien, plattformübergreifenden UNIX-ähnlichen Betriebssystems . Das OpenBSD-Projekt wurde 1995 von Theo de Raadt gegründet, nachdem mit den Entwicklern von NetBSD kam, wodurch Theo der Zugang zum CVS-Repository von NetBSD verwehrt wurde. Daraufhin gründete Theo de Raadt mit einer Gruppe Gleichgesinnter auf der Basis des Quellbaum von NetBSD ein neues offenes Betriebssystem, dessen Hauptziele die Portabilität ( 13 Hardware-Plattformen), Standardisierung, korrekte Funktion, aktive Sicherheit und integrierte kryptografische Funktionen waren. Die Größe des vollständigen Installations- des Basis-Systems OpenBSD 6.5 beträgt 407 MB.
Neben dem Betriebssystem selbst ist das OpenBSD-Projekt bekannt für seine Komponenten, die in anderen Systemen verbreitet sind und sich als eine der sichersten und qualitativ hochwertigsten Lösungen etabliert haben. Zu ihnen gehören: ( OpenSSL), , der Paketfilter , die Routing-Demons , der NTP-Server , der Mailserver , der Multiplexer für Terminal-Fenster (ähnlich wie GNU Screen) , der Demon mit der Realisierung des IDENT-Protokolls, BSDL-Alternative zum GNU groff-Paket — , Protokoll zur Organisation von ausfallsicheren Systemen CARP (Common Address Redundancy Protocol), leichtgewichtig , Synchronisationswerkzeug für Dateien .
Zu den bemerkenswertesten Änderungen gehören: eine tragbare Version von bgpd, die an andere Betriebssysteme angepasst ist, die Beseitigung der Verwendung von Root-Rechten bei Xenocara und tcpdump, die Standardverwendung des Linkers LDD für amd64 und i386, deutlich verbesserte MPLS-Unterstützung, verstärkter Schutz vor Exploits durch Rücksprungorientiertes Programmieren (ROP), ein einfacherer rekursiver DNS-Server namens unwind, sowie die Integration eines Detektors für undefiniertes Verhalten in den Kernel, und eine eigene Implementierung des rsync-Werkzeugs.
Haupt :
- Beim Build für die Architekturen amd64 und i386 wird standardmäßig der von LLVM entwickelte Linker LDD verwendet. Für die Architektur mips64 wurde die Unterstützung für Builds mit Clang hinzugefügt;
- Neue Treiber pvclock für den paravirtualisierten KVM-Timer und ixl für Intel Ethernet 700. Der uaudio-Treiber wurde durch eine neue Implementierung mit Unterstützung für USB Audio 2.0 ersetzt.
- Die Leistung der Treiber für drahtlose Geräte wie bwfm, iwn, iwm und athn wurde verbessert. Der drahtlose Stack unterstützt nun RTM_80211INFO-Nachrichten, um detaillierte Informationen über den Status der Schnittstelle an die Befehle dhclient und route zu übertragen. Das Standardverhalten beim Verbinden mit drahtlosen Netzwerken wurde geändert – wenn eine konfigurierte Liste für die automatische Verbindung vorhanden ist, verbindet sich OpenBSD jetzt nicht mit unbekannten offenen Netzwerken (um das frühere Verhalten wiederherzustellen, kann ein leeres Netzwerk zur Liste hinzugefügt werden);
- Im Netzwerkstack wurden neue Treiber für pseudogeräte eingeführt: bpe (Backbone Provider Edge) und mpip (MPLS IP Layer 2). Für MPLS-Schnittstellen wurde die Unterstützung für die Konfiguration alternativer Routing-Domänen hinzugefügt. Der VLAN-Treiber funktioniert nun ohne die Verarbeitung von Warteschlangen mit direkter Ausgabe an die übergeordnete Netzwerkschnittstelle. In ifconfig wurde der txprio-Modus hinzugefügt, um die Kodierung der Prioritäten in den Headern der tunnellierten Pakete zu steuern (unterstützt für die Treiber vlan, gre, gif und etherip);
- Die Implementierung des BPF-Filters ermöglicht die Anwendung eines Drop-Mechanismus ohne Paketaufzeichnung. Diese Funktion wird in tcpdump verwendet, um die Filterung zu Beginn der Paketannahme durch das Gerät durchzuführen.
- Der Installer unterstützt jetzt um ein Disk-Image in den RAMDISK des Kernels hinzuzufügen. Bei der Systemaktualisierung wurden einige Komponenten älterer Versionen entfernt.
- Der Systemaufruf , der den Zugriff auf das Dateisystem isoliert, wurde verbessert. In der neuen Version wird die Übereinstimmung mit dem Arbeitsverzeichnis des aktuellen Prozesses beim Parsen relativer Pfade erkannt. Die Verwendung von stat und access für eingeschränkte Komponenten von Dateipfaden ist verboten. Für die Anwendungen ospfd, ospf6d, rebound, getconf, kvm_mkdb, bdftopcf, Xserver, passwd, spamlogd, spamd, sensorsd, snmpd, htpasswd und ifstated wurde ein Schutz unter Verwendung von unveil implementiert.
- In Clang wurden die Mittel zur Blockierung von Rücksprung-orientierter Programmiermethoden (ROP) verbessert, was die Anzahl polymorpher Gadgets in den resultierenden ausführbaren Dateien für i386- und amd64-Architekturen erheblich reduziert hat.
- In Clang wurden Leistung und Sicherheit verbessert.
Schutzmechanismus , der darauf abzielt, die Durchführung von Exploits zu erschweren, die mit Hilfe von Code-Injektionen und Techniken des Rückgabeorientierten Programmierens erstellt wurden. Um die Leistung zu steigern, werden Daten nach Möglichkeit in Registern statt im Stack platziert, und beim Rückgeben wird der Prozessor-Cache effizienter genutzt. RETGUARD wird jetzt auch anstelle des traditionellen Stackschutzes auf amd64- und arm64-Systemen verwendet; - Die mit dem Netzwerk-Stack verbundenen Tools wurden verbessert: In pcap-filter wurde die Unterstützung für die Filterung von MPLS-Paketen hinzugefügt. In ospfd, ospf6d und ripd wurde die Möglichkeit zur Anpassung der Routing-Prioritäten eingebaut.
In ripd wurde ein Schutzmechanismus basierend auf hinzugefügt. In ifconfig wurden die Modi sff und sffdump hinzugefügt, um diagnostische Informationen von optischen Sendern zu erhalten; - Die erste Version des neuen Resolvers , der rekursive DNS-Anfragen verarbeitet und nur auf der Schnittstelle 127.0.0.1 Verbindungen akzeptiert.
Unwind ist für den Einsatz auf Clientsystemen wie Laptops ausgelegt, die zwischen verschiedenen drahtlosen Netzwerken wechseln. Bei Erkennung von DNS-Traffic-Blockierungen im lokalen Netzwerk wechselt Unwind zur Nutzung der über DHCP zugewiesenen Adresse des rekursiven DNS-Servers. Dabei versucht es jedoch weiterhin regelmäßig, die Auflösung selbst durchzuführen. Sobald direkte Anfragen wieder erfolgreich sind, kehrt es zur eigenständigen Abfrage der DNS-Server zurück. - Im bgpd wurde eine Arbeit zur Reduzierung des Speicherverbrauchs durchgeführt, ein einfacher Optimierer für Regeln hinzugefügt (führt das Zusammenführen von Filterregel, die sich nur in den Filtergruppen unterscheiden, durch), der Prozess zur Konfiguration von BGP MPLS VPN wurde geändert, Unterstützung für IPv6 BGP MPLS VPN hinzugefügt, die Funktionalität „as-override“ umgesetzt, um den AS des Nachbarn durch den lokalen AS in den Pfaden zu ersetzen, die Möglichkeit zur Zuordnung mehrerer Communitie in einer Regel hinzugefügt, neue Merkmale für Zuordnungen „*“, „local-as“ und „neighbor-as“ hinzugefügt, die Arbeit mit großen Regelmengen verbessert, neue Befehle zur Arbeit mit Gruppen von Nachbarautonomen Systemen hinzugefügt („bgpctl neighbor group“, „bgpctl show neighbor group“, „bgpctl show rib neighbor group“), im bgpctl wurde die Möglichkeit hinzugefügt, Netzwerke in die BGP VPN-Tabellen einzufügen. Zum ersten Mal wurde eine tragbare Version von OpenBGPD-portable vorbereitet, die für Systeme, die sich von OpenBSD unterscheiden, einsatzbereit ist;
- Option hinzugefügt um Fälle von undefiniertem Verhalten im OpenBSD-Kernel zu identifizieren.
- Das Tool tcpdump ist vollständig von der Verwendung von Root-Rechten befreit;
- Die Leistung von malloc in multithreaded Anwendungen wurde verbessert;
- Eine erste Version des Programms wurde hinzugefügt mit einer eigenen Implementierung des Datei-Synchronisierungs-Tools rsync;
- Die Version des Mailservers OpenSMTPD wurde aktualisiert. In der smtpd.conf wurde ein neues Abgleichkriterium „from rdns“ hinzugefügt, das es ermöglicht, Sendeadressen basierend auf der Reverse-DNS-Auflösung (Bestimmung des Hostnamens anhand der IP) auszuwählen. Bei der Suche in den Tabellen wurde die Möglichkeit zur Anwendung von regulären Ausdrücken hinzugefügt;
- Das Paket OpenSSH 8.0 wurde aktualisiert, eine detaillierte Übersicht über die Verbesserungen ist verfügbar. ;
- Das Paket LibreSSL wurde aktualisiert, eine ausführliche Übersicht der Verbesserungen kann in den Release-Ankündigungen eingesehen werden. und ;
- In Mandoc wurde die HTML-Ausgabe erheblich verbessert, die Darstellung von Tabellen wurde optimiert, und die Option „-O“ wurde hinzugefügt, um eine Seite mit der Definition eines bestimmten Begriffs zu öffnen;
- Die Funktionen des grafischen Stacks Xenocara wurden erweitert: Der X-Server benötigt zum Starten nun keine Installation mit dem setuid-Flag. Im Mesa-Treiber radeonsi wurde die Unterstützung für hardwarebeschleunigte Grafik für GPUs der Southern Islands (Radeon HD 7000) und Sea Islands (Radeon HD 8000) aktiviert;
- Ports in C++ für Architekturen, die in Clang nicht unterstützt werden, werden nun mit GCC aus den Ports kompiliert. Die Anzahl der Ports für die Architektur AMD64 beträgt 10.602, für aarch64 – 9.654, für i386 – 10.535. Folgende Anwendungen sind in den Ports vermerkt:
- Asterisk 16.2.1
- Audacity 2.3.1
- CMake 3.10.2
- Chromium 73.0.3683.86
- FFmpeg 4.1.3
- GCC 4.9.4 und 8.3.0
- GNOME 3.30.2.1
- Go 1.12.1
- JDK 8u202 und 11.0.2+9-3
- LLVM/Clang 7.0.1
- LibreOffice 6.2.2.2
- Lua 5.1.5, 5.2.4 und 5.3.5
- MariaDB 10.0.38
- Mono 5.18.1.0
- Mozilla Firefox 66.0.2 und ESR 60.6.1
- Mozilla Thunderbird 60.6.1
- Node.js 10.15.0
- OpenLDAP 2.3.43 und 2.4.47
- PHP 7.1.28, 7.2.17 und 7.3.4
- Postfix 3.3.3 und 3.4.20190106
- PostgreSQL 11.2
- Python 2.7.16 und 3.6.8
- R 3.5.3
- Ruby 2.4.6, 2.5.5 und 2.6.2
- Rust 1.33.0
- Sendmail 8.16.0.41
- SQLite3 3.27.2
- Suricata 4.1.3
- Tcl/Tk 8.5.19 und 8.6.8
- TeX Live 2018
- Vim 8.1.1048 und Neovim 0.3.4
- Xfce 4.12
- Komponenten von Drittanbietern, die in OpenBSD 6.5 enthalten sind:
- Grafik-Stack Xenocara basierend auf X.Org-Server 1.19.7 mit Patches, freetype 2.9.1, fontconfig 2.12.4, Mesa 18.3.5, xterm 344, xkeyboard-config 2.20;
- LLVM/Clang 7.0.1 (mit Patches)
- GCC 4.2.1 (mit Patches) und 3.3.6 (mit Patches)
- Perl 5.28.1 (mit Patches)
- NSD 4.1.27
- Unbound 1.9.1
- Ncurses 5.7
- Binutils 2.17 (mit Patches)
- Gdb 6.3 (mit Patches)
- Awk Aug 10, 2011
- Expat 2.2.6
Quelle: opennet.ru
