[Resolu] Linux-patch-debianiser un 2.6.19.2 vanilla: inutile

Bonjour,
je me suis acharné à compiler un 2.6.19.2 issu des dépôts vanilla (us.kernel), truffé d’erreur de compilation (2000 lignes de variables ou fonctions non correctement initialisées).
Raison: Appliquer le patch de securité grsecurity (incluant PaX) afin d’obtenir un noyau hardened. Comme rien n’est jamais simple, grsecurity pour 2.6 n’est disponible que pour le 2.6.19.2, et comme par hasard, c’est un noyau que les depôts debian semblent avoir tout bonnement ignoré.
Comme c’était encore trop simple, j’ai aussi patch-o-matisé les sources, pas moins de 10 compiles avant d’obtenir un noyau exempt de patchs incompilables issus de patch-o-matic et updater les sources d’iptables de 1.3.5 à 1.3.7 (un patch qui m’a semblé crucial de grsecurity pour iptables n’est disponible que pour iptables-1.3.5, d’où la manip).
J’ai mon noyau hardened 2.6.19.2 et réduit à sa plus simple expression: 1240 ko pour bZimage, et je suis content.

Mais ça me #+&%£$ d’avoir un noyau qui, certes il va comme un gant à mon matos, qui n’est pas estampillé DEBIAN. Je veux donc appliquer les linux-patch-debian à ce ¹=&%* de kernel…
Comment faire ? Où les trouver ?

ps: Il semblerait que la difficulté à patcher un noyau avec grsecurity s’explique par l’orientation SELinux de debian, versus grsecurity. Est-ce que je dois abandonner grsecurity en faveur de selinux ? pourquoi n’a-t’on pas le choix ?

Tu trouveras peut être ici : http://kernel-handbook.alioth.debian.org/index.html#contents

merci dimm, mais ça ne m’apporte pas la solution. Il faudrait que je puisse trouver les patchs ou les sources debian du 2.6.19.2. Et puis je viens de constater à regret que iptables est incompilable.
Enfin, rien n’est perdu, j’ai envie de voir de plus prés :

  • ce que propose SELinux
  • la compilation avec le tout frais sorti des bacs gcc-4.2.0 stable.
  • mes tech’niques compilatoires, bien débourrées ces dernières heures.
    :unamused:

tu connais snapshot.debian.net/ ?

je m’en rappelais plus de celui-là … mais ça me fourni pas les sources 2.6.19 … ni les patchs … tu les as trouvés toi ?

non.
Mais il n’y a pas une protection qui rend inutile le parch grsec dans le 2.6.20 ?
C’est pas des options à bêtement activer dans le noyau, maintenant ?

[quote=“mattotop”]C’est pas des options à bêtement activer dans le noyau, maintenant ?[/quote]C’est SELinux, sans doute dont tu veux parler …
J’en viens à cette conclusion: la debian team à opter pour SELinux, ya qu’à voir la vétusté du paquet grsecurity dispo dans les dépôts (seulement fonctionnel pour les 2.4.x !) pour imaginer que grsecurity passe à la trappe chez nous …

C’est dommage, je commençais à approfondir le fonctionnement de PaX (dont je fais remarquer la disponibilité de paxctl dans le dépôt, pourquoi paxctl ?! [inhérent à grsecurity]), et je trouvais ça plutôt efficace:
PaX a pas voulu me laisser lancer une session Looking Glass pour tester mon “accélération 3D” et le bluffant desktop de la mort.

Avec paxctl, fastoche de configurer pour autoriser lg3d-jdk et lg3d … Par contre, faut un ordi puissant, mon céléron a du mal à suivre la souris :smiley:

C’est dommage, ben je verrais bien si SELinux a autant d’option que ça:

[quote]jcode@debian:~$ grep -EA3 “(GRKERNSEC|PAX)” $fic
CONFIG_PAX=y

PaX Control


CONFIG_PAX_SOFTMODE=y
CONFIG_PAX_EI_PAX=y
CONFIG_PAX_PT_PAX_FLAGS=y
CONFIG_PAX_NO_ACL_FLAGS=y

CONFIG_PAX_HAVE_ACL_FLAGS is not set

CONFIG_PAX_HOOK_ACL_FLAGS is not set

Non-executable pages


CONFIG_PAX_NOEXEC=y
CONFIG_PAX_PAGEEXEC=y
CONFIG_PAX_SEGMEXEC=y

CONFIG_PAX_DEFAULT_PAGEEXEC is not set

CONFIG_PAX_DEFAULT_SEGMEXEC=y

CONFIG_PAX_EMUTRAMP is not set

CONFIG_PAX_MPROTECT=y

CONFIG_PAX_NOELFRELOCS is not set

CONFIG_PAX_KERNEXEC=y

Address Space Layout Randomization


CONFIG_PAX_ASLR=y
CONFIG_PAX_RANDKSTACK=y
CONFIG_PAX_RANDUSTACK=y
CONFIG_PAX_RANDMMAP=y

Miscellaneous hardening features


CONFIG_PAX_MEMORY_SANITIZE=y
CONFIG_PAX_MEMORY_UDEREF=y

Grsecurity


CONFIG_GRKERNSEC=y

CONFIG_GRKERNSEC_LOW is not set

CONFIG_GRKERNSEC_MEDIUM is not set

CONFIG_GRKERNSEC_HIGH is not set

CONFIG_GRKERNSEC_CUSTOM=y

Address Space Protection


CONFIG_GRKERNSEC_KMEM=y

CONFIG_GRKERNSEC_IO is not set

CONFIG_GRKERNSEC_PROC_MEMMAP=y
CONFIG_GRKERNSEC_BRUTE=y
CONFIG_GRKERNSEC_MODSTOP=y

CONFIG_GRKERNSEC_HIDESYM is not set

Role Based Access Control Options


CONFIG_GRKERNSEC_ACL_HIDEKERN=y
CONFIG_GRKERNSEC_ACL_MAXTRIES=3
CONFIG_GRKERNSEC_ACL_TIMEOUT=30

Filesystem Protections


CONFIG_GRKERNSEC_PROC=y

CONFIG_GRKERNSEC_PROC_USER is not set

CONFIG_GRKERNSEC_PROC_USERGROUP=y
CONFIG_GRKERNSEC_PROC_GID=1001
CONFIG_GRKERNSEC_PROC_ADD=y
CONFIG_GRKERNSEC_LINK=y
CONFIG_GRKERNSEC_FIFO=y
CONFIG_GRKERNSEC_CHROOT=y
CONFIG_GRKERNSEC_CHROOT_MOUNT=y
CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
CONFIG_GRKERNSEC_CHROOT_PIVOT=y
CONFIG_GRKERNSEC_CHROOT_CHDIR=y
CONFIG_GRKERNSEC_CHROOT_CHMOD=y
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
CONFIG_GRKERNSEC_CHROOT_MKNOD=y
CONFIG_GRKERNSEC_CHROOT_SHMAT=y
CONFIG_GRKERNSEC_CHROOT_UNIX=y
CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
CONFIG_GRKERNSEC_CHROOT_NICE=y
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
CONFIG_GRKERNSEC_CHROOT_CAPS=y

Kernel Auditing

CONFIG_GRKERNSEC_AUDIT_GROUP is not set

CONFIG_GRKERNSEC_EXECLOG is not set

CONFIG_GRKERNSEC_RESLOG=y

CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set

CONFIG_GRKERNSEC_AUDIT_CHDIR is not set

CONFIG_GRKERNSEC_AUDIT_MOUNT is not set

CONFIG_GRKERNSEC_AUDIT_IPC is not set

CONFIG_GRKERNSEC_SIGNAL=y
CONFIG_GRKERNSEC_FORKFAIL=y
CONFIG_GRKERNSEC_TIME=y

CONFIG_GRKERNSEC_PROC_IPADDR is not set

CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set

Executable Protections


CONFIG_GRKERNSEC_EXECVE=y
CONFIG_GRKERNSEC_SHM=y
CONFIG_GRKERNSEC_DMESG=y

CONFIG_GRKERNSEC_TPE is not set

Network Protections


CONFIG_GRKERNSEC_RANDNET=y

CONFIG_GRKERNSEC_SOCKET is not set

Sysctl support

CONFIG_GRKERNSEC_SYSCTL is not set

Logging Options


CONFIG_GRKERNSEC_FLOODTIME=10
CONFIG_GRKERNSEC_FLOODBURST=4
CONFIG_KEYS=y[/quote]

[quote=“usinagaz”]

  • la compilation avec le tout frais sorti des bacs gcc-4.2.0 stable.[/quote] Bon ben pas moins de 150 minutes pour compiler le gcc-4.2.0, pour finir sur : make[3]: *** [javax/swing.lo] Erreur 1 make[3]: quittant le répertoire « /usr/bin/gcc-4.2.0/i686-pc-linux-gnu/libjava » make[2]: *** [all-recursive] Erreur 1 make[2]: quittant le répertoire « /usr/bin/gcc-4.2.0/i686-pc-linux-gnu/libjava » make[1]: *** [all-target-libjava] Erreur 2 make[1]: quittant le répertoire « /usr/bin/gcc-4.2.0 » make: *** [all] Erreur 2
    je laisse tomber ça, pour me contenter du gcc-4.1 des dépôts debian.

Pas la peine de s’embêter avec un 2.6.19.2, confère ici :
http://forum.debian-fr.org/viewtopic.php?t=7793

ps: reste que le patch grsecurity applicable à un 2.6.20.7 est à cette heure un patch de test, et non la version stable de grsecurity.