Установка grsecurity на CentOS 5.7 Final

Будем ставить Grsecurity на CentOS 5.7
На момент написания этой статьи, существует релиз CentOS 6, однако в этой ОС присутствуют проблемы, например проблемы совместимости с панелями управления ISPmanager, Directadmin, так же были замечены проблемы с Cpanel и это не единственные факторы, не позволяющие использовать CentOS 6 для организации стабильных и отказоустойчивых ресурсов.

Поэтому, речь пойдет об установке Grsecurity именно на CentOS 5.7
Эта ОС использует довольно старые ядра, поэтому в процесс установки мы включим так же обновление ядра.

На момент написания статьи, нам доступен патч grsecurity для ядра версии linux-2.6.32.49.
Есть другие патчи для других ядер, было опробовано довольно большое количество как тех, так и других, но в итоге, лучший результат принесло именно это ядро, с последним патчем.
Официальные ядра с kernel.org собираются с проблемами, либо ОС запускается с проблемами.
Все это конечно решаемо, но можно воспользоваться готовым ядром 2.6.32.49 заточенным под CentOS 5.7, что мы и сделаем.

Часть первая — обновление ядра.

Поехали:

wget http://man-linux.ru/files/grs-centos-5-7-all.tgz
tar -zxvf grs-centos-5-7-all.tgz
cd grs-centos-5-7-all

В этом архиве все необходимое для архитектуры x86_64. Для начала установим ядро и перезагрузимся с ним, что бы убедиться, что оно нормально работает:

rpm -Uvh choon-kernel-firmware-2.6.32.49-0.choon.centos5.x86_64.rpm
rpm -Uvh choon-kernel-2.6.32.49-0.choon.centos5.x86_64.rpm

Встало? В файле:
/boot/grub/grub.conf
Проверяем, что это ядро первое в списке и при необходимости меняем
default 1
на
default 0
Теперь можно перезагружаться, командой reboot

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

Часть вторая — установка grsecurity.
Для начала установим необходимые пакеты и более новую версию binutils, а так же получим сорцы ядра:

cd grs-centos-5-7-all
yum install rpm-build redhat-rpm-config unifdef gcc gcc-c++ ncurses ncurses-devel
rpm -Uvh choon-kernel-devel-2.6.32.49-0.choon.centos5.x86_64.rpm
tar -zxvf binutils-2.18.tar.gz
cd binutils-2.18
./configure
make && make install
cd
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
cd /root/grs-centos-5-7-all/
rpm -i choon-kernel-2.6.32.49-0.choon.centos5.src.rpm 2>&1 | grep -v mockb
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` choon-kernel-2.6.32.49-0.spec 2> prep-err.log | tee prep-out.log
cd ../BUILD/

Если все прошло нормально — мы находимся в директории BUILD, в которой лежат исходники нашего ядра.
Далее, я следую традиционному пути сборки ядра — перемещаю исходники в /usr/src, патчу ядро там и собираю его:

cp -r linux-2.6.32 /usr/src
cd /usr/src/linux-2.6.32/linux-2.6.32.49
cp /root/grs-centos-5-7-all/grsecurity-2.2.2-2.6.32.49-201112082138.patch .
patch -p1 < grsecurity-2.2.2-2.6.32.49-201112082138.patch
cp /boot/config-2.6.32.49-0.choon.centos5 .config

Ядро должно пропатчиться без всяких запросов и лишних действий с вашей стороны, иначе что-то идет не так.
Пропатчилось?
Включаем grsecurity:

make menuconfig

В Security options переходим на вкладку Grsecurity, ставим пробел на опции enabled (таким образом она включится и откроются настройки grsecurity), далее можно, например, выбрать нужный уровень безопасности и т.п., другие опции в принципе менять не обязательно — на ваше усмотрение.
Собираем ядро:

make bzImage && make modules && make modules_install && make install

Теперь в /boot/grub/grub.conf первым в списке должно стоять наше ядро, с приставкой grsec. Если это так, меняем
default 1
на
default 0
И уходим в ребут.
После успешной загрузки сервера, проверяем, что загрузилось именно ядро с grsec:
uname -a
И благодарим за рабочее ядро разработчиков www.choon.net, а заодно админов www.webxl.ru за этот самый мануал :)

Удачи!


Автор: Виктор Симон
www.man-linux.ru
Права копирования
Опубликовано 11 декабря 2011 - информация могла устареть.

комментария 3

Ответить