Вход/Регистрация
Linux глазами хакера
вернуться

Флёнов Михаил Евгеньевич

Шрифт:

Обновление программ позволяет получать новые возможности и исправлять ошибки, сделанные программистами в предыдущих версиях. Основа Linux — это ядро, и оно обновляется очень часто за счет динамичного развития этой ОС. Не пугайтесь ошибок, они есть всегда и везде, и мы еще поговорим об этом (см. разд. 14.1). Вы должны уметь устанавливать новое ядро в свою систему.

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

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

Еще несколько лет назад взломщики очень часто использовали подмену системных файлов, чтобы встроить в них сплоиты (программа, позволяющая использовать уязвимость) или потайные двери (backdoor). Для борьбы с такой подделкой было разработано множество утилит, которые запрещают изменение системных файлов и следят за их контрольной суммой. В случае каких- либо трансформаций подается сигнал тревоги.

Хакеры, недолго думая, перешли на использование модулей к ОС Linux. Их проследить сложнее, а результат от использования тот же, да и задачи они решают любые. Запретив использование модулей, мы закрываем эту дыру в безопасности, но вы должны учитывать, что могут возникнуть проблемы в работе ОС. Некоторые производители железа или системных утилит любят использовать модули. Это и понятно, ведь их установка проще и позволяет получить необходимые возможности без перекомпиляции ядра. Но мы же знаем, что безопасность и удобство — несовместимые понятия.

3.8.1. Подготовка к компиляции

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

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

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

/sbin/mkbootdisk ver

В данном случае

ver
— это номер версии ядра, установленного в вашей системе. Если вы не знаете текущую версию вашего ядра, выполните команду:

uname -r

На моем тестовом сервере на данный момент установлено ядро 2.4.18-5asp. Чтобы создать загрузочную дискету для него, выполняем:

/sbin/mkbootdisk 2.4.18-5asp

Если неверно указать версию, то дискета не будет создана, потому что программа ищет необходимые для загрузочной дискеты файлы в директории /lib/modules/ver, где ver — это номер версии. В моем случае это директория /lib/modules/2.4.18-5asp.

3.8.2. Обновление ядра из RPM-пакета

Самый простой способ установить новое ядро — использование RPM-пакета. Установка такая же, как и любой другой программы. Для обновления ядра можно выполнить команду:

rpm -Uvh ИмяПакета

Если вы хотите установить новое ядро, то ключ

U
необходимо заменить на ключ i. ОС Linux удобна тем, что можно одновременно установить несколько ядер. Правда, загрузить можно только одно из них.

Из RPM-пакета устанавливаются только все необходимые файлы, модули и загрузчик, но чтобы можно было загрузиться с новым ядром, необходимо еще прописать ядро в загрузчик LILO.

Установка из RPM-пакета дает нам доступ к новым функциям и исправляет старые ошибки. Возможности ядра остаются теми же, что заложил разработчик. Максимальных преимуществ от обновления можно добиться только при компиляции ядра.

3.8.3. Компиляция ядра

При установке из RPM-пакета мы получаем модульное ядро, в котором драйверы устройств могут быть как скомпилированы в одно целое с ядром, так и загружаться отдельно. Такое ядро медленнее в работе, но позволяет обновлять драйверы простой заменой модулей.

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

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

Как правило, ядро поставляется в виде tar-архива. Сначала его надо разархивировать:

  • Читать дальше
  • 1
  • ...
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: