Випуск OpenBSD 6.7

представлений випуск вільної крос-платформної UNIX-подібної операційної системи OpenBSD 6.7. Проект OpenBSD був заснований Тео де Раадтом (Theo de Raadt) у 1995 році після конфлікту з розробниками NetBSD, в результаті якого для Тео було закрито доступ до CVS репозиторію NetBSD. Після цього Тео де Раадт з групою однодумців створив на базі дерева вихідних текстів NetBSD нову відкриту операційну систему, головною метою розвитку якої стали переносимість (підтримується 12 апаратних платформ), стандартизація, коректна робота, активна безпека та інтегровані криптографічні засоби. Розмір повного настановного ISO-образу базова система OpenBSD 6.7 складає 470 МБ.

Окрім безпосередньо операційної системи, проект 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.

Основні поліпшення:

  • Файлова система FFS2, в якій використовуються 64-розрядні значення часу та числа блоків, за замовчуванням задіяна в нових установках майже для всіх архітектур, що підтримуються, замість FFS (за винятком landisk, luna88k і sgi).
  • Додано новий метод перевірки допустимості звернення до системних викликів, що додатково ускладнює експлуатацію вразливостей. Метод допускає здійснення системних викликів, лише якщо до них звертаються із попередньо зареєстрованих областей пам'яті. Для позначення областей пам'яті та активації захисту запропоновано новий системний виклик msyscall().
  • З 7 до 15 збільшено кількість розділів, які можна створити на одному диску.
  • Код розбору опцій в cron переписаний для підтримки getopt-подібних можливостей, таких як "-ns" і повторне вказівку тих самих прапорів. Поле "options" у crontab перейменовано на "flags". У crontab додано прапор "-s", при якому тільки один екземпляр завдання може бути запущений одночасно. Доданий оператор "~" для вказівки випадкового значення часу.
  • У віконному менеджері cwm реалізована можливість визначення розміру вікна у відсотковому співвідношенні від розміру первинного вікна при мозаїчному компонуванні.
  • Для архітектури powerpc здійснено перехід за замовчуванням на використання Clang та задіяна незалежна від архітектури реалізація mplock.
  • В apmd покращена підтримка автоматичного переходу в режим очікування і сплячий (-z/-Z) - демон тепер реагує на повідомлення про зміну заряду акумулятора, що відправляються драйвером контролю живлення. Перехід у сон відбувається із затримкою в 60 секунд, що дає користувачеві час взяти керування до рук.
  • У вбудований HTTP-сервер додана змінна конфігурації $REQUEST_SCHEME для збереження вихідного протоколу (http або https) при перенаправленні, а також опція "strip", що дозволяє використовувати кілька chroot /var/www для серверів FastCGI.
  • В утиліті top з'явилася підтримка прокручування за допомогою клавіш 9 та 0.
  • Наведено механізм звільнення сторінок пам'яті у зворотному порядку, що значно підвищує ефективність активного звільнення великої кількості сторінок.
  • У DNS-сервері unbound за замовчуванням увімкнено перевірку DNSSEC.
  • Позбавлені глобального блокування системні виклики
    __thrsleep(2), __thrwakeup(2), close(2), closefrom(2), dup(2), dup2(2), dup3(2), flock(2), fcntl(2), kqueue(2), pipe(2), pipe2(2) та nanosleep(2), а також базова частина ioctl(2).

  • Розширено підтримку обладнання. Додано новий драйвер iwx для бездротових чіпів Intel AX200, а в драйвері iwm додано підтримку пристроїв Intel 9260 і 9560. Доданий драйвер rge для Realtek 8125 PCI Express 2.5Gb. Запропоновано багато нових драйверів для покращення роботи на платах arm64 та armv7, у тому числі додана підтримка плати Raspberry Pi 4 та покращена підтримка Raspberry Pi 2 та 3.
  • Розширено звукову підсистему sndio. Додані API sioctl_open та утиліта sndioctl для керування звуком через sndiod. Видалено /dev/mixer, замість якого всі порти переведені на sndio замість інтерфейсу mixer ядра. У sndiod забезпечено використання апаратних механізмів керування гучністю. Для посилення безпеки заборонено доступ звичайних користувачів до /dev/audio* та /dev/rmidi*.
  • У бездротовому стеку припинено підключення до будь-якої доступної мережі Wi-Fi, яка не підтримує шифрування, за винятком явного виклику команди «ifconfig join». Запуск фонового сканування доступних мереж при виконанні команди «ifconfig scan» користувачем root. Збільшено кеш результатів сканування. Доданий встановлюваний через ifconfig прапор «nwflag nomimo», що допомагає позбавитися втрати пакетів в режимі 11n за наявності у пристрої непідключених роз'ємів для антен. Для драйвера bwfm додано підтримку активного сканування. Покращено автоматичне переключення між бездротовими мережами через зниження пріоритету для мереж, до яких не вдалося підключитися.
  • У мережевому стеку з'явився новий драйвер pppac, який винесено реалізація інтерфейсу PPP Access Concentrator. Налаштування npppd.conf переведено на використання pppac замість tun. При відключеному перенаправленні пакетів додано перевірку відповідності адреси призначення в пакеті з адресою мережного інтерфейсу. Видалено підтримку mobileip.
  • Користувачам без прав root заборонено використання ioctl для зміни адреси інтерфейсу мережі та зміни параметрів інтерфейсів pppoe.
  • У sysupgrade забезпечено запуск оновлення прошивок (fw_update) до перезавантаження перед оновленням.
  • Удосконалено системний виклик unveil, який забезпечує ізоляцію доступу до файлової системи. Число додатків з базової системи, для яких реалізований захист з використанням unveil, доведено до 82. У тому числі на unveil переведені vmstat, iostat та systat.
  • У crypto(3) додано підтримку RSA-PSS.
  • У DNS резолвер unwind додано підтримку DoT (DNS over TLS). Додано команду "unwindctl status memory".
  • Значно модернізовано реалізацію IPSEC. Додано підтримку автоматичного переміщення трафіку між rdomain при шифруванні та розшифровці для захисту від атак по сторонніх каналах. У iked додано підтримку зміни rdomain, а в iked.conf додано опцію 'rdomain'
    Для iked та isakmpd за умовчанням виставлено рівень IPSEC_LEVEL_REQUIRE, що забороняє обробку незашифрованих пакетів, що відповідають потоку. У налаштування групи Diffie-Hellman для IKE SA додані алгоритми curve25519, ecp256, ecp384, ecp521, modp3072 та modp4096. У iked метод автентифікації за замовчуванням змінено на автентифікацію за цифровим підписом (RFC 7427). Додані настройки ESN до iked.conf. Додано опцію "-p" для вибору нестандартного номера UDP-порту.

  • Розширено можливості мультиплексора терміналів tmux, додано багато нових опцій.
  • Оновлено версію поштового сервера OpenSMTPD. У вбудованих фільтрах реалізовано ключове слово bypass для пропуску обробки за заданих умов. Дозволено використання у фільтрах імені користувача поточного сеансу smtpd. У smtpd.conf у параметрах дозволено використання mail-from та rctp-to.
  • Оновлено пакет OpenSSH 8.2, у якому з'явилася підтримка токенів двофакторної автентифікації FIDO/U2F. Детальний огляд покращень можна переглянути тут.
  • Оновлено пакет LibreSSL, в якому доведено до готовності реалізація TLS 1.3 на базі нового кінцевого автомата та підсистеми роботи із записами. За умовчанням поки що включена лише клієнтська частина TLS 1.3, серверну частину планують активувати за замовчуванням в одному з майбутніх випусків. Список решти змін можна побачити в анонсах випусків 3.1.0 и 3.1.1.
  • Число портів для архітектури AMD64 склало 11268, для aarch64 - 10848, для i386 - 10715. Оновлені компоненти від сторонніх розробників, що входять до складу OpenBSD 6.7:
    • Графічний стек Xenocara на базі X.Org 7.7 з xserver 1.20.8 + патчі, freetype 2.10.1, fontconfig 2.12.4, Mesa 19.2.8, xterm 351, xkeyboard-config 2.20;
    • LLVM/Clang 8.0.1 (з патчами)
    • GCC 4.2.1 (з патчами) та 3.3.6 (з патчами)
    • Perl 5.30.2 (з патчами)
    • 4.2.4 РНБ
    • Unbound 1.10.0
    • Ncurses 5.7
    • Binutils 2.17 (з патчами)
    • Gdb 6.3 (з патчами)
    • Awk від 20 грудня 2012 р.
    • Expat 2.2.8

    Джерело: opennet.ru

Додати коментар або відгук