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.
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.
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!!!
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:
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.
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