Выпуск OpenBSD 6.0

Состоялся релиз операционной системы OpenBSD 6.0. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 20 аппаратных платформ), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 6.0 составляет 216 Мб.

Кроме непосредственно операционной системы, проект 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), при котором страницы памяти процесса не могут быть одновременно доступны на запись и исполнение. Таким образом, код может быть исполнен только после запрещения записи, а запись в страницу памяти возможна только после запрета исполнения. Механизм W^X помогает защитить приложения в пространстве пользователя от типовых атак, осуществляемых через переполнение буфера, в том числе от переполнений стека (записанный за пределы буфера код не может быть исполнен).

    Традиционная модель «W|X», допускающая одновременно запись и исполнение, переведена в разряд недопустимых. Для обхода запрета требуется монтирование ФС (ffs/nfs) со специальным флагом «wxallowed», который рекомендуется использовать для монтирования /usr/local, так как некоторые порты пока не адаптированы для нормальной поддержки «W^X». Например, наблюдаются проблемы с JDK, GCC, Mono и Chromium. При установке на новую систему опция «wxallowed» будет применена к /usr/local по умолчанию, но при обновлении необходимо уделить этому внимание, чтобы не потерять работоспособность портов.

  • Самостоятельный загрузчик для ARMv7. Теперь не нужен u-boot с его отдельным FAT-разделом, грузиться можно прямо с FFS.
  • Из-за отсутствия рабочего оборудования прекращено поддержка архитектуры VAX, не поддерживавшей разделяемые библиотеки;
  • Удалена прослойка для обеспечения совместимости с Linux, которая была доступна только для систем i386 и содержала ряд концептуальных проблем, которые потенциально могли оказывать негативное влияние на безопасность.
  • Удалён механизм ограничения системных вызовов systrace, на смену которому пришла технология Pledge;
  • Удалена специфичная для OpenBSD возможность монтирования файловых систем непривилегированным пользователем (sysctl kern.usermount=1), которая позволяла не использовать привилегии root для монтирования в произвольную часть дерева vfs. Вместо данной возможности осуществлён возврат к классическому варианту с setuid root mount и ключевым словом «user» в fstab;
  • Добавлены настройки sysctl net.inet.tcp.rootonly и net.inet.udp.rootonly, позволяющие выборочно запретить приём соединений по указанным в списке сетевым портам непривилегированными процессами;
  • Продолжена работа по распараллеливанию сетевых операций;
  • Обновлены порты, добавлены драйверы нового оборудования
  • К выходу релиза приурочено 6 новых песен.

Кроме функциональных новшеств, принято решение об изменении процесса подготовки релизов. Долгие годы процесс разработки OpenBSD обеспечивался продажей компакт-дисков. Установочные образы появились только в версии 4.2, но и после этого основным способом установки были компакт-диски. Продажа дисков финансировала работу Тео де Раадта по созданию операционной системы, но на подготовку дисков уходило много времени и после заморозки релиз приходилось ждать ещё полтора месяца — пока диски изготовят, напечатают, доставят. Релиз 6.0 стал последним, который распространялся таким способом, в дальнейшем все релизы будут публиковаться через Web, и задержка выпуска будет минимальной.

© OpenNet