Навожу инструкцию по сборке и установке ядра linux-3.2.2 под дистрибутивом Debian, пропатченный с помощью Grsecurity 2.2.2.
Сначала обновляем систему и устанавливаем пакеты нужные для сборки:
apt-get update apt-get install patch vim linux-source-2.6.18 build-essential kernel-package fakeroot msort-gui initrd-tools pkg-config qt3-dev-tools libqt3-mt-dev libncurses5-dev
Все действия будут делаться с привилегиями обычного пользователя!!!
su alex $ cd /home/alex
Качаем ядро и патч grsecurity с официальных сайтов.
$ wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.2.2.tar.bz2 $ wget http://grsecurity.net/test/grsecurity-2.2.2-3.2.2-201201302345.patch
Распакуем скачанное ядро и сделаем некоторые действия, которые будут обсуждаться позже.
$ tar xjvf linux-3.2.2.tar.bz2 $ cd linux-3.2.2 $ ln –s Documentation/virtual/lguest/ lguest $ mv lguest Documentation/
Патчим ядро, чистим от нежеланных файлов и делаем сборку:
$ patch –p1 < ../ grsecurity-2.2.2-3.2.2-201201302345.patch $ make-kpkg clean (make clean && make mrproper) $ make menuconfig (cp /boot/config- .config && make oldconfig) $ fakeroot make-kpkg --initrd kernel_image kernel_headers (make-kpkg --append-to-version "-своя" --revision "111" --us --uc --initrd kernel_image kernel_headers)
Сборка займет от 1 до 5 часов, следовательно, можете пойти отдохнуть или почитать умную книгу!) После сборки, в родительском каталоге у вас появятся два deb пакетика, которые нужно установить. Это установочные пакеты с пропатченым grsecurity ядром и заголовками.
$ cd .. $ exit dpkg -i linux-headers-3.2.2-своя_111_i386.deb linux-image-3.2.2-своя_111_i386.deb
Ну вот и вся петрушка! Теперь перезапустите систему и загружайтесь под новым ядром.
reboot
Тест безопасности:
После того, как вы убедились, что ядро рабочее (т.е. оно запустилось) можно начать тест безопасности grsecurity. Для этого качаем исходник программы для теста или просто устанавливаем менеджером пакетов и тестим!
wget http://www.grsecurity.net/%7Epaxguy1/paxtest-0.9.7-pre5.tar.gz tar xzvf paxtest-0.9.7-pre5.tar.gz cd paxtest-0.9.7-pre5 make generic ./paxtest kiddie *** or *** apt-get install paxtest
Чистка лишних ядер:
Если вы экспериментировали на множестве ядрах и уровнях безопасности, у вас будет много ядер в Grub-е. Если они все рабочие и вам нужны, можете их оставить. Если нужны не все навожу пример чистки.
dpkg --list | grep linux- apt-get remove linux-headers-3.2.2-своя_111 linux-image-3.2.2-своя aptitude purge `dpkg -l | grep ^rc | awk '{print $2}'`
Bugs:
Я должен был рассказать о тех непонятных действиях, так вот, при переходе ядер с версии 2.х.х на 3.х.х поменялось расположение папки с документацией по lguest, что приводит к ошибке при компиляции ядра.
Ошибка:
make: *** Documentation/lguest: No such file or directory. Stop. make: *** [debian/stamp/build/kernel] Error 2
Для того чтобы исправить данную ошибку нужно сделать следующие действия.
Решение:
*** Первый вариант ***
$ vim .config - Set #CONFIG_LGUEST_GUEST=n - Set #CONFIG_LGUEST=n
*** Второй вариант ***
$ cd linux-3.2.1/Documentation $ ln –s virtual/lguest/ lguest
*** Третий вариант ***
$ cd linux-3.2.2 $ wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/patch-3.2.2.bz2 $ tar xjvf patch-3.2.2.bz2 $ patch –Np1 –i patch-3.2.2
Вот и все.