viernes, 17 de octubre de 2014

Proxmox 3.1 vncproxy [2/2]


Esta es la segunda parte de un articulo (Proxmox 3.1 vncproxy [1/2]) que he publicado para conectar con un cliente vnc a las pantallas de las máquinas virtuales que corren bajo proxmox.

Es posible que no sepas como publicar la pantalla de la máquina virtual desde linea de comandos. Si lo haces desde el cliente web, este se encarga de levantar el demonio vnc para que puedas ver la pantalla. Pero si queremos evitar utilizar el cliente web, tendremos que levantar nosotros el demonio para poder conectarnos.

Tenemos dos opciones. Vamos a ver en primer lugar la más simple, que únicamente necesitamos el ejecutar el comando:
nc -l -p 5900 -c "/usr/sbin/qm vncproxy 101"
Donde 5900 es el puerto donde se publicará el servidor de vnc (5900 es el puerto por defecto de vnc) y 101 es el identificador de la máquina virtual en proxmox.

Éste método es muy cómodo pero implica tener que ejecutar el comando cada vez que queramos hacer uso de la pantalla de la máquina virtual. Creo que esto debería ser lo más correcto y no dejar publicada la pantalla de la máquina virtual, porque pese a que este demonio de vnc nos solicita las credenciales del sistema para acceder a la máquina virtual, no deja de ser una vulnerabilidad dejar publicado un servicio que utilizaremos puntualmente.

La segunda opción está orientada a dejar publicado el servicio siempre en nuestro sistema. Pero para esto tendremos que instalar un servicio si no lo tenemos instalado. Para sistemas Debian el paquete se llama "openbsd-inetd", lo instalaremos con:
apt-get install openbsd-inetd 
Una vez instalado editaremos el fichero /etc/inetd.conf para añadir la linea:
5900 stream tcp nowait root /usr/sbin/qm qm vncproxy 101
Y solo nos falta reiniciar el servicio "/etc/init.d/openbsd-inetd restart" para poder disfrutar de la pantalla de nuestra máquina virtual siembre que queramos.

IMPORTANTE: Los clientes VNC tradicionales NO funcionan con este sistema. Lee el artículo Proxmox 3.1 vncproxy [1/2] para ver como conectar correctamente con la pantalla de la máquina virtual.


Proxmox 3.1 vncproxy [1/2]


Me he encontrado un el siguiente problema cuando intento conectar con las pantallas de máquinas virtuales de Proxmox sin utilizar su cliente web. El cliente web es muy cómodo, pero un poco molesto cuando quieres hacer una conexión rápida y no tienes el navegador correctamente configurado (plugin de java y java correctamente configurado).

Por esto estaba buscando la forma de establecer conexiones vnc con el demonio que levanta proxmox sin necesidad de utilizar el cliente web.

El primer problema que me encontré fue que los clientes vncviewer y  xtightvncviewer me devolvían el mismo error...
jmruiz@jmruizhome :~/$ vncviewer 192.168.1.1:5900
Connected to RFB server, using protocol version 3.8
Server did not offer supported security type
jmruiz@jmruizhome :~/$ xtightvncviewer 192.168.1.1:5900
Connected to RFB server, using protocol version 3.8
Server did not offer supported security type
Pero encontré un cliente que permitía conectar sin problemas http://tigervnc.org/.

Si tus problemas simplemente eran solucionar el error "Connected to RFB server, using protocol version 3.8" y "Server did not offer supported security type" ya has encotrado la solución. Descarga he instala tigervnc https://bintray.com/tigervnc/stable/tigervnc/1.3.1 y podrás conectar sin problemas.

Para la versión de linux ten cuidado donde lo descomprimes; el fichero contiene dos directorios "/etc" y "/usr", está preparado para instalar en la raíz del sistema y sobrescribir vncviewer y vncserver. Pero si únicamente vas a utilizar el cliente puedes descomprimir el contenido del fichero en un directorio (tar xvzf fichero.tgz -C directoriodestino) y ejecutar usr/bin/vncviewer y el cliente te solicitará el host para conectarse o bien pasar como argumento directamente el host "usr/bin/vncviewer 192.168.1.1:5900".

Una vez que establece la conexión el servidor nos solicita que confirmemos el certificado ssl (esto es lo que no tienen implementado los clientes vncviewer y  xtightvncviewer ) y nos solicita las credenciales de acceso.


Es muy importante que pongamos usuario@pam en lugar de usuario únicamente, hay que decirle al demonio vnc donde ha de buscar los usuarios para la autenticación. En caso de tener un LDAP con dominio, obviamente pondremos el dominio.


Y por fin tendremos conexión con la pantalla de nuestra máquina virtual. Yo no soy partidario de utilizar VNC para el trabajo diario, pero en ocasiones es necesario ver qué está pasando en la pantalla de la máquina virtual y es complicado verla de forma remota.

Por si alguien no sabe como publicar con vnc la pantalla de una máquina virtual proxmox os dejo el siguiente artículo donde explico como hacerlo. Proxmox 3.1 vncproxy [2/2]


lunes, 5 de mayo de 2014

Instalar SQL Developer 4.0.1.14.18 en Ubuntu 14.04


Lo primero que tenemos que hacer para instalar SQL Developer 4.0.1 en nuestro recién actualizado Ubuntu 14.04 es descargar tanto el paquete de instalación para otras plataformas como el requisito JDK7 definido por el fabricante.

Los dos ficheros los puedes descargar desde los enlaces:

JDK7
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


SQL Developer 4.0.1
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/

En mi caso guardo todo este tipo de aplicaciones en un directorio Aplicaciones dentro del home de mi usuario (/home/jmruiz/Aplicaciones), pero lo pueden guardar donde queráis:

Tras descargar y descomprimir en el directorio "Aplicaciones" los dos ficheros que hemos descargados tenemos que darle permisos de ejecución al fichero "sqldeveliper.sh" que está en el directorio descomprimido de "sqldeveloper". Ejecutaremos: "chmod 775 sqldeveloper.sh"


jmruiz@portatil:~/Aplicaciones/sqldeveloper4.0.1.14.18$ chmod 775 sqldeveloper.sh 

Ahora tenemos que decir a sqldeveloper dónde está el jdk7, para ello tendremos que editar el fichero "/home/jmruiz/.sqldeveloper/4.0.0/product.conf" (nano /home/jmruiz/.sqldeveloper/4.0.0/product.conf) y añadir la línea:

SetJavaHome /home/jmruiz/Aplicaciones/jdk1.7.0_55


Es muy posible que el fichero no exista, ejecutad "./sqldeveloper.sh" y os devolverá un error de ejecución por no encontrar el jdk, pero os creará la estructura "/home/user/.sqldeveloper/*".

Tabién hay que aladir la siguiente linea en el mismo fichero "sqldeveloper.sh":  "unset GNOME_DESKTOP_SESSION_ID" (nano /home/jmruiz/Aplicaciones/sqldeveloper4.0.1.14.18/sqldeveloper.sh)


Y ya estamos preparados para ejecutar SQL Developer sin problemas:




Error GNOME_DESKTOP_SESSION_ID

Si no se añade "unset GNOME_DESKTOP_SESSION_ID" en sqldeveloper.sh, obtendrás el siguiente error:


./sqldeveloper.sh 
 Oracle SQL Developer
 Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.

 LOAD TIME : 941#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x69d66be0, pid=22665, tid=1836993344
#
# JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)
# Java VM: Java HotSpot(TM) Server VM (24.55-b03 mixed mode linux-x86 )
# Problematic frame:
# C  0x69d66be0
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/jmruiz/Aplicaciones/sqldeveloper4.0.1.14.18/sqldeveloper/bin/hs_err_pid22665.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#
/home/jmruiz/Aplicaciones/sqldeveloper4.0.1.14.18/sqldeveloper/bin/../../ide/bin/launcher.sh: línea 1193: 22665 Abortado                (`core' generado) ${JAVA} "${APP_VM_OPTS[@]}" ${APP_ENV_VARS} -classpath ${APP_CLASSPATH} ${APP_MAIN_CLASS} "${APP_APP_OPTS[@]}"


Error JDK7

Y si no añades "SetJavaHome /home/jmruiz/Aplicaciones/jdk1.7.0_55" en "/home/jmruiz/.sqldeveloper/4.0.0/product.conf" obtendrás el siguiente error.

jmruiz@portatil:~/Aplicaciones/sqldeveloper4.0.1.14.18$ ./sqldeveloper.sh

 Oracle SQL Developer
 Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.

Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /home/jmruiz/.sqldeveloper/4.0.0/product.conf

sábado, 11 de enero de 2014

Instalar Netbeans 7.4 en Ubuntu 13.10

En primer lugar y después de que finalice la descarga desde la web oficial de netbeans, hay que asignar permisos de ejecución al fichero "netbeans-7.4-linux.sh". A mi siempre me gusta hacer estas cosas desde un terminar. Así pues nos situamos en el directorio de descargas y ejecutamos "chmod 775 netbeans-7.4-linux.sh", para después ejecutar el fichero.

Tras ejecutar el fichero aparecerá un asistente muy simple que nos ayudará en la instalación.











Finalmente ya podemos lanzar nuestra nueva instalación de netbeans.


jueves, 9 de enero de 2014

Problemas con tarjeta SDXC en Ubuntu

Las pasadas navidades los reyes magos de oriente me obsequiaron con una cámara reflex; lamentablemente se les olvidó traer una buena tarjeta SD para la cámara. Después de investigar un poco  y ver los tipos de SD que admite el modelo que tengo, hice el pedido de una SDXC de SanDisk Ultra de 64GB a 30MB/s (un pepino :D).

Pero cual es mi sorpresa al conectarla a mi lector de tarjetas que mi Ubuntu 13.10 no es capaz de montar el sistema de ficheros de la tarjeta. Me da una advertencia de que posiblemente esté dañado.

Pero no es así. Al parecer el sistema de ficheros que tiene la tarjeta es exfat, en lugar de fat32 o fat16. Así pues tengo que instalar el soporte de este sistema de ficheros en mis sistema para poder montarlo y tratar el contenido de la tarjeta SD.

Para instalar soporte de exfat en Ubuntu 13.10  hay que seguir los siguiente pasos:

  • En primer lugar abrir una consola e iniciar sesión de administrador con "sudo -s".
  • Después añadir el repositorio que contiene los paquetes "apt-add-repository ppa:relan/exfat".
  • Y para terminar instalar el paquete que nos proporcionará soporte para exfat "apt-get install exfat-fuse".

Tras estos tres simples pasos nuestro sistema ya está preparado para montar el sistemas de ficheros de nuestra nueva SDXC y podemos comenzar a utilizarla montando el sistema de ficheros normalmente. Ahora dejará de aparecer la advertencia y podremos acceder al contenido de la tarjeta.

viernes, 3 de enero de 2014

Instalar Ubuntu desde memoria USB

He encontrado algunos manuales en la red sobre como crear un instalador de Ubuntu en una memoria usb, pero todos los que he encontrado son utilizando la aplicación "Universal-USB-Installer" y no sabía como hacer esto mismo desde mi Ubuntu 13.10, pero finalmente he visto que es muy simple.

En primer lugar necesitaremos la imagen iso de Ubuntu que pretendamos instalar. Esta la podemos descargar desde la web oficial de ubuntu.

Buscamos en el buscador de aplicaciones de Ubuntu "creador de disco de arranque", ejecutamos y nos aparecerá esta aplicación; donde podemos ver imágenes iso detectadas en nuestro sistema y dispositivos para crear discos de arranque.


Seleccionamos el dispositivo que queremos crear como disco de arranque y hacemos click en "borrar disco", ésto nos pedirá confirmación y permiso de administrador.



Cuando termine el proceso seleccionaremos la iso correspondiente a ubuntu y el dispositivo limpio. Ahora se activará el botón "crear disco de arranque", le clickamos y comenzará el copiado de archivos.



Cuando termine el proceso de copiado nos volverá a solicitar autenticación de administrador para la instalación del cargador de arranque en el dispositivo usb.



Y el proceso termina.


Ahora ya podemos iniciar nuestra máquina desde usb con el instalador de ubuntu.