Suite au passage sous un noyau 2.6.28 Grsecurity/PAX (niveau de sécurité Hardened Gentoo [server]), la console d’accès Web de VMware Server est inaccessible, avec pour message d’erreur « 503 Service unavailable ». Or si pas de console, plus de serveurs virtuels !

Le problème se situe au niveau du serveur Tomcat, qui refuse de se lancer. La JVM Sun 1.5  utilisée par VMWare plante suite aux protections de PAX. Pour le vérifier :

# cd /usr/lib/vmware/webAccess/java/jre1.5.0_15/bin
# ./java -version
Killed

Pour y remédier, un header PAX doit être ajouté et le flag MPROTECT doit être désactivé sur l’ensemble des binaires :

# cd /usr/lib/vmware/webAccess/java/jre1.5.0_15/bin
# paxctl -C *
file keytool got a new PT_PAX_FLAGS program header
file kinit got a new PT_PAX_FLAGS program header
file klist got a new PT_PAX_FLAGS program header
file ktab got a new PT_PAX_FLAGS program header
file orbd got a new PT_PAX_FLAGS program header
file pack200 got a new PT_PAX_FLAGS program header
file policytool got a new PT_PAX_FLAGS program header
file rmid got a new PT_PAX_FLAGS program header
file rmiregistry got a new PT_PAX_FLAGS program header
file servertool got a new PT_PAX_FLAGS program header
file tnameserv got a new PT_PAX_FLAGS program header
file unpack200 got a new PT_PAX_FLAGS program header
# paxctl -m *

Par exemple, pour le binaire java, les flags doivent être fixés de cette façon :

# paxctl -v java
PaX control v0.5
Copyright 2004,2005,2006,2007 PaX Team <pageexec@freemail.hu>

- PaX flags: -----m-x-e--
    MPROTECT is disabled
    RANDEXEC is disabled
    EMUTRAMP is disabled

Ceci vaut depuis la version 1.5 de Java.

The goal of MPROTECT is to help prevent the introduction of new executable
code into the task’s address space. This is accomplished by restricting the
mmap() and mprotect() interfaces.

The restrictions prevent
- creating executable anonymous mappings
- creating executable/writable file mappings
- making an executable/read-only file mapping writable except for performing
relocations on an ET_DYN ELF file (non-PIC shared library)
- making a non-executable mapping executable

Présentation de PAX :

http://www.unixgarden.com/index.php/securite/le-fonctionnement-de-pax-protection-against-execution