![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Linux (или GNU/Linux согласно Stallman, если речь о полном дистрибутиве)
фактически только ядро операционной системы. Оно обрабатывает работу с
дисками, прочей аппаратурой, поддерживает механизмы безопасности и сеть. В дополнение к этому мы имеем аппаратные проблемы подобно Pentium F00F
bug, и проблемы, свойственные TCP-IP протоколу, Linux ядро имеет способы их
обхода. Версии ядра обозначены как X.Y.Z, где Z младший номер версии, Y
задает является ли ядро тестовым (нечетное значение) или рабочим (четное
число), X определяет старший номер версии (пока что есть 0, 1 и 2). Серия
2.2.x имеет сильные усовершенствования о сравнению с серией 2.0.x.
Использование ядер 2.2.x также позволяет Вам использовать новые возможности,
например, ipchains (вместо ipfwadm). Выяснить ппоследние версии ядра можно
просто командой finger @linux.kernel.org: Обновление ядра включает получение нового ядра и модулей, правку
/etc/lilo.conf, запуск LILO для записи нового MBR. Ядро обычно помещается в
/boot, а модули в /lib/modules/kernel.version.number. Получить новое ядро можно двумя способами: скачать соответствующий ядерный
пакет и установить его, или скачать и откомпилировать исходный код ядра с
ftp://ftp.kernel.org (пожалуйста,
используйте зеркальный сайт!). Там должна быть ссылка linux на каталог с текущим ядром. Если
ее нет, одной проблемой меньше. Если есть, удалите ее. Лучше всего
переименовать каталог linux в /usr/src/linux-kernel.version.number и создать
на него ссылку /usr/src/linux. Распакуйте исходеники, используя tar и gzip так, чтобы получить
/usr/src/linux примерно с 50 мегабайтами исходников. Следующий шаг должен
создать ядерную конфигурацию linux (/usr/src/linux.config), это может быть
достигнуто, используя make config, make menuconfig
или make xconfig, мне кажется, что лучше всего
make menuconfig (для этого, Вы будете нуждаться в библиотеках
ncurses и ncurses devel). Это, возможно, самый трудный шаг: имеются сотни
параметров, которые могут быть категоризированы в две основных области:
аппаратная поддержка и сервисная поддержка. Для аппаратной поддержки напишите
список аппаратных средств, с которыми это ядро будет работать, и включите
соответствующие параметры. Что касается сервисной поддержки Вы будете должны
вычислить, которые файловые системы (fat, ext2, minix, ...) Вы планируете
использовать, то же самое для работы с сетями (firewalling и т.д.). Когда Вы сконфигурировали ядро, Вы должны скомпилировать его, следующие
команды создают зависимости, гарантирующие, что библиотеки будут встроены в
правильном порядке, затем чистят любую информацию от предыдущей компиляции,
компилируют ядро, затем формируют и устанавливают модули. Вы должны скопировать /usr/src/linux/arch/i386/boot/bzImage (или zImage) в
/boot/vmlinuz-kernel.version.number. Потом поправьте файл /etc/lilo.conf,
добавьте в него запись для нового ядра. По окончании правки /etc/lilo.conf надо запустить /sbin/lilo для
обновления MBR (Master Boot Record). При запуске LILO должен вывести нечто
похожее на: Вывод представляет собой список ядер, которые будут указаны в MBR, *
обозначает ядро, загружаемое по умолчанию (обычно, это первое ядро, если Вы
не указали другое директивой default). Сейчас стабильными версиями ядра является серия 2.2.x, а тестовыми 2.3.x.
Тестовая серия 2.1.x не рекомендуется из-за множества проблем. Серия 2.0.x
устарела и не имеет ряда полезных возможностей. Увы, переход от 2.0.x к 2.2.x
труден, надо обновить несколько пакетов программ, библиотек, ppp, modutils и
другие (подробности в документации на ядро). Дополнительно храните старое
рабочее ядро, добавьте для него запись в lilo.conf как "linuxold"
или что-то подобное, тогда будет возможность отступления в случае
необходимости. Имеется ряд заплат ядра, которые могут расширить защиту Linux-системы.
Одни предотвращают буферное переполнение, другие обеспечивают сильное crypto.
Имеется ряд заплат, непосредственно связанных с защитой. Данная заплата (Secure Linux kernel patch) решает ряд проблем и
обеспечивает другой уровень защиты для системы. Заплата доступна для ядер
серий 2.0 и 2.2. Скачать можно с
http://www.openwall.com/linux. Данная заплата (International kernel patch) более мегабайта в размере!
Добавляет огромное количество сильного crypto и связанных элементов. Это
включает несколько алгоритмов шифрования, которые были AES-кандидатами
(включая MARS из IBM). Вы можете скачать патч с
http://www.kerneli.org. Данная заплата добавляет ряд интересных возможностей, прежде всего
нацеленных на обнаружение нападения. Вы можете "блокировать" файлы, правила
firewall, есть еще ряд интересных параметров. Вы можете скачать патч с
http://www.soaring-bird.com.cn/oss_proj/lids. Проект Linux (ACL) ряд заплат и утилит, чтобы конфигурировать ACL-доступ к
файловой системе. Это решение все еще немного ненадежно, поскольку хранит
разрешения в файле и действует как уровень фильтрации между файлом и
пользователями, что не соответствует ACL (но это начало). Вы можете получить
пакет на
http://www.braysystems.com/linux/trustees.html. Rule Set Based Access Control всесторонний набор заплат и утилит, чтобы
управлять различными аспектами системы. Доступен на
http://www.rsbac.de/rsbac. LOMAC (Low Water-Mark Mandatory Access Control for Linux) набор заплат,
чтобы расширить защиту Linux. Вы можете получить его с
ftp://ftp.tislabs.com/pub/lomac. auditd позволяет Вам использовать регистрирующие средства на уровне ядра
(очень мощный инструмент). Вы можете регистрировать сообщения почты, события
системы и нормальные элементы, что делает и syslog, но в дополнение к этому
Вы можете отслеживать события типа специфических пользователей, открывающих
файлы, выполнение программ, setuid-программ, и так далее. Если Вы нуждаетесь
в твердом контрольном следе, значит этот инструмент для Вас! Вы можете
получить его с
ftp://ftp.hert.org/pub/linux/auditd. Загружаемый модуль ядра, который позволяет Вам управлять максимальным
числом процессов на пользователя и максимальным числом ветвлений, очень
полезен для shell-серверов. Скачать можно с
http://rexgrep.tripod.com/rexfbdmain.htm. Отладчик ядра SGI доступен на
http://oss.sgi.com/projects/kdb. В SGI написали инструмент, который позволяет Вам делать отладку ядра,
дистанционно, не связываясь с консолью. Доступен на
http://oss.sgi.com/projects/kgdb. Written by Kurt Seifried
Ядро Linux
[seifried@mail kernel-patches]$ finger @linux.kernel.org
[linux.kernel.org]
The latest stable version of the Linux kernel is: 2.2.13
The latest beta version of the Linux kernel is: 2.3.29
The latest prepatch (alpha) version *appears* to be: 2.3.30-3
Обновление и компиляция ядра
Компиляция и установка
ядра
cd /usr/src
make dep #(makes dependencies)
make clean #(cleans out previous cruft)
make bzImage #(make zImage pukes if the kernel is to big, and 2.2.x
#kernels tend to be pretty big)
make modules #(creates all the modules you specified)
make modules_install #(installs the modules to
#/lib/modules/kernel.version.number/)
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
image=/boot/vmlinuz-2.2.9
label=linux
root=/dev/hda1
read-only
image=/boot/vmlinuz-2.2.5
label=linuxold
root=/dev/hda1
read-only
Added linux *
Added linuxold
Версии ядра
Патчи (заплатки) для ядра
Для безопасности
Для национальных версий
Linux Intrusion Detection System Patch (LIDS)
Проект Linux ACL
RSBAC
LOMAC
auditd
Fork Bomb Defuser
Отладка ядра
KDB v0.6
(встроенный отладчик)
kGDB (дистанционный отладчик)
Найди своих коллег! |