wydanie wolnego, wieloplatformowego systemu operacyjnego podobnego do UNIXa . Projekt OpenBSD został założony przez Theo de Raadta w 1995 roku po z deweloperami NetBSD, w wyniku którego Theo został pozbawiony dostępu do repozytorium CVS NetBSD. Po tym Theo de Raadt wraz z grupą zwolenników stworzył nowy otwarty system operacyjny na bazie drzewka kodu źródłowego NetBSD, którego głównymi celami rozwoju stały się przenośność ( 12 platform sprzętowych), standaryzacja, poprawne działanie, aktywne zabezpieczenia i wbudowane środki kryptograficzne. Rozmiar pełnego obrazu instalacyjnego podstawowego systemu OpenBSD 6.7 wynosi 470 MB.
Oprócz samego systemu operacyjnego, projekt OpenBSD jest znany ze swoich komponentów, które zyskały popularność w innych systemach i zdobyły reputację jednych z najbezpieczniejszych i najwyższej jakości rozwiązań. Wśród nich znajdują się: ( OpenSSL), , filtr pakietów , demony routingu , serwer NTP , serwer pocztowy , multiplexer terminali tekstowych (analog GNU screen) , demon z realizacją protokołu IDENT, alternatywa BSDL dla pakietu GNU groff — , protokół do organizacji systemów odpornych na awarie CARP (Common Address Redundancy Protocol), lekki , narzędzie synchronizacji plików .
Podstawowe :
- System plików FFS2, w którym używane są 64-bitowe wartości czasu i liczby bloków, domyślnie jest wykorzystywany w nowych instalacjach prawie we wszystkich obsługiwanych architekturach zamiast FFS (z wyjątkiem landisk, luna88k i sgi).
- Dodano nową metodę weryfikacji uprawnień do wywołań systemowych, która dodatkowo utrudnia wykorzystanie luk. Metoda zezwala na wykonywanie wywołań systemowych tylko wtedy, gdy są one wywoływane z wcześniej zarejestrowanych obszarów pamięci. W celu oznaczenia obszarów pamięci i aktywacji zabezpieczeń zaproponowano nową funkcję systemową msyscall().
- Liczba partycji, które można utworzyć na jednym dysku, zwiększono z 7 do 15.
- Kod analizy opcji w cron został przepisany, aby wspierać możliwości podobne do getopt, takie jak „-ns” oraz powtarzanie tych samych flag. Pole „options” w crontab zostało przemianowane na „flags”. Do crontab dodano flagę „-s”, przy której jednocześnie może być uruchomiony tylko jeden egzemplarz zadania. Dodano operator „~”, aby wskazać losową wartość czasu.
- W menedżerze okien cwm dodano możliwość określenia rozmiaru okna jako procent rozmiaru okna nadrzędnego w układzie mozaikowym.
- Dla architektury powerpc dokonano domyślnego przełączenia na użycie Clang oraz wykorzystano niezależną od architektury implementację mplock.
- W apmd poprawiono wsparcie dla automatycznego przechodzenia w stan uśpienia oraz oczekiwania (-z/-Z) — demon teraz reaguje na wiadomości o zmianie poziomu naładowania akumulatora, wysyłane przez sterownik kontrolujący zasilanie. Przechodzenie w stan uśpienia odbywa się z opóźnieniem 60 sekund, co daje użytkownikowi czas na przejęcie kontroli.
- Do wbudowanego serwera HTTP dodano zmienną konfiguracyjną $REQUEST_SCHEME, aby zachować pierwotny protokół (http lub https) podczas przekierowania, a także opcję „strip”, umożliwiającą korzystanie z wielu chroot w /var/www dla serwerów FastCGI.
- W narzędziu top dodano wsparcie dla przewijania za pomocą klawiszy 9 i 0.
- Wprowadzono mechanizm zwalniania stron pamięci w odwrotnej kolejności, znacznie zwiększający efektywność aktywnego zwalniania dużej liczby stron.
- W serwerze DNS unbound domyślnie włączono weryfikację DNSSEC.
- Usunięto globalne blokady z wywołań systemowych.
__thrsleep(2), __thrwakeup(2), close(2), closefrom(2), dup(2), dup2(2), dup3(2), flock(2), fcntl(2), kqueue(2), pipe(2), pipe2(2) oraz nanosleep(2), a także podstawowa część ioctl(2). - Rozszerzono obsługę sprzętu. Dodano nowy sterownik iwx dla bezprzewodowych chipów Intel AX200, a w sterowniku iwm dodano wsparcie dla urządzeń Intel 9260 i 9560. Dodano sterownik rge dla Realtek 8125 PCI Express 2.5Gb. Zaproponowano wiele nowych sterowników w celu poprawy działania na płytach arm64 i armv7, w tym dodano wsparcie dla płyty Raspberry Pi 4 oraz poprawiono wsparcie dla Raspberry Pi 2 i 3.
- Rozszerzony system dźwiękowy sndio. Dodano API sioctl_open oraz narzędzie sndioctl do zarządzania dźwiękiem przez sndiod. Usunięto /dev/mixer, a wszystkie porty zostały przeniesione na sndio zamiast interfejsu mixer jądra. W sndiod zapewniono wykorzystanie sprzętowych mechanizmów kontroli głośności. W celu zwiększenia bezpieczeństwa zablokowano dostęp zwykłych użytkowników do /dev/audio* oraz /dev/rmidi*.
- W stosie bezprzewodowym zakończono podłączanie do jakiejkolwiek dostępnej sieci Wi-Fi, która nie obsługuje szyfrowania, z wyjątkiem wyraźnego wywołania polecenia „ifconfig join”. Zapewniono uruchamianie skanowania w tle dostępnych sieci po wykonaniu polecenia „ifconfig scan” przez użytkownika root. Zwiększono pamięć podręczną wyników skanowania. Dodano flagę „nwflag nomimo” ustalaną przez ifconfig, która pomaga wyeliminować utratę pakietów w trybie 11n przy obecności niepodłączonych gniazd dla anten. Do sterownika bwfm dodano wsparcie dla aktywnego skanowania. Udoskonalono automatyczne przełączanie między sieciami bezprzewodowymi przez obniżenie priorytetu dla sieci, do których nie udało się połączyć.
- W stosie sieciowym pojawił się nowy sterownik pppac, do którego przeniesiono implementację interfejsu PPP Access Concentrator. Ustawienia npppd.conf zmieniono na wykorzystanie pppac zamiast tun. Przy wyłączonym przekazywaniu pakietów dodano sprawdzanie zgodności adresu docelowego w pakiecie z adresem interfejsu sieciowego. Usunięto wsparcie dla mobileip.
- Użytkownikom bez uprawnień root zabroniono użycia ioctl do zmiany adresu interfejsu sieciowego oraz zmiany parametrów interfejsów pppoe.
- W sysupgrade zapewniono uruchomienie aktualizacji oprogramowania układowego (fw_update) przed ponownym uruchomieniem w trakcie aktualizacji.
- Udoskonalono wywołanie systemowe unveil, które zapewnia izolację dostępu do systemu plików. Liczba aplikacji z podstawowego systemu, dla których wdrożono ochronę przy użyciu unveil, wzrosła do 82. W tym m.in. vmstat, iostat i systat przeszły na unveil.
- W crypto(3) dodano wsparcie dla RSA-PSS.
- W DNS rezolwerze unwind dodano wsparcie DoT (DNS przez TLS). Dodano polecenie „unwindctl status memory”.
- Znacząco zmodernizowano implementację ipsec. Dodano wsparcie dla automatycznego przenoszenia ruchu między rdomain podczas szyfrowania i deszyfrowania w celu ochrony przed atakami przez zewnętrzne kanały. W iked dodano wsparcie dla zmiany rdomain, a w iked.conf dodano opcję ‘rdomain’.
Dla iked i isakmpd domyślnie ustawiono poziom IPSEC_LEVEL_REQUIRE, który zabrania przetwarzania niezaszyfrowanych pakietów odpowiadających strumieniowi. Do ustawień grupy Diffie-Hellmana dla IKE SA dodano algorytmy curve25519, ecp256, ecp384, ecp521, modp3072 i modp4096. W iked zmieniono domyślną metodę uwierzytelniania na uwierzytelnianie za pomocą podpisu cyfrowego (RFC 7427). Dodano ustawienia ESN w iked.conf. Dodano opcję „-p” do wyboru niestandardowego numeru portu UDP. - Rozszerzono możliwości multiplexerów terminalowych tmux, dodano wiele nowych opcji.
- Zaktualizowano wersję serwera pocztowego OpenSMTPD. W wbudowanych filtrach wprowadzono słowo kluczowe „bypass” do pomijania przetwarzania w określonych warunkach. Zezwolono na wykorzystanie w filtrach nazwy użytkownika bieżącej sesji smtpd. W smtpd.conf w parametrach zezwolono na użycie mail-from i rctp-to.
- Zaktualizowano pakiet OpenSSH 8.2, w którym dodano wsparcie dla tokenów dwuetapowej weryfikacji tożsamości FIDO/U2F. Szczegółowy przegląd ulepszeń można zobaczyć. .
- Pakiet LibreSSL, w którym doprowadzono do gotowości implementację TLS 1.3 opartą na nowym automacie stanowym i subsystemie obsługi zapisów. Domyślnie włączona jest tylko część kliencka TLS 1.3, część serwerowa ma być aktywowana domyślnie w jednej z przyszłych wersji. Listę pozostałych zmian można zobaczyć w zapowiedziach wydań. i .
- Liczba portów dla architektury AMD64 wyniosła 11268, dla aarch64 — 10848, dla i386 — 10715. Zaktualizowano komponenty od zewnętrznych deweloperów, które są częścią OpenBSD 6.7:
- Stos graficzny Xenocara oparty na X.Org 7.7 z xserver 1.20.8 + łatki, freetype 2.10.1, fontconfig 2.12.4, Mesa 19.2.8, xterm 351, xkeyboard-config 2.20;
- LLVM/Clang 8.0.1 (z łatkami)
- GCC 4.2.1 (z łatkami) oraz 3.3.6 (z łatkami)
- Perl 5.30.2 (z łatkami)
- NSD 4.2.4
- Unbound 1.10.0
- Ncurses 5.7
- Binutils 2.17 (z łatkami)
- Gdb 6.3 (z łatkami)
- Awk z 20 grudnia 2012 r.
- Expat 2.2.8
Źródło: opennet.ru
