Inhaltsverzeichnis

Kernel Patchen


Bearbeitet: F4RR3LL|sven
E-Mail: sven.richter@nixhelp.de
Stand: 03.03.2009


hier mal ein kleines Howto von mir wie man einen Kernel patcht. Im folgenden Beispiel patchen wir den 2.6.28.6 mit grsec.

Start

Ich bevorzuge deb Pakete, diese kann man sich lokal auf den Rechner ziehen und bei einer Reinitialisierung des Servers sind diese
schnell verfügbar.
Wer keine passende .config Datei zur Hand hat, kann anhand der Ausgabe der Befehle 'lspci' und 'lsmod' die installierte Hardware
sowie mit dem alten Kernel laufende Module in Erfahrung bringen.
Wer die Controller, Dateisysteme (Filesystem) statisch (*) in den Kernel kompiliert, wird seinen Server anschließend ohne Initrd \\hochfahren können.
Wenn 'lspci' ungenaue Angaben liefert, gibt es die Möglichkeit mit


dmidecode > /root/mainboard.txt



die Daten des Mainboards auszulesen und danach mit Hilfe von google nach Informationen darüber zu suchen.
Der Befehl schreibt eine sehr lange Textdatei nach /root. Diese kann nun in aller Ruhe gelesen werden.

Abhängigkeiten installieren und Source saugen


Bevor wir mit dem Kernel anfangen, lösen wir die Abhängigkeiten auf, die zum bauen und patchen des Kernels benötigt werden.

apt-get install -y kernel-package libncurses5-dev fakeroot wget bzip2 dash patch make automake




wechseln in das Verzeichnis '/usr/src'


cd /usr/src




Ziehen und jetzt die Sourcen des Kernels und den Patch für grsec


wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.6.tar.gz
wget http://download.nixhelp.de/Patch/grsecurity-2.1.12-2.6.28.6-200902171941.patch



(Aktuelle grsec Patches findest Du unter http://www.grsecurity.net/~spender/)

Dabei ist es wichtig, das die Architektur des Kernels und des Patches übereinstimmen, d.h. du kannst für einen 2.6.24
Kernel nicht diesen Patch benutzen!!!

entpacken und patchen

Nun entpacken wir die Source für den Kernel und wechseln in das Verzeichnis mit den Kernel-Sourcen


tar zxf linux-2.6.28.6.tar.gz
cd linux-2.6.28.6




Nun können wir mit dem patchen beginnen :)…


patch -Np1 < ../grsecurity-2.1.12-2.6.28.6-200902171941.patch




Jetzt dürften keine Fehler oder Fragen erscheinen.
Es dauert einen kleinen Moment und wenn der Patch erfolgreich durchgelaufen ist, darf jetzt endlich gebaut werden.

Vorher eine passende Config in das Sourcenverzeichnis reinkopieren. Beispiel:


ls /boot | grep config
config-2.6.28.6

cp /boot/config-2.6.28.6 .config


OvH Kunden bekommen eine fertige config ohne Modulsupport→
hier geht es so:

wget ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-32
mv 2.6-config-xxxx-std-ipv4-32 .config


Für 64 Bit Systeme ist diese Config anzuwenden ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-64
Wir haben auch fertige Configs incl Modulsupport hier http://download.nixhelp.de/OvH-Kernel/configs/

Jeeettttzzzzztttt können wir loslegen:

.deb Paket erstellen


fakeroot make-kpkg --revision=etch.personal1 kernel_image --config menuconfig




Um grsec zu aktivieren, musst du unter der Kerneloption 'Security Options –> grsecurity –> grsecurity statisch in den Kernel aktivieren (*).
Danach hast Du Optionen wie 'Security Level'. Diesen nicht höher als Medium stellen!!!!!!!!!!!!!!!!!
Man kann sein System, die chroots sehr schön mit grsec absichern, genausoschnell kann man sich aussperren oder die Kiste kommt
wegen paranoider Sicherheitseinstellungen nicht mehr hoch oder blockierst den Netzzugang deines Servers…

Sind alle Einstellungen vorgenommen worden, die letzte Messe gesungen, speicherst du alle getätigten Einstellungen ab und
anschließend wird 'automatisch' im Anschluss das .deb gebaut. Es befindet sich anschließend im /usr/src Verzeichnis, also eine Ebene tiefer.

Installation des Kernel


Installieren kannst das deb mit


dpkg -i $Paketname.deb




Jetzt noch schnell den Bootloader updaten
LILO:

nano /etc/lilo.conf

GRUB:

update-grub



So in dieser Form werden nicht nur Kernel mit grsec gepatcht, sondern auch andere Pakete.



Zurück zum Index