Увидел свет релиз операционной системы OpenBSD 5.6, тридцать седьмой выпуск за девятнадцатилетнюю историю существования проекта. При развитии OpenBSD основное внимание уделяется переносимости (поддерживается 21 аппаратная платформа), стандартизации, корректной работе, активной безопасности и интегрированным криптографическим средствам. Из наиболее значительных изменений можно отметить: замена openssl на libressl, применение по умолчанию opensmtpd, поддержка ФС ext4 в режиме чтения, поставка собственного http-сервера вместо apache, интеграция DNS-сервера Unbound, удаление ALTQ и Kerberos, значительная чистка от устаревших утилит, удаление из libc функции gets. Размер полного установочного ISO-образа базовой системы составляет 211 Мб.

Кроме непосредственно операционной системы, проект 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-сервер.

Подробнее об улучшениях:

  • Осуществлён переход на LibreSSL, форк проекта OpenSSL, нацеленный на обеспечение более высокого уровня безопасности, модернизацию кодовой базы и сокращение излишней и устаревшей функциональности. Основные отличия LibreSSL:
    • Прекращена поддержка устаревших и малоиспользуемых платформ, в том числе Mac OS (не путать с OS X), NetWare, OS/2 и VMS. Прекращена поддержка big-endian для i386 и amd64 (они всегда little-endian). Прекращена поддержка ОС Windows;
    • Удалены неуместные или завязанные на проприетарное оборудование движки шифрования IBM 4758, Broadcom ubsec, Sureware, Nuron, GOST, GMP, CSwift, CHIL, CAPI, Atalla и AEP;
    • Не поддерживается обеспечение совместимости с правительственными стандартами FIPS-140;
    • Прекращена поддержка кодировки EBCDIC (Extended Binary Coded Decimal Interchange Code);
    • Вместо собственных реализаций, задействованы только штатные вызовы стандартной библиотеки Си (malloc, strdup, snprintf...);
    • Удалён старый код формирования энтропии для генератора случайных чисел, вместо которого задействована функция arc4random_buf из состава libc;
    • Удалена поддержка алгоритмов MD2 и SEED;
    • Удалена функциональность J-PAKE, PSK и SRP;
    • Прекращена поддержка Kerberos, SSLv2, шифров US-Export SSL;
    • Удалён весь код, связанный с поддержкой SSL-расширения heartbeat, ошибка в котором привела к катастрофической уязвимости.
    • Прекращена поддержка сжатия в TLS;
    • Прекращено использование текущего времени в качестве случайной величины в libssl;
    • Добавлена поддержка алгоритмов ChaCha и Poly1305;
    • Добавлена поддержка эллиптических кривых Brainpool и ANSSI;
    • Добавлена поддержка режимов AES-GCM и ChaCha20-Poly1305 AEAD.
  • Добавлена собственная реализация http-сервера httpd, созданного на основе исходных текстов ранее поставляемого в OpenBSD демона relayd. В отличие от relayd, возможности которого ограничены функциями перенаправления и балансировки запросов, httpd доработан и может выступать в роли простого http-сервера, поддерживающего FastCGI и SSL;
  • Из базовой системы удалён http-сервер Apache, вместо которого рекомендуется использовать встроенный http-сервер от проекта OpenBSD или установить apache/nginx из портов;
  • В состав базовой системы включён рекурсивный кэширующий DNS-сервер Unbound. В будущем намечено удаление из состава OpenBSD DNS-сервера Bind, вместо которого рекомендовано использовать связку из nsd в роли авторитативного DNS-сервера и unbound;
  • В инсталляторе прекращена поддержка установки с FTP и ленточных накопителей, решены проблемы с резервированием блоков при установке на диски с 4K-секторами, в autoinstall добавлена возможность загрузки установочных наборов из нескольких источников, примеры конфигурации перемещены из /etc в /etc/examples;
  • Изменения, связанные с безопасностью:
    • Из базовой системы удалены компоненты системы аутентификации Kerberos. При необходимости установить Kerberos можно из портов. В качестве причины прекращения поддержки Kerberos в базовой системе отмечается усложнённость и недостаточный уровень качества кодовой базы, а также невостребованность данного протокола у пользователей OpenBSD. Кроме того, удаление Kerberos также будет способствовать упрощению портирования ветки Samba 4.x, в которой применяется собственная копия Heimdal Kerberos с несовместимыми изменениями в API.
    • Эвристические методы защиты стека от переполнения изменены для обеспечения защиты функций работы с локальными массивами ссылок, что соответствует режиму -fstack-protector-strong в GCC;
    • В bcrypt по умолчанию применён тип хэширования $2b$. Представлен улучшенный и простой bcrypt API.
    • Прекращена поддержка MD4 в cksum, S/Key и libc. Удалена утилита md5crypt;
    • Добавлен вызов getentropy, используемый в LibreSSL. Добавлена функция timingsafe_memcmp;
    • Прекращена поддержка функции gets;
    • Усовершенствованы реализации функций fread и fwrite, в плане выявления целочисленных переполнений;
    • Добавлен вызов reallocarray, позволяющий выделить память для нескольких отличающихся по размеру объектов без дополнительных затрат на очистку памяти, но с сохранением средств борьбы с целочисленными переполнениями;
  • Изменения в сетевом стеке и сетевых утилитах:
    • Прекращена поддержка системы приоритизации трафика и управления пропускной способности ALTQ, на смену которой начиная с прошлого выпуска пришла встроенная в пакетный фильтр pf новая система управления очередями сетевых пакетов. Удаление ALTQ обусловлено трудностью сопровождения сразу двух систем;
    • На новых сетевых интерфейсах теперь по умолчанию выключена поддержка IPv6. Поддержка IPv6 автоматически включается при назначении интерфейсу IPv6-адреса. Из-за потенциальных проблем с безопасностью удалена поддержка функции IPv6 Node Information Queries, определённой в RFC4620;
    • Обеспечено автоматическое изменение размера хэш-таблицы для PCB (Protocol Control Block) в TCP и UDP, в зависимости от нагрузки;
    • В подсистему divert добавлена возможность использования аппаратных средств расчёта контрольных сумм (checksum offload).
    • В функцию getaddrinfo добавлена поддержка флага AI_ADDRCONFIG, определённого в RFC 3493;
    • В IGMP пакеты осуществлено добавление поля RAO (router alert option), как того требует RFC 2236;
    • Объявлен публичным API asr для разрешения адресов и DNS-запросов в асинхронном режиме;
    • В утилиту ftp добавлена опция "-U" для смены User-Agent;
    • В ifconfig обеспечен показ метода шифрования для беспроводных сетей (WEP, WPA, WPA2, 802.1x);
    • Из pppd удалена поддержка MS-CHAPv1 (RFC2433);
    • Утилита traceroute6 интегрирована с traceroute;
    • Демон ppp ассоциирован с компонентом для поддержки PPPoE, отдельный сервер pppoe удалён;
    • В snmpd, snmpctl и relayd обеспечено взаимодействие при помощи протокола AgentX;
    • В relayd представлена новая подсистема фильтрации с языком конфигурации, похожим на правила сопоставления pf. Добавлена поддержка фильтров для проброса в зависимости от URL.
  • OpenSMTPD заменил по умолчанию Sendmail, который будет удалён в из базовой системы следующем выпуске. Версия SMTP-сервера OpenSMTPD в составе OpenBSD 5.6 соответствует portable-версии OpenSMTPD 5.4.3. В новой версии OpenSMTPD для повышения безопасности обеспечено выполнение процессов обработки очередей под отдельными пользователями, процессы MDA, MTA и SMTP объединены в один непривилегированный процесс, прекращена поддержка процесса MFA. Добавлена поддержка выборки email-адресов через бэкенд table_db. Обеспечена изоляция кода работы с ключами RSA для предотвращения утечки ключей;
  • Обновлён пакет mandoc 1.13.0, в котором появились новые реализации утилит apropos, whatis и makewhatis, использующие базу SQLite3. Практически полностью завершена реализация числовых выражений roff;
  • Обновлён пакет OpenSSH 6.7, подробный обзор улучшений можно посмотреть здесь;
  • Значительно ускорен процесс обновления пакетов за счёт перегруппировки содержимого пакетов, предотвращающей повторную загрузку неизменёных файлов;
  • Удалены утилиты rcp, rsh, rshd, rwho, rwhod, ruptime, asa, bdes, fpr, mkstr, page, spray, xstr, oldrdist, fsplit, uyap и bluetooth. Прекращена поставка TCP Wrapper-ов. Перенесены в порты lynx, rmail и uucpd;
  • Добавлен транспорт sendsyslog, позволяющий обращаться к syslog, даже при его запуске в chroot или при окончании свободных файловых дескрипторов;
  • Ускорен процесс перехода и возврата из спящего режима на платформах amd64 и i386. Добавлена поддержка спящего режима при использовании шифрованных softraid-разделов;
  • Возможность монтирования файловой системы ext4 в режиме только для чтения;
  • Число портов превысило 8800 (полгода назад было 8700). Для архитектуры i386 подготовлено 8588 бинарных пакетов, для amd64 - 8588, для arm - 5633, для mips64el - 6697, для sparc64 - 7965, для hppa - 6143. Из находящихся в портах приложений, отмечены:
    • GNOME 3.12.2
    • KDE 3.5.10
    • KDE 4.13.3
    • Xfce 4.10
    • MySQL 5.1.73
    • PostgreSQL 9.3.4
    • Postfix 2.11.1
    • OpenLDAP 2.3.43 и 2.4.39
    • Mozilla Firefox 31.0
    • Mozilla Thunderbird 31.0
    • GHC 7.6.3
    • LibreOffice 4.1.6.2
    • Emacs 21.4 и 24.3
    • Vim 7.4.135
    • PHP 5.3.28, 5.4.30 и 5.5.14
    • Python 2.7.8, 3.3.5 и 3.4.1
    • Ruby 1.8.7.374, 1.9.3.545, 2.0.0.481 и 2.1.2
    • Tcl/Tk 8.5.15 и 8.6.1
    • JDK 1.6.0.32 и 1.7.0.55
    • Mono 3.4.0
    • Chromium 36.0.1985.125
    • Groff 1.22.2
    • Go 1.3
    • GCC 4.6.4, 4.8.3 и 4.9.0
    • LLVM/Clang 3.5 (20140228)
    • Node.js 0.10.28
  • Компоненты от сторонних разработчиков, входящие в состав OpenBSD 5.6:
    • Xenocara, основанная на X.Org 7.7 с xserver 1.15.2 + patches, , freetype 2.5.3, fontconfig 2.11.1, Mesa 10.2.3, xterm 309, xkeyboard-config 2.11;
    • GCC 4.2.1 (с патчами) и 3.3.6 (с патчами);
    • Perl 5.18.2 (с патчами)
    • Nginx 1.6.0 (с патчами)
    • SQLite 3.8.0.2 (с патчами)
    • Sendmail 8.14.8 с libmilter
    • Bind 9.4.2-P2 (с патчами)
    • Unbound 1.4.22
    • Sudo 1.7.2p8
    • Ncurses 5.7
    • Binutils 2.15 (с патчами)
    • Gdb 6.3 (с патчами)
    • Less 458 (с патчами)
    • Awk в версии от 10 августа 2011 г.
  • Расширена поддержка оборудования:
    • Поддержка SCSI Multipathing с использованием mpath и сопутствующих драйверов для подключения хранилищ через несколько каналов ввода/вывода;
    • Новый драйвер qlw для QLogic ISP SCSI HBA;
    • Новый драйвер qla для QLogic ISP2100/2200/2300 Fibre Channel HBA;
    • Новый драйвер сенсоров upd для USB Power Devices (UPS).
    • Новый драйвер brswphy для Broadcom BCM53xx 10/100/1000TX Ethernet;
    • Новый драйвер uscom для простых USB serial-переходников
    • Новый драйвер axen для USB-карт ASIX Electronics AX88179 10/100/Gigabit Ethernet;
    • В драйверах inteldrm и radeondrm улучшена поддержка спящего режима;
    • Прекращена поддержка используемого в пространстве пользователя интерфейса для драйвера agp;
    • В драйвер rtsx добавлена поддержка кардридеров на базе чипов RTS5227 и RTL8402;
    • В драйвер run добавлена поддержка устройств на базе чипов RT3900E;
    • В драйвер re добавлена поддержка rсетевых карт на базе чипов RTL8168EP/8111EP, RTL8168G/8111G и RTL8168GU/8111GU;

Послушать песню, приуроченную к выходу нового релиза, можно здесь.



Источник: http://www.opennet.ru/opennews/art.shtml?num=40985