Релиз операционной системы OpenBSD 5.7

Увидел свет релиз операционной системы OpenBSD 5.7, тридцать седьмой выпуск за девятнадцатилетнюю историю существования проекта. При развитии OpenBSD основное внимание уделяется переносимости (поддерживается 21 аппаратная платформа), стандартизации, корректной работе, активной безопасности и интегрированным криптографическим средствам. Размер полного установочного ISO-образа базовой системы составляет 208 Мб. Кроме непосредственно операционной системы, проект 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-сервер.

Основные улучшения:

Усиление безопасности: К адресному пространству ядра применён режим защиты памяти W^X (Write XOR Execute), при котором страницы памяти не могут быть доступными и на запись и на исполнение кода (или запись или исполнение, но не одновременно); Удалён код для поддержки загружаемых модулей ядра и procfs; Проведён обстоятельный аудит подсистем на предмет перехода на использование системного вызова reallocarray, позволяющего выделить память для нескольких отличающихся по размеру объектов без дополнительных затрат на очистку памяти, но с сохранением средств борьбы с целочисленными переполнениями; Проведена работа по замене вызовов select на poll; В качестве первого шага для минимизации возможности совершения атаки на раздел /var, директория /var/tmp преобразована в символическую ссылку на /tmp; В реализацию memcpy добавлена защита от перекрытия областей памяти, если факт подобного перекрытия выявлен, то программа принудительно завершается с выводом соответствующего предупреждения в syslog. При необходимости перекрытия областей следует использовать memmove; Вызовы rand, random, drand48, lrand48, mrand48 и srand48 переведены на использование генератора arc4random. Для получения детерменированных случайных числе введены новые функции srand_deterministic, srandom_deterministic, seed48_deterministic и lcong48_deterministic; При возврате из спящего и ждущего режимов, а также при пробуждении виртуальных машин, задействованы различные методы для сброса генератора случайных чисел; Все архитектуры переведены на статический формат PIE, т.е. все статически собранные исполняемые файлы в /bin и /sbin теперь содержат случаным образом расположенные сегменты «text»; Код ядра и ssh для работы с AES синхронизирован с кодом из OpenSSL/LibreSSL. В утилите passwd прекращена поддержка всех методов хэширования, кроме blowfish; В генераторе случайных чисел и при генерации начальных номеров последовательностей в TCP вместо MD5 задействован sha512; Добавлен драйвер xhci, обеспечивающий поддержку устройств с интерфейсом USB 3.0, соответствующих спецификации XHCI (eXtensible Host Controller Interface). Значительно расширена поддержка сетевых устройств, в том числе представлен новый драйвер iwm для беспроводных карт Intel 7260, 7265 и 3160; Для управления фоновыми процессами и системными сервисами представлена новая утилита rcctl; Из базовой системы удалены nginx и sendmail, вместо которых предлагается http-сервер собственной разработки и OpenSMTPD. Nginx и sendmail могут быть установлены из портов. Прекращена поддержка DNS-сервера BIND, вместо которого рекомендуется использовать nsd и unbound; Улучшения в сетевом стеке: Большинство операций с IP-адресами переведены на таблицы маршрутизации, заменившие собой RB-деревья и списки адресов IPv4. Для хэширования в пакетном фильтре PF, сетевых мостах, trunk-интерфейсах и PCB задействован алгоритм SipHash. Настройка CARP теперь требует явного создания родительского интерфейса carpdev. Слой mbuf избавлен от глобальной блокировки и признан mpsafe. Представлены новые структуры mbuf_list и mbuf_queue, а также API для работы с ними; Улучшения в инсталляторе: Наборы etc и xetc, в том числе включающие файлы rc и rc.conf, теперь не поставляются отдельно, а включены в состав наборов base и xbase. Улучшено определение файла со сценарием автоматизированной установки, если присутствуют файл /auto_install.conf или /auto_upgrade.conf инсталлятор теперь сразу запускает автоматический режим. Системы Syslogd и inetd переведены с select на libevent. В Syslogd добавлена поддержка отправки и приёма сообщений по UDP, TCP и TLS, при том, что для TCP и TLS реализованы средства автоматического восстановления соединения после разрыва канала связи; В tftp сняты ограничение на размер принимаемых и отправляемых файлов, которые не могли превышать 65536 байт; В реализации ряда функций libc для архитектуры amd64 задействованы быстрые ассемблерные оптимизации; Расширены возможности http-сервера от проекта OpenBSD. Прекращена поддержка SSLv2/3, улучшена поддержка ECDHE/DHE в TLS. Упрощено создание виртуальных хостов на основе определения псевдонимов по IP и именам хостов. Добавлена поддержка basic-аутентификации, определения своих кодов возврата, перенаправления и макросов для URL. Добавлена опция «root strip» для чистки начала пути для CGI-скриптов. Обеспечена возможность создания лога в директории, отличной от /var/www/logs. Реализация FastCGI доведена до совместимости с многими известными web-приложениями. В новой версии почтового сервера OpenSMTPD прекращена поддержка SSLv3, добавлена поддержка новых парсеров сообщений и заголовков, добавлена опция append-domain, обеспечена возможность отправки сообщений локальному пользователю без определения домена. Обновлён пакет OpenSSH 6.8, подробный обзор улучшений можно посмотреть здесь; Обновлён пакет OpenSSH 6.8, подробный обзор улучшений можно посмотреть здесь; Обновлён пакет LibreSSL 2.1.5, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.1.0, 2.1.2, 2.1.4 и 2.1.5. Число портов превысило 9000 (полгода назад было 8800). Из находящихся в портах приложений, отмечены: Chromium 40.0.2214.115 Emacs 21.4 и 24.4 GCC 4.8.4 и 4.9.2 GHC 7.8.4 GNOME 3.14.2 Go 1.4.1 Groff 1.22.3 JDK 1.7.0.71 KDE 3.5.10 и 4.14.3 LLVM/Clang 3.5 (20140228) LibreOffice 4.3.5.2 MariaDB 10.0.16 Mono 3.12.0 Mozilla Firefox 31.4.0esr и 35.0.1 Mozilla Thunderbird 31.4.0 Node.js 0.10.35 OpenLDAP 2.3.43 и 2.4.40 PHP 5.3.29, 5.4.38, 5.5.22 и 5.6.5 Postfix 2.11.4 PostgreSQL 9.4.1 Python 2.7.9 и 3.4.2 R 3.1.2 Ruby 1.8.7.374, 1.9.3.551, 2.0.0.598, 2.1.5 и 2.2.0 Sendmail 8.15.1 Tcl/Tk 8.5.16 и 8.6.2 TeX Live 2013 Vim 7.4.475 Xfce 4.10 Компоненты от сторонних разработчиков, входящие в состав OpenBSD 5.6: Xenocara, основанная на X.Org 7.7 с xserver 1.16.4 + patches, freetype 2.5.5, fontconfig 2.11.1, Mesa 10.2.9, xterm 314, xkeyboard-config 2.13; GCC 4.2.1 (с патчами) и 3.3.6 (с патчами); Perl 5.20.1 (с патчами) SQLite 3.8.6 (с патчами) Unbound 1.5.2 NSD 4.1.1 Sudo 1.7.2p8 Ncurses 5.7 Binutils 2.15 (с патчами) Gdb 6.3 (с патчами) Less 458 (с патчами) Awk в версии от 10 августа 2011 г. Послушать песню, приуроченную к выходу нового релиза, можно здесь.

© OpenNet