24 апреля 2019 года

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

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

Среди наиболее заметных изменений: представлена переносимая версия bgpd, адаптированная для работы в других ОС, избавлены от использования root-привилегий Xenocara и tcpdump, для amd64 и i386 задействован по умолчанию компоновщик LLD, значительно улучшена поддержка MPLS, усилена защита от эксплоитов с приёмами возвратно-ориентированного программирования (ROP), добавлен простейший рекурсивный DNS-сервер unwind, в ядро интегрирован детектор неопределённого поведения, представлена собственная реализация утилиты rsync.

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

  • При сборке для архитектур amd64 и i386 по умолчанию задействован компоновщик LLD, развиваемый проектом LLVM. Для архитектуры mips64 добавлена поддержка сборки с использованием Clang;
  • Новые драйверы pvclock для паравиртуализированного таймера KVM и ixl для Intel Ethernet 700. Драйвер uaudio заменён на новую реализацию с поддержкой USB Audio 2.0.
  • Улучшена работа драйверов беспроводных устройств bwfm, iwn, iwm и athn. В беспроводной стек добавлена поддержка сообщений RTM_80211INFO для передачи детальных сведений о состоянии интерфейса в команды dhclient и route. Изменено поведение по молчанию при подключении к беспроводным сетям - при наличии настроенного списка автоподключения OpenBSD теперь не соединяется с неизвестными открытыми сетями (для возвращения прошлого поведения можно добавить пустую сеть в список);
  • В сетевом стеке представлены новые драйверы псевдоустройств bpe (Backbone Provider Edge) и mpip (MPLS IP layer 2). Для MPLS-интерфейсов добавлена поддержка настройки альтернативных доменов маршрутизации. Обеспечена работа драйвера vlan в обход обработки очередей с выводом напрямую в родительский сетевой интерфейс. В ifconfig добавлен режим txprio для управлением кодированием приоритета в заголовках туннелируемых пакетов (поддерживается для драйверов vlan, gre, gif и etherip);
  • В реализации фильтра bpf появилась возможность применения механизма отбрасывания (drop) без захвата пакетов. Данная возможность задействована в tcpdump для фильтрации на начальном этапе поступления пакета;
  • В инсталляторе обеспечена поддержка rdsetroot для добавления дискового образа в RAMDISK ядра. Обеспечено удаление некоторых компонентов старых релизов в процессе обновления системы;
  • Усовершенствован системный вызов unveil, который обеспечивает изоляцию доступа к файловой системе. В новой версии добавлено определение совпадений относительно рабочего каталога текущего процесса при разборе относительных путей. Запрещено использование stat и access для ограниченных компонентов файловых путей. Для приложений ospfd, ospf6d, rebound, getconf, kvm_mkdb, bdftopcf, Xserver, passwd, spamlogd, spamd, sensorsd, snmpd, htpasswd и ifstated реализована защита с использованием unveil;
  • В Clang улучшены средства для блокирования применения приёмов возвратно-ориентированного программирования (ROP), позволившие значительно сократить число полиморфных гаджетов, встречающихся в результирующих исполняемых файлах для архитектур i386 и amd64;
  • В Clang повышена производительность и безопасность при применении

механизма защиты RETGUARD, нацеленного на усложнение выполнения эксплоитов, построенных с использованием заимствования кусков кода и приёмов возвратно-ориентированного программирования. Для ускорения работы вместо стека данные по возможности размещаются в регистрах, а при возврате более эффективно используется процессорный кэш. RETGUARD также теперь используется вместо традиционной защиты стека на системах amd64 и arm64;

  • Улучшены утилиты, связанные с сетевым стеком: В pcap-filter добавлена поддержка фильтрации пакетов MPLS. В ospfd, ospf6d и ripd добавлена возможность настройки приоритетов маршрутизации. В

ripd добавлена защита на основе механизма pledge. В ifconfig добавлены режимы sff и sffdump для получения диагностической информации с оптических приёмопередатчиков;

  • Представлен первый выпуск нового резолвера unwind, обрабатывающего рекурсивные DNS-запросы и принимающего соединения только на интерфейсе 127.0.0.1.

Unwind рассчитан для использования на клиентских системах, таких как ноутбуки, перемещающиеся между разными беспроводными сетями. В случае определения блокирования DNS-трафика в локальной сети, unwind переключается на использование переданного по DHCP адреса рекурсивного DNS-сервера, но продолжает периодически пытаться выполнить резолвинг самостоятельно и как только прямые запросы начинают проходить возвращается к самостоятельному обращению к DNS-серверам;

  • В bgpd проведена работа по снижению потребления памяти, добавлен простой оптимизатор правил (выполняет слияние правил фильтрации, отличающихся только наборами фильтров), изменён процесс настройки BGP MPLS VPN, добавлена поддержка IPv6 BGP MPLS VPN, реализована функциональность "as-override" для замены AS соседа на локальный AS в путях, добавлена возможность сопоставления с несколькими community в одном правиле, добавлены новые признаки сопоставлений "*", "local-as" и "neighbor-as", улучшена работа с большими наборами правил, добавлены новые команды для работы с группами соседних автономных систем ( "bgpctl neighbor group", "bgpctl show neighbor group", "bgpctl show rib neighbor group"), в bgpctl добавлена возможность добавления сетей в таблицы BGP VPN. Впервые подготовлен переносимый вариант OpenBGPD-portable, готовый к работе в системах, отличных от OpenBSD;
  • Добавлена опция kubsan для выявления случаев неопределённого поведения в ядре OpenBSD.
  • Утилита tcpdump полностью избавлена от использования root-привилегий;
  • Улучшена производительность malloc в многопоточных приложениях;
  • В состав добавлена начальная версия программы OpenRSYNC с собственной реализацией утилиты синхронизации файлов rsync;
  • Обновлена версия почтового сервера OpenSMTPD, в которой в smtpd.conf добавлен новый критерий сопоставлений "from rdns", позволяющий выбирать сеансы на основе резолвинга обратного DNS (определение имени хоста по IP). При поиске в таблицах добавлена возможность применения регулярных выражений;
  • Обновлён пакет OpenSSH 8.0, подробный обзор улучшений можно посмотреть здесь;
  • Обновлён пакет LibreSSL, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.9.0 и 2.9.1;
  • В Mandoc значительно улучшен вывод в HTML, улучшена отрисовка таблиц и добавлен флаг "-O" для открытия страницы с определением указанного термина;
  • Расширены возможности графического стека Xenocara: X-сервер теперь не требует для запуска установки с флагом setuid. В Mesa-драйвере radeonsi включена поддержка аппаратного ускорения для GPU Southern Islands (Radeon HD 7000) и Sea Islands (Radeon HD 8000);
  • Порты на языке C++ для архитектур, не поддерживаемых в Clang, теперь собраны с использованием GCC из портов. Число портов для архитектуры AMD64 составило 10602, для aarch64 - 9654, для i386 - 10535. Из находящихся в портах приложений отмечены:
  • Asterisk 16.2.1
  • Audacity 2.3.1
  • CMake 3.10.2
  • Chromium 73.0.3683.86
  • FFmpeg 4.1.3
  • GCC 4.9.4 и 8.3.0
  • GNOME 3.30.2.1
  • Go 1.12.1
  • JDK 8u202 и 11.0.2+9-3
  • LLVM/Clang 7.0.1
  • LibreOffice 6.2.2.2
  • Lua 5.1.5, 5.2.4 and 5.3.5
  • MariaDB 10.0.38
  • Mono 5.18.1.0
  • Mozilla Firefox 66.0.2 и ESR 60.6.1
  • Mozilla Thunderbird 60.6.1
  • Node.js 10.15.0
  • OpenLDAP 2.3.43 и 2.4.47
  • PHP 7.1.28, 7.2.17 и 7.3.4
  • Postfix 3.3.3 и 3.4.20190106
  • PostgreSQL 11.2
  • Python 2.7.16 и 3.6.8
  • R 3.5.3
  • Ruby 2.4.6, 2.5.5 и 2.6.2
  • Rust 1.33.0
  • Sendmail 8.16.0.41
  • SQLite3 3.27.2
  • Suricata 4.1.3
  • Tcl/Tk 8.5.19 и 8.6.8
  • TeX Live 2018
  • Vim 8.1.1048 и Neovim 0.3.4
  • Xfce 4.12
  • Компоненты от сторонних разработчиков, входящие в состав OpenBSD 6.5:
  • Графический стек Xenocara на базе X.Org server 1.19.7 с патчами, freetype 2.9.1, fontconfig 2.12.4, Mesa 18.3.5, xterm 344, xkeyboard-config 2.20;
  • LLVM/Clang 7.0.1 (с патчами)
  • GCC 4.2.1 (с патчами) и 3.3.6 (с патчами)
  • Perl 5.28.1 (с патчами)
  • NSD 4.1.27
  • Unbound 1.9.1
  • Ncurses 5.7
  • Binutils 2.17 (с патчами)
  • Gdb 6.3 (с патчами)
  • Awk Aug 10, 2011
  • Expat 2.2.6

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск OpenBSD 6.5», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.