OpenBSD. Имидж – ничто, безопасность – все!::Журнал СА 8.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6237
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6944
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4230
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3015
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3811
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7283
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14005
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7084
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5393
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4620
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3431
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3164
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3030
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 OpenBSD. Имидж – ничто, безопасность – все!

Архив номеров / 2008 / Выпуск №8 (69) / OpenBSD. Имидж – ничто, безопасность – все!

Рубрика: Администрирование /  Администрирование

Максим Гришков

OpenBSD. Имидж – ничто, безопасность – все!

Тот факт, что в мире нет совершенного программного обеспечения, не является большим секретом. На момент релиза программный код любой операционной системы содержит ошибки, которые влияют на ее производительность и надежность. Вследствии этого одной из важных задач системного администратора является поддержание операционной системы в актуальном, с точки зрения безопасности и надежности, состоянии путем наложения патчей и обновлений.

Основная часть

Несмотря на то что целью известного проекта OpenBSD является разработка операционной системы (ОС), которая характеризуется высокими показателями чистоты кода, безопасности, стандартизации и портируемости и, как свидетельствует статистика, в этом направлении команде разработчиков удалось достигнуть значительных успехов, через некоторое время после выхода очередного релиза данной ОС появляется информация о выявленных потенциальных уязвимостях. Эту информацию можно почерпнуть на страничке «Ошибок» (http://www.openbsd.org/errata.html) официального сайта проекта, где списки выявленных ошибок сгруппированы согласно релизам, в которых они были выявлены: например, errata43.html – ошибки, выявленные после выхода релиза 4.3. Страничка также содержит краткое описание, характеристику (безопасность или надежность) и ссылку на заплатку (патч), с помощью которой можно избавиться от уязвимости. На момент написания статьи страничка релиза 4.3 содержала 5 записей.

Согласно терминологии, используемой внутри проекта, ваша система может находиться в одном из 3 возможных состояний: релиз (-release), стабильное (-stable) или текущее (‑current). Разница между этими состояниями заключается в том, что релиз – это версия, выпускаемая проектом согласно графику релизов каждые 6 месяцев на CD, стабильная система – это релиз с наложенными на него патчами на текущий момент времени. Патчи представляют собой порции исходного кода, содержащие очень важные исправления, сделанные и опробованные в текущей ветке. Подразумевается, что для того, чтобы обладать наилучшими показателями стабильности и надежности ОС, OpenBSD должна быть приведена к стабильному состоянию. При этом следует учитывать, что поддержка новых устройств и кардинально новые свойства, реализованные в текущей ветке не попадают в стабильную. Текущая ветка в свою очередь предназначена в основном для разработчиков и является полигоном для испытания нововведений. Ни один здравомыслящий системный администратор не станет обновлять ОС ответственного сервера до текущего состояния.

Существуют два способа приведения системы к стабильному состоянию. Первый – это наложение патчей вручную, второй – использование стабильной (патчевой) ветки исходных кодов системы, которая содержит все исправления для обновления системы. Следует учитывать тот факт, что исходный код стабильной ветки кроме обновлений, вышедших в виде патчей, также содержит очевидные и простые исправления, которые были признаны недостойными включения в список патчей на страничке «Ошибок». Разница между способами заключается в том, что в случае наложения патчей будут закрыты только те ошибки, которые были признаны критичными, в следствие этого существенно сокращается время, затрачиваемое на исправление ошибок (даже в случае пересборки ядра). В свою очередь обновление исходных кодов с помощью стабильной (патчевой) ветки с последующей пересборкой ядра и встроенного программного обеспечения (userland) – более длительный, но и более автоматизированный (если синхронизацию переложить на могучие плечи cron) процесс. Он также позволяет исправить незакрытые патчами ошибки.

Перед тем как приступить непосредственно к наложению патчей или синхронизации исходного кода, необходимо его (код) заполучить. Самый простой способ загрузить его по ftp (ftp://ftp.openbsd.org/pub/OpenBSD/4.3) или скопировать с CD (обычно это третий CD в стандартной поставке). Исходный код, хранящийся на ftp-сервере, разделен на несколько файлов:

  • src.tar.gz – содержит исходный код набора встроенного ПО;
  • sys.tar.gz – содержит исходный код ядра;
  • xenocara.tar.gz – содержит исходный код модифицированной системы X-Window X.org или Xenocara, в интерпретации OpenBSD).

После загрузки необходимо разархивировать src.tar.gz и sys.tar.gz в директорию /usr/src, а xenocara.tar.gz в – /usr.

$ cd /usr/src

# tar -xvzf /usr/sys.tar.gz

# tar -xvzf /usr/src.tar.gz

$ cd /usr

# tar -xvzf /usr/xenocara.tar.gz

После извлечения исходников можно переходить к делу. Начнем с патчей.

Накладываем заплатки

Патчи можно скачать как в виде отдельных файлов (001_openssh.patch и т. д.), так и единым архивом (4.3.tar.gz). Сделать это можно или с упомянутой выше странички errata43.html или непосредственно по ftp (ftp://ftp.openbsd.org/pub/OpenBSD/4.3).

После скачивания необходимо распаковать архив, содержащий патчи в какую-нибудь директорию, например /usr/src/patches.

# mkdir /usr/src/patches

$ cd /usr/src/patches

# tar -xvzf /usr/4.3.tar.gz

4.3/common/001_openssh.patch

4.3/common/002_openssh2.patch

4.3/common/003_xorg.patch

4.3/common/004_bind.patch

 4.3/common/005_pcb.patch

Как видно из вывода архиватора, в архиве находятся 5 патчей. Все они расположены в каталоге common, что свидетельствует об их платформонезависимости. Назначение патча легко узнать, используя команду head.

$ cd /usr/src/patches/4.3/common

$ head -n 11 001_openssh.patch

Apply by doing:

       cd /usr/src

       patch -p0 < 001_openssh.patch

 

 

And then rebuild and install file:

        cd usr.bin/ssh

        make obj

        make cleandir

        make depend

        make

        make install

Из вывода следует, что патч предназначен для исправления исходного кода элемента встроенного ПО (в частности OpenSSH) и потребует пересборки толького этого элемента. Тут же приведены инструкции по наложению патча (первый абзац) и последующей пересборке приложения (второй абзац).

$ head 003_xorg.patch

Apply by doing:

cd /usr/xenocara

#Assuming Xenocara is in /usr/xenocara

patch -p0 < 003_xorg.patch

 

And then rebuild and install the X server:

cd xserver

make -f Makefile.bsd-wrapper build

 

Index: xserver/Xext/security.c

Этот патч предназначен для исправления исходного кода Xenocara, он также потребует пересборки только этого элемента.

$ head 005_pcb.patch

Apply by doing:

 

cd /usr/src

 

patch -p0 < 005_pcb.patch

 

Then build and install a new kernel.

Комментарий «Then build and install a new kernel» указывает на то, что патч предназначен для исправления исходного кода ядра и потребует его дальнейшей пересборки (см. далее).

На этом все премудрости работы с патчами, собственно, и заканчиваются. После просмотра заголовка патча (количество строк, выводимых командой head, может быть увеличено при помощи параметра -n), остается только, следуя полученым инструкциям, пропатчить (команда patch) и пересобрать приложение или ядро.

Следуем стабильной (патчевой) ветке исходного кода

Поскольку разработчики OpenBSD используют для управления исходным кодом систему контроля версий CVS, её можно использовать для получения и обновления локальной копии дерева исходных кодов, находящейся в директории /usr/src. Для начала необходимо выбрать один из анонимных CVS (AnonCVS) серверов проекта. Это можно сделать на страничке официального сайта http://www.openbsd.org/anoncvs.html. После выбора сервера можно приступать к обновлению дерева исходных кодов.

$ cd /usr/src

# export CVSROOT=anoncvs@anoncvs.de.openbsd.org:/cvs

# cvs -d$CVSROOT up -rOPENBSD_4_3 -Pd

В данном примере был использован анонимный CVS-сервер anoncvs.de.openbsd.org. Параметр up команды cvs обеспечивает обновление локальной копии дерева исходных кодов. Флаг -r позволяет выбрать версию (ревизию) исходного кода для обновления. Флаги -Pd позволяют cvs во время обновления удалять пустые директории дерева и создавать новые (без этих флагов обновление закончится неудачей).

Команду cvs также можно использовать для получения дерева исходных кодов и дерева портов, указав опцию checkout и ветвь, которую нужно скачать (src, xenokara, ports). Пример для скачивания исходных кодов ядра и встроенного ПО.

$ cd /usr

# export CVSROOT=anoncvs@anoncvs.de.openbsd.org:/cvs

# cvs -d$CVSROOT checkout -rOPENBSD_4_3 -P src

После того как наложены заплатки, либо дерево исходных кодов синхронизировано со стабильной (патчевой) веткой, можно пересобирать ядро и встроенное ПО (userland).

Пересобираем ядро и встроенное ПО

Сборка ядра происходит с параметрами, которые хранятся в файле конфигурации ядра. Обычно этот файл находится в директории conf по адресу /usr/src/sys/arch/<платформа>/conf. Файл конфигурации ядра, поставляемый с дистрибутивом, по умолчанию носит название GENERIC. Разработчики OpenBSD уверяют, что этот конфигурационный файл подойдет для большинства случаев, за исключением систем с нестандартным оборудованием, очень маленьким обьемом оперативной памяти, а также в случае, если вас интересует активация экспериментальных или выключенных по умолчанию функций.

Перед сборкой ядра необходимо сделать резервную копию работающего в данный момент ядра:

# cp /bsd /bsd.old

Непосредственно процесс пересборки ядра предельно прост:

$ cd /usr/src/sys/arch/i386/conf

# config GENERIC

# cd ../compile/GENERIC

# make clean && make depend && make

# make install

Правда, стоит отметить, что он длится довольно долго: от 30-40 минут на современной технике до суток на раритетном железе (которое частенько используется для установки OpenBSD). После завершения сборки ядра необходимо перезагрузить компьютер для загрузки нового ядра. Если по какой-то причине собранное ядро не может быть загружено, процесс загрузки будет остановлен и появится приглашение загрузчика: «boot>».

В этом случае необходимо загрузить копию старого рабочего ядра, исправить ошибки в конфигурационном файле и повторить процедуру.

boot> bsd.old

Если пересборка ядра завершилась успешно, можно приступать к пересборке встроенного ПО. Следует быть особо внимательным при выполнении команды rm с флагами ‑rf от пользователя root, ошибочно указав директорию (не /usr/obj/*), можно в лучшем случае лишиться копии дерева исходных кодов, в худшем – системы.

# rm -rf /usr/obj/*

$ cd /usr/src

# make obj

# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs

# cd /usr/src

# make build

По сравнению со сборкой ядра процесс сборки встроенного ПО еще более длительный (на слабой машине может длиться более суток). После завершения пересборки встроенного ПО систему можно считать обновленной до стабильного состояния.

Заключение

Команда разработчиков ОС OpenBSD прилагает много усилий для своевременного и оперативного исправления выявленных в процессе эксплуатации ПО ошибок. Разрабатываемая ими система включает достаточный и подробно документированный инструментарий для поддержания безопасности на высоком уровне.

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

  1. OpenBSD 4.3 release errata & patch list – http://www.openbsd.org/errata43.html.
  2. Documentation and Frequently Asked Questions – http://www.openbsd.org/faq.
  3. Anonymous CVS – http://www.openbsd.org/anoncvs.html.
  4. Following -stable (the «Patch branch») – http://www.openbsd.org/stable.html.
  5. Patching and Kernel Buildinghttp://www.openbsd101.com/patching.html.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru