All posts by marble

Iniciar vmware con Windows XP desde la pantalla de login de Ubuntu

Si no tenemos un ordenador con muchos recursos y queremos utilizar vmware o vmplayer con una imagen de Windows XP para trabajar durante un buen rato (e.g. tenemos acabar unos informes del trabajo en casa y necesitamos Word, Excel, Access y compañia), una buena solución es hacer que se inicie vmware directamente sin cargar GNOME.

Para conseguir esto, crearemos una sesión nueva que podremos elegir desde la pantalla de login (GDM), para ello creamos el fichero “/usr/share/xsessions/windows-xp.desktop”:

[Desktop Entry]
Encoding=UTF-8
Name=Windows-XP
Exec=/usr/local/bin/startwindowsxp.sh
Icon=
Type=Application

Esta sesión ejecutará el fichero “/usr/local/bin/startwindowsxp.sh” que también tendremos que crear con el contenido:

#!/bin/bash
cd /mnt/extra/Windows_XP_Professional/
vmplayer --fullscreen /mnt/extra/Windows_XP_Professional/Windows_XP_Professional.vmx

En este fichero debemos modificar el path donde tenemos guardado nuestra imagen de Windows XP. Finalmente damos permisos de ejecución:

sudo chmod 755 /usr/local/bin/startwindowsxp.sh
sudo chmod 755 /usr/share/xsessions/windows-xp.desktop

Ahora ya podemos salir de nuestra sesión de usuario y desde GDM elegir la sesión “Windows-XP”, si nos pregunta si queremos hacer de esa la sesión predeterminada indicaremos que no, dado que solo la usaremos de forma puntual. Una vez iniciada la máquina, podemos ponerla en modo pantalla completa haciendo click sobre el menu de vmware y pulsando F11.

Dado que no se ha iniciado GNOME ni ningún gestor de ventanas, solo tenemos acceso a la máquina virtual vmware (cuando esta se cierre también se cerrará la sesión y volveremos a la pantalla de login). Como contrapartida, tendremos más RAM disponible para la máquina virtual y por tanto podremos trabajar más cómodamente.

Compartir conexión a Internet con firestarter

Si queremos compartir una conexión a Internet podemos utilizar Firestarter:

sudo aptitude install firestarter

* En otros posts ya he comentado cómo (en caso de ser necesario) combinar Firestarter con Network Manager

Para que la configuración del resto de ordenadores sea sencilla, lo mejor será tener activado un servidor DHCP, para ello necesitamos instalar también (necesitamos crear un enlace simbólico al script de inicio para evitar un pequeño bug de firestarter):

sudo aptitude install dhcp3-server
cd /etc/init.d
sudo ln -s dhcp3-server dhcpd
update-rc.d -f dhcp3-server remove

A continuación, podemos iniciar Firestarter en “Sistemas – Administración – Firestarter”. Si es la primera vez, nos saldrá un asistente que podremos seguir paso a paso, de lo contrario vamos a “Editar – Preferencias – Configuración de red” y activamos:

  • Activar la compartición a Internet
  • Activar DHCP para red local

Expandimos “Detalles del servidor DHCP” e indicamos unos rangos de IP que coincidan con la IP que hayamos asignado a la interfaz de red local (si aun no le hemos asignado una IP podemos hacerlo en “Sistema – Administración – Red”).

A partir de este momento, cuando se activa Firestarter también lo hará la compartición y el servidor DHCP.

Bazaar-NG (bzr), sistema de control de versiones distribuido

Bazaar-ng es un sistema de control de versiones distribuido que, al igual que CVS o Subversion, nos permite guardar progresivamente los cambios que vayamos realizando sobre un conjunto de archivos de texto (habitualmente código fuente), recuperar versiones anteriores, mostrar diferencias, integrar el trabajo de diversos programadores, etc…

Sin embargo, a diferencia de CVS o Subversion, Bazaar-ng nos permite trabajar de formas mucho más flexibles… desde el típico esquema cliente-servidor hasta la descentralización de los repositorios, tal y como veremos más adelante en el apartado de flujos de trabajo.

Para instalarlo en Ubuntu:

aptitude install bzr 

Veamos como podemos trabajar con Bazaar…
Continue reading Bazaar-NG (bzr), sistema de control de versiones distribuido

Visor ficheros chm para GNU/Linux

Si necesitamos visualizar el típico fichero de ayuda en formato ‘chm’ bajo GNU/Linux, podemos utilizar gnochm:

aptitude install gnochm

Lo he probado con la documentación de CakePHP y funciona de maravilla 🙂

Actualización Tal y como nos comenta David en un comentario, también tenemos xchm que también es una aplicación que se integra en GNOME y tiene alguna característica extra que lo puede hacer más interesante (índice de palabras, búsqueda en la página que visualizamos, etc…). Me quedo con xchm 😉

Partición encriptada para un usuario en Ubuntu Edgy

Después de escuchar historias de portátiles robados para conseguir información confidencial de empresas, es más que evidente que no parece suficiente con proteger nuestro ordenador mediante configuraciones adecuadas, buenas contraseñas, firewalls, etc… sino que debemos ir un paso más allá e encriptar la información en nuestro disco duro. De esta forma, si alguien se hiciese con el y lo conectase a otro ordenador seria incapaz de extraer ningún tipo de información.

Por otro lado, es necesario poder combinar esa seguridad con comodidad para el usuario, el cual no quiere tener que recordar que debe cifrar unos datos determinados siguiendo una serie de pasos (por ejemplo utilizando gnupg). De ahí que la solución más acertada es la creación de una partición encriptada, la cual se montará automáticamente al hacer login el usuario (el password de la partición y el del usuario serán los mismos).

Para este objetivo utilizaremos Luks, aplicación que nombre de pasada en la guía sobre Ubuntu Edgy (sección “Encriptación de memorias USB”). Lo primero que necesitamos es una partición en nuestro disco duro disponible para guardar allí el directorio de nuestro usuario (e.g. “/home/usuario”), para ello podríamos utilizar gparted desde su liveCD pare redimensionar particiones existentes/crear nuevas particiones/etc…

Una vez tengamos una partición disponible (por ejemplo personalmente me he creado una de 15 GB), seguiremos los siguientes pasos desde nuestra Ubuntu:
Continue reading Partición encriptada para un usuario en Ubuntu Edgy

Bugs de mysql-admin en Ubuntu Edgy

Si necesitamos trabajar y administrar una MySQL (ya sea en nuestra máquina o en remoto) podemos utilizar la interfaz mysql-admin para la administración y mysql-query-browser para realizar consultas. Por desgracia, en Ubuntu Edgy mysql-admin tiene un par de bugs.

El primero de ellos es un molesto error que nos impide acceder a la administración de usuarios. Para evitarlo podemos crear un fichero ‘/usr/local/bin/mysql-admin-fixed.sh’:

#!/bin/bash
export DEBUG_DONT_SPAWN_FETCHES=1
mysql-admin

Y le damos permisos de ejecución:

sudo chmod 755 /usr/local/bin/mysql-admin-fixed.sh

A partir de ahora, para ejecutar mysql-admin utilizaremos:

mysql-admin-fixed.sh

El segundo bug nos impide acceder a la configuración de la base de datos, para arreglarlo simplemente tendremos que editar ‘/etc/mysql/my.cnf’ y comentar la línea que dice:

#skip-external-locking

Con esto ya podemos utilizar mysql-admin más cómodamente 🙂

Crackear redes wireless (WEP)

Si queremos comprobar la seguridad de nuestra red wireless con encriptación WEP y observar cuanto se tardaría en crackear, necesitamos aircrack-ng. Una vez instalado el paquete, en una terminal podemos ejecutar:

sudo airodump-ng

De esta forma se nos mostrará información sobre las redes wireless que tenemos a nuestro alcance:

  • BSSID: Dirección MAC del punto de acceso (AP)
  • PWR: Calidad de la señal, no todas la tarjetas wireless lo soporta y puede que no aparezca correctamente.
  • Beacons: Los puntos de acceso mandan periódicamente este tipo de paquete, recibir más significa que la calidad de la señal es mejor o estamos más cerca del AP.
  • # Data: Paquetes capturados que realmente son útiles para crackear la red, son los generados por otro cliente que este utilizando la red.
  • CH: Canal
  • MB: Velocidad de la red wireless
  • ENC: Indica si la red tiene encriptación WEP, WPA, o si esta abierta OPN
  • ESSID: Nombre de la red wireless

Una vez tengamos identificada la red que deseamos probar nos fijamos en el canal que utiliza y empezamos a guardar paquetes. Por ejemplo guardar en un archivo llamado “dump” la info del canal 11 a través de la interfaz de red eth1:

sudo airodump-ng -c 11 -w dump eth1

Ahora es cuando debemos tener mucha paciencia dado que dependemos del trafico que haya en la red wireless seleccionada, para poder crackearla necesitaremos al menos 250.000 paquetes con diferentes IVS. También podríamos provocar tráfico injectando paquetes, pero para eso necesitamos que el driver de nuestra tarjeta lo soporte y es mejor buscar información en la propia página de aircrack-ng.

Para detener la captura podemos pulsar CTRL+C, y para reanudarla podríamos volver a ejecutar el mismo comando. Cada vez que ejecutemos el comando se nos irán generando ficheros “dump-00.cap”, “dump-01.cap” que despues podremos agrupar mediante:

ivstools --convert dump-00.cap dump-00.ivs
ivstools --convert dump-01.cap dump-01.ivs
ivstools --merge dump-00.ivs dump-01.ivs dump-total.ivs

A continuación podemos intentar averiguar el password de la red mediante:

aircrack-ng dump-total.ivs

Se nos presentará un listado de BSSIDs con el número de IVS (paquetes) capturados, seleccionamos el BSSID de la red que queremos averiguar el password y esperamos a que haya suerte. Si fallase, podríamos seguir capturando más paquetes para volverlo a intentar o incluso intentar mirar las opciones de este comando para ajustar más los cálculos que realiza, como por ejemplo:

aircrack-ng -a 1 -b 00:16:38:C5:A6:13 -x2 -s -c -n 128

Donde:

  • “-a 1” significa que la encriptación es WEP (un 2 significaria WPA)
  • “-b 00:16:38:C5:A6:13” indica el BSSID de la red que queremos crackear
  • “-x2” hace que intente averiguar los 2 últimos bytes de la clave por fuerza bruta
  • “-s” que muestre la clave en ASCII (una vez encontrada)
  • “-c” significa que tenga en cuenta solo caracteres alfanuméricos para la clave
  • “-n 128” indica que la encriptación WEP es de 128 (también podriamos indicar 64)

Más información mediante “man aircrack-ng” 😀

Synaptic y dependencias automáticas

Acabo de descubrir que el Synaptic de Ubuntu Edgy ya tiene la funcionalidad de marcar las dependencias que se instalan automáticamente, he probado a instalar “gnome-dia” el cual necesita instalar también “dia-common” y “dia-libs”.

Una vez instalado, vuelvo a buscar “gnome-dia” y lo desinstalo. En este momento nuestro sistema tiene paquetes instalados que no están siendo usados, y los podemos localizar yendo a “Estado -> Instalados (auto desinstalable)”. Alli podriamos seleccionar todos los paquetes y desinstalarlos, en este caso deberian aparecer “dia-common” y “dia-libs”.

Esta funcionalidad es similar a la que tiene aptitude, el comando de consola que nos permite instalar también aplicaciones. No entiendo como no se le ha dado más noticia a esta novedad, personalmente la considero fundamental para mantener el sistema limpio. Si miramos el Changelog de Synaptic podemos ver cuando se implementó la funcionalidad:

synaptic (0.57.10ubuntu1) edgy; urgency=low

  * ...
  * merged simple support for the apt auto-mark of automatic dependencies
    feature (new "Installed (auto removable)" status)

Además es compatible con aptitude, por tanto podemos usar uno u otro indistintamente y podremos mantener nuestro sistema limpio 🙂