Archives pour la catégorie ‘VMware’

VMWare Fusion 2 : activer l’accès console VNC

Sous Windows et Linux, VMWare 6 intègre un serveur VNC et permet un accès console VNC aux machines virtuelles. Toutefois sur Mac, VMWare Fusion ne propose pas cette option dans l’interface graphique de configuration. Cela demeure possible, en l’activant manuellement :

- fermer VMWare Fusion.
- placez-vous dans le répertoire de stockage de vos VM (fichiers  .vmwarevm).
- cliquez droit sur votre VM et sélectionnez « Afficher le contenu du paquet ».
- ouvrez le fichier à l’extension .vmx avec un éditeur de texte.
- ajoutez-y les lignes suivantes :

RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.port = "5901"
RemoteDisplay.vnc.password = "mot_de_passe"

Les options sont explicites, assurez-vous que le port d’écoute soit disponible.

Pour finir, lancez la VM et votre client VNC sur vnc://127.0.0.1:5901. Pour ce qui est de l’accès distant, SSH restera comme toujours votre ami.

Remarque : deux options en plus pour faciliter l’accès au BIOS setup :

bios.forceSetupOnce = "TRUE"
bios.bootDelay = "1500"

La première option ne marche que pour le boot suivant (le flag est désactivé ensuite). BootDelay est alors utile pour augmenter le délai en millisecondes de bascule par Fn + F2.

VMware Server 2 : erreur d'accès 503 avec la console Web

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

Haut de page