Выпуск OpenBSD 6.8
Представлен выпуск свободной кросс-платформенной UNIX-подобной операционной системы OpenBSD 6.8. Выпуск сформирован в день двадцатипятилетия проекта, который был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS-репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 6.8 составляет 530МБ.
Кроме непосредственно операционной системы, проект OpenBSD известен своими компонентами, которые получили распространение в других системах и зарекомендовали себя как одни из наиболее безопасных и качественных решений. Среди них: LibreSSL (форк OpenSSL), OpenSSH, пакетный фильтр PF, демоны маршрутизации OpenBGPD и OpenOSPFD, NTP-сервер OpenNTPD, почтовый сервер OpenSMTPD, мультиплексор текстового терминала (аналог GNU screen) tmux, демон identd с реализацией протокола IDENT, BSDL-альтернатива пакету GNU groff — mandoc, протокол для организации отказоустойчивых систем CARP (Common Address Redundancy Protocol), легковесный http-сервер, утилита синхронизации файлов OpenRSYNC.
Основные улучшения:
- Обеспечена поддержка 64-разрядных систем на базе процессоров POWER8 и POWER9. Архитектура powerpc64 стала тринадцатой официально поддерживаемой в OpenBSD аппаратной платформой, не считая 20 устаревших платформ, поддержка которых была прекращена. В настоящий момент в списке официально поддерживаемых в OpenBSD архитектур упомянуты: alpha, amd64, arm64, armv7, hppa, i386, landisk, loongson, luna88k, macppc, powerpc64, octeon и sparc64.
- Реализована встроенная поддержка VPN WireGuard, включающая драйвер ядра «wg», поддержку в утилитах ifconfig и tcpdump с поддержкой функциональности WireGuard, документацию и изменения для интеграции WireGuard с остальной системой. В драйвере используется собственная реализация алгоритмов blake2s, hchacha20 и curve25519, а также уже присутствующие в ядре OpenBSD реализацию SipHash. Реализация совместима со всеми официальными клиентами WireGuard для Linux, Windows, macOS, *BSD, iOS и Android.
- ФС FFS2, в которой используются 64-разрядные значения времени и числа блоков, по умолчанию активирована для архитектур landisk, luna88k и sgi (для остальных платформ ФС FFS2 была включена в прошлом выпуске). FFS2 также теперь применяется по умолчанию в при создании новых ФС при помощи утилиты newfs. Повышена надёжность работы с очень крупными разделами FFS2. Повышена скорость обработки контрольных сумм в FFS2.
- В ядро и libc добавлена поддержка подсчёта времени в пространстве пользователя, позволяющая избежать переключения контекста каждый раз при запросе процессом текущего времени. Изменение позволяет повысить производительность и снизить задержки в приложениях, выполняющих большое число вызовов gettimeofday, например, браузеров и офисных приложений. Оптимизация включена для архитектур amd64, arm64, macppc, octeon и sparc64.
- Для систем AMD64 предложена функция tsc_delay () с реализацией варианта функции delay (9) на базе процессорной инструкции TSC (Time Stamp Counter).
- В пакетный фильтр pf добавлена поддержка перенаправления (divert) пакетов из bridge-интерфейсов в локальный сокет.
- Обеспечен выбор исходного адреса IPv6 на основе рекомендаций из пятого раздела RFC 6724.
- Установочные образы переименованы с *.fs в *.img для совместимости с некоторыми загрузчиками UEFI.
- Переписан код начального выбора энтропии для генератора псевдослучайных чисел с целью повышения качества работы вызова arc4random () на ранних стадиях загрузки.
- Для CPU ARM64 включён режим предотвращения привилегированного доступа (PAN — Privileged Access Never), не позволяющий ядру неявно обращаться к памяти пространства пользователя.
- В ядре реализован intrmap, API для сопоставления прерываний с CPU, применяемый в драйверах для использования нескольких CPU для обработки прерываний.
- Добавлен ioctl PCIOCGETVPD, позволяющий из пространства пользователя получить доступ к информации о PCI-устройствах через регистр vpd.
- Представлена подсистема kstat, позволяющая ядру передавать статистику в пространство пользователя.
- Для архитектур arm64, powerpc и powerpc64 предложена работающая на уровне ядра оптимизированная реализация функции ffs.
- В состав включена утилита login_ldap для аутентификации пользователя при помощи встроенного клиента ldap, вместо использования OpenLDAP.
- В утилите ftp появилась возможность определения поддерживаемых протоколов TLS при помощи опции »-S протоколы».
- Просмотрщик системных руководств (man) переключён на использование утилиты less для перелистывания страниц вместо команды «more -s».
- В sndioctl добавлена опция »-F» для переключения между альтернативными звуковыми устройствами.
- Расширены возможности утилиты video, применяемой для чтения и записи видеопотоков через /dev/video. Добавлена возможность установки параметров из командной строки. Добавлены параметры для управления цветовой температурой и компенсацией подсветки. Улучшена поддержка web-камер.
- Включена утилита btrace, позволяющая использовать систему динамической трассировки для инспектирования приложений.
- Предложен новый фреймворк для цифровых звуковых интерфейсов, а также драйверы simpleaudio для простых типовых звуковых карт (обеспечивает логическое связывание DMA-контроллера, кодека и aux-устройств, таких как усилитель) и simpleamp для типовых усилителей звука.
- Расширена поддержка оборудования. Реализация фреймвока drm (Direct Rendering Manager) синхронизирована с ядром Linux 5.7.19. Добавлен новый драйвер abl для управления яркостью подсветки экрана на компьютерах Apple. Для архитектуры i386 включена поддержка драйвера nvme для устройств NVMe или NVM Express. Добавлен драйвер для клавиатур Microsoft Surface Type Cover.
- В сетевых драйверах mcx и bnxt обеспечена поддержка аппаратных механизмов для обработки тегов VLAN и контрольных сумм. В драйверы iwm и iwx добавлена поддержка аппаратного ускорения операций шифрования WPA2 (CCMP). Добавлена поддержка Ethernet-контроллеров BCM5719 A1 и RK3308, и беспроводных адаптеров TP-Link TL-WN822N-EU v5/v4, D-Link DWA-121 rev B1, Intel AX201 и RockPro64 WiFi (BCM4359 SDIO).
- Расширены поддержка плат на базе архитектур arm64 и armv7, в том числе улучшена поддержка Raspberry Pi 4, Pinebook Pro, Amlogic SoC, ODROID-C4, Turris Mox, Marvell Armada 3700/8040, HummingBoard Pulse,
- В bgpctl добавлена поддержка вывода в формате JSON при выполнении команды «show». Увеличена производительность ospfd и ospf6d через применение setsockopt ROUTE_FLAGFILTER.
- Добавлена поддержка привязки snmpd к произвольному сетевому порту.
- В acme-client.conf добавлена опция «domain name», позволяющая указать несколько секций для одного домена и создавать rsa- и ecdsa-ключи для одного домена, а также опция «contact» для задания email для связи.
- В tcpdump добавлена начальная поддержка пакетов туннелей GENEVE.
- В утилиту top добавлена команда «t» для показа таблиц маршрутизации, а также предоставлена возможность фильтрации записей в таблице маршрутизации.
- В реализацию IPsec добавлена поддержка режима AES-GCM для IKEv2, для настройки которого в iked.conf для директивы «ikesa enc» предложены опции aes-128-gcm, aes-256-gcm, aes-128-gcm-12 и aes-256-gcm-12. AES-GCM включён по умолчанию для IKE и Child SA. Включена по умолчанию поддержка SHA2_384 и SHA2_512. В iked добавлена настройка «set enforcesingleikesa» для ограничения числа соединений для каждого пира. В iked.conf добавлена настройка «set cert_partial_chain» для возможности верификации частичных цепочек сертификатов при наличии доверенного промежуточного сертификата в /etc/iked/ca.
- Расширены возможности мультиплексора терминалов tmux, добавлено много новых опций.
- Обновлена версия почтового сервера OpenSMTPD, в котором устранено потенциальное переполнение стека при обработке соединений IPv6, а также устранены проблемы с обработкой имён пользователей, включающих символ »@». В таблице почтовых псевдонимов добавлена обработка очень длинных строк. Для спулов, доступных всем на запись, отключена поддержка mail.local.
- Обновлён пакет LibreSSL, в котором включена по умолчанию серверная часть TLS 1.3 в дополнение к ранее предложенной клиентской части. В TLS-сервере обеспечена обработка только корректных имён хостов в SNI, соответствующих требованиям RFC 5890 и RFC 6066. В реализации TLS 1.3 добавлена поддержка режима SSL_MODE_AUTO_RETRY для автоматической повторной отправки сообщений согласования соединения. В сервер и клиент TLS 1.3 добавлена поддержка отправки запросов проверки состояния сертификатов, используя расширение OCSP stapling (заверенный удостоверяющим центром ответ OCSP передаётся обслуживающим сайт сервером при согласовании TLS-соединения).
- Обновлён пакет OpenSSH 8.4. Подробный обзор улучшений можно посмотреть здесь.
- Число портов для архитектуры AMD64 составило 11234, для aarch64 — 10768, для i386 — 10548. Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 6.8:
- Графический стек Xenocara на базе X.Org 7.7 с xserver 1.20.8 + патчи, freetype 2.10.2, fontconfig 2.12.4, Mesa 20.0.8, xterm 351, xkeyboard-config 2.20;
- LLVM/Clang 10.0.1 (+ патчи)
- GCC 4.2.1 (+ патчи) and 3.3.6 (+ патчи)
- Perl 5.30.3 (+ патчи)
- NSD 4.3.2
- Unbound 1.11.0
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ патчи)
- Awk от 7 августа 2020 года
- Expat 2.2.8
Источник: http://www.opennet.ru/opennews/art.shtml? num=53911
© OpenNet