Archivo del Autor

En esta última versión de Cygwin han solucionado algo que resultaba bastante molesto y que hacía de las instalaciones de Cygwin un sistema nada versátil. En las versiones de 1.5.* y anteriores de este sistema, se registraban los puntos de montaje en el registro del Windows que había instalado el sistema Cygwin. Por lo que para usarlo en otros equipos había que hacer unos truquitos que nos explicaba Vicente Navarro en su genial blog.

Por suerte ahora no hay que hacer tantas peripecias para tener un sistema Cygwin que podamos llevar y traer en una memoria flash o disco duro portátil. Sin embargo, sí que todavía hay que instalar bastantes paquetes útiles que no se instalan por defecto y hacer algunos pequeños cambios de configuración para que se comporte como queremos. Y por supuesto, esto es lo que voy a explicar hoy.

Antes de empezar con las instrucciones, me gustaría contar por qué uso Cygwin y por qué de modo portable. Bien, el caso es que odio ir a una oficina de trabajo y encontrarme con un sistema que no dispone de una auténtica consola Bash, openssh y otras tantas utilidades Unix o GNU/Linux con las que me desenvuelvo tan estupendamente. Si el equipo que tengo asignado es un Windows, sé que siempre puedo usar Putty, pero me limita mucho sobre todo si tengo que interactuar con otros equipos Unix o GNU/Linux en una red local. Con openssh dispongo scp y el cliente ssh, además de un demonio sshd. ¡Lo más sorprende es que se puede incluso instalar KDE o Gnome en Cygwin! Otra cosa que es realmente útil es disponer tanto de cliente Xorg y como servidor Xorg. Con lo que incluso podemos iniciar aplicaciones gráficas de forma remota en nuestro Windows. ¡Ofrece un montón de posibilidades!

Una cosa que hecho en falta es que no se pueda ejecutar el instalador en modo consola desde una sesión Bash, sería fantástico poder manejar el instalador como un gestor de paquetes estilo apt, rpm o portage. Quién sabe, quizás algún día en una nueva versión nos sorprendala gente de Cygwin.

Bueno, no me enrollo más, vamos al meollo del asunto. La idea es hacer una instalación en nuestro sistema (al que llamaremos a partir de ahora Cygwin/X Base), y del cual crearemos la versión portable (a la que nos referiremos como Cygwin/X Portable. De este modo tendremos una copia de seguridad en casa, nuestro equipo de trabajo o donde hayamos escogido hacer la instalación. También será Cygwin/X Base el que usaremos para mantener actualizado Cygwin/X Portable, aunque ya no sea necesario hacer todo esto a partir de la versión 1.7.*, pero es solo para ir manteniendo una copia de seguridad de la instalación por si perdiéramos la memoria flash. Por último, para tener la instalación y la versión portable debidamente sincronizadas haremos uso de rsync.

1.- Instalación de Cygwin/X.

  1. Nos bajamos el instalador de la web oficial, y lo ejecutamos.
  2. Una vez ejecutado seguimos los siguientes pasos:
    1. Seleccionamos Install from internet.Download Source
    2. Podemos dejar el directorio de instalación de la raíz del sistema por defecto (C:\cygwin), pero si lo  preferimos otro lugar es el momento de escoger otro lugar. Recomiendo dejar marcada la opción Install for All Users.Root Install Directory
    3. Elegimos el directorio donde se descargarán los paquetes que serán usados para ser instalados en el sistema Cygwin/X Base.Local Package Directory
    4. La opción más común será Direct Connection, en otro caso pulsa sobre lo que proceda.Internet Connection
    5. Ahora debemos decidir de qué servidor espejo (mirror) queremos descargar los paquetes de instalación, yo normalmente uso el espejo que hay en kernel.org.Download Site
    6. No debemos preocuparnos de la alerta, sobre todo si es nuestra primera instalación, pulsamos en Aceptar y continuamos.Setup Alert
    7. Vamos indicando qué paquetes vamos a instalar, para ir más rápido podemos ir escribiendo los nombres en la caja de búsqueda de arriba a la derecha, hacemos clic sobre el circulito de las flechitas y se nos marcará dicho paquete para ser instalado. El instalador es capaz de resolver las dependencias él solo, por lo que no tenemos que preocuparnos de eso. Los paquetes que yo suelo instalar son: openssh, nano, rsync, xinit, X-start-menu-icons, xclipboard, xhost, xorg-server, xterm, wget, screen… Y cualquier otro paquete que consideres que te puede ser últil.Select Packages
    8. Aceptamos las dependencias que nos avisa que serán necesarias.Resolving Dependencies
    9. Esperamos pacientemente a que se instale.Setup Progress
    10. Ya está instalado, ahora escogemos si quieremos accesos directos, yo personalmente solo los quiero en el menú de inicio de Windows, además, luego usaré esos accesos directos para copiarlos y personalizarlos.Install Complete

2.- Creación de Volumen Cifrado TrueCrypt.

He decidido llevarlo en un volumen cifrado porque de este modo puedo guardar algunas claves privadas para iniciar sesiones SSH o otras claves ahí almacenadas sin temor a que sean accedidas por otras personas. La ventaja de usar esto además de proteger nuestros datos ante la lectura de terceros es que al usar TrueCrypt para montar el volumen cifrado como otra unidad más, podemos escoger la “letra” por lo que podemos asegurarnos de que siempre será la misma. Por ejemplo, podemos usar la T:\ de TrueCrypt. Esto es importantísimo para la adaptación de la instalación para ser portable, como veremos más adelante.

Para llevar a cabo la creación del volumen cifrado os recomiendo que sigáis la guía que escribí para Omeyas Web, en la que explico paso a paso como hacerlo. Solo debéis tener en cuenta que una vez terminado el proceso debéis dejar montado el volumen en la unidad T:\ para poder seguir los ejemplos y pasos de esta guía.

3.- Adaptación de Cygwin/X para uso portable.

Básicamente lo que vamos a hacer ahora es copiar el Cygwin/X Base al Cygwin/X Portable y hacer algunos cambios para que funcione con normalidad en cualquier equipo Windows XP/Vista/7 al que lo llevemos.

  1. Tenemos que copiar C:\cygwin a T:\, no importa si lo haces en el intérprete de comandos de Windows o con el clásico arrastrar y soltar. Lo importante es que te asegures que se ha copiado todo y que el resultado es que tienes una carpeta llamada T:\cygwin.
  2. Modificar el fichero T:\cygwin\cygwin.bat para que quede de este modo:
    @echo off
    T:
    chdir T:\cygwin\bin
    bash --login -i
  3. Cambiar variable de entorno HOME y USER. Editamos el fichero T:\cygwin\etc\profile la parte que es como lo que sigue:
    # Set the user id
    USER="`id -un`"
    export USER

    Para que quede como esta otra:
    # Set the user id
    USER="miusuario"
    export USER
    export HOME="/home/${USER}"

    Teniendo en cuenta que miusuario es el nombre de usuario usado para hacer la instalación inicial de Cygwin/X. Para salir de dudas puedes probar a ejecutar id -un en una lína de comandos Cygwin. Es importante tener en cuenta que una vez que modifiquemos manualmente este fichero pasa a ser responsabilidad nuestra mentenerlo al día, pues si en alguna de las sucesivas actualizaciones se hiciera algún cambio en este fichero, Cygwin ya no lo hará, dejando ese menester para nosotros.
  4. Vamos al menú Inicio de Windows, copiamos el acceso directo de Cygwin/X (o bien XWin Server) a T:\ y modificamos esta copia del acceso directo. Cambiamos la casilla Destino por:
    T:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c "exec /home/inicializar.sh"
    Teniendo en cuenta que miusuario es el usuario usado en la sesión de Windows en la que se ha hecho la instalación de Cygwin. La casilla Iniciar en quedaría T:\cygwin\bin.
  5. Configuración XWin copiar T:\cytwin\etc\X11\system.XWinrc a T:\cygwin\home\miusuario\.XWinrc y lo editamos a nuestro gusto, en mi caso he dejado el menú apps de este modo:
    // Make some menus...
    menu apps {
    xterm exec "xterm -ls +tb -fg white -bg black"
    "Emacs" exec "emacs"
    notepad exec notepad
    xload exec "xload -display %display%" # Comment
    }
  6. Creamos el fichero T:\cygwin\home\miusuario\.startxwinrc que ejecutará al inicio xterm, el mío ha quedado así:
    xterm -ls +tb -fg white -bg black
  7. Creamos el fichero T:\cygwin\home\inicializar.sh, que contiene esto:
    #!/bin/bash
    usuario=`id -un`
    if [ "${usuario}" != "miusuario" ]
    then
    ln -sf /home/miusuario /home/${usuario}
    fi
    mkpasswd -l -c > /etc/passwd
    mkgroup -l -c > /etc/group
    startxwin -- -nolock
  8. Configuración de Bash, añadimos las líneas siguientes al final de T:\cygwin\home\miusuario\.bashrc:
    export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w $\[\033[00m\] "
    alias ls='ls --color'

4.- Actualización de Cygwin/X y sincronización de Cygwin/X Base y Cygwin/X Portable.

El proceso para mantener actualizado nuestro Cygwin/X Portable es bien simple. Serían básicamente dos pasos: actualizar Cygwin/X Base y copiar los cambios a Cygwin/X Portable.

  1. Actualizar Cygwin/X Base, tan simple como volver a ejecutar el instalador de Cygwin. Recordará todas las opciones que escogimos al principio, cuando lleguemos a la sección de escoger los paquetes a instalar, seleccionamos que queremos actualizarlos.
  2. Usamos rsync para copiar todos los ficheros que han cambiado de nuestro Cygwin/X Base con respecto a nuestro Cygwin/X Portable. Pero sin sobreescribir T:\cygwin\Cygwin.bat y T:\cygwin\etc\profile.
    Por tanto, habría que sincronizar la instalación de Cygwin/X de C:\ con la de T:\ excluyendo el Cygwin.bat y el fichero /etc/profile, para eso debemos iniciar una consola Bash de Cygwin/X Base, es muy importante que hagamos rsync desde el sistema base y sin tener ningún proceso en ejecución en el sistema portable, para evitar errores al copiar archivos:
    $ rsync --modify-window=1 -av --exclude cygwin/Cygwin.bat --exclude cygwin/etc/profile --exclude cygwin/home/* /cygdrive/c/cygwin /cygdrive/t/
    Por otro lado, también parece conveniente tener una copia del directorio HOME del Cygwin/X Portable, en el Cygwin/X Base. De este modo tenemos una copia de seguridad de nuestro directorio de trabajo en el equipo. En este caso el comando se ejecuta en el sistema portable y teniendo cuidado de no tener ningún proceso del sistema base en ejecución:
    $ rsync --modify-window=1 -av /cygdrive/t/cygwin/home /cygdrive/c/cygwin/

5.- Cuestiones a tener en cuenta.

  • En caso de pérdida, robo, o corrupción de datos de la memoria flash o cualquier situación en la que ya no podamos volver a recuperar la memoria o su contenido, debemos volver a llevar a cabo los pasos 2, 3.1, 3.2, 3.3 y 3.4.
  • Al usar Cygwin/X Portable en un equipo nuevo podríamos encontrarnos errores debido a que intente buscar el $HOME asociado a un usuario Windows con nombre diferente al que hizo la instalación de Cygwin/X Portable. Ejemplo, el nombre de usuario que estábamos usando durante la instalación de nuestro Cygwin/X Portable era PabloMármol, pero en el sistema que estamos ahora haciendo uso de Cygwin/X Portable, el usuario de Windows que ha iniciado sesión es PedroPicapiedra. Esto, junto con la modificación /etc/profile para cambiar el $HOME, provocará que no se pueda encontrar la ruta /home/PabloMármol. Para evitar esto, haremos un enlace simbólico de PabloMármol a PedroPicapiedra:
    $ cd /home
    $ ln -s PedroPicapiedra PabloMármol

Si te ha resultado útil y te gustaría compensarme invitándome a una cervecita o bien ayudánme con los gastos del blog:

Comments 7 Comentarios »

  1. Añadimos las USE oss y pulseaudio a nuestro make.conf.
  2. Instalamos Wine:
    # emerge -avq wine
  3. Descargamos la versión de Windows de Spotify de aquí y lo instalamos:
    $ wine Spotify Installer.exe
  4. Ejecutamos winecfg, vamos a la pestaña audio y desmarcamos el soporte para sonido PulseAudio y Alsa, pero activamos OSS. Pulsamos aceptar.

    Imagen de winecfg

    Imagen de configuración de audio de Wine.

  5. Pulsamos con el botón derecho sobre el icono de Spotify que nos ha creado en el escritorio y añadimos al principio de la ruta de ejecución padsp.

    Lanzador Spotify

    Configuración del lanzador de Spotify

  6. ¡A disfrutar de la música!

Comments No Hay Comentarios »

Un ScreenCast es al vídeo lo que un SnapShot (pantallazo o captura de pantalla) a la fotografía. Hay algunos programas que realizan capturas de vídeo de lo que se muestra en nuestra pantalla, unos con mejores resultados que otros y también con mayor o menor dificultad de uso. Ejemplo de ello son Istanbul y RecordMyDesktop, dos soluciones que podrían funcionar muy bien. Sin embargo, no me permiten grabar sonido de un micrófono mientras graba la pantalla, para por ejemplo dar explicaciones mientras muestras algo. Cosa que puede ser bastante útil. Hace unos meses descubrí que ffmpeg es capaz de esto y me puse a hacer algunas pruebas para conseguir grabar vídeos con la característica de que se pudiera oír mi voz dando algunas explicaciones. En realidad no era para nada muy serio, pero en alguna ocasión me ha surgido la situación que querer explicar a alguien cómo hacer algo, y la verdad que tardaría un minuto en hacerlo con un vídeo así y no como sería con una explicación por escrito, que además si no me explico bien, quizás pueda llevar más a confusión. Veamos las opciones de ejecución por separado:

  • -i dispositivo se usa para indicar el dispositivo de entrada tanto para vídeo como para audio.
  • -f formato es para indicar el formato de entrada ya sea de vídeo o de audio.
  • -r n consigue que se haga la grabación n fotogramas por segundo.
  • -s tamaño es la forma que tiene ffmpeg de recibir el tamaño de captura de pantalla, puede ser indicado de varias formas, como 640x480 o bien su equivalente vga. Podemos ver una lista de nombres para los diferetesta tamaños aquí o bien poner un tamaño diferente de la forma valorxvalor.
  • -b se usa para estipular la tasa de bits por segundo que se van a usar en la salida ya sea de vídeo o sonido, ejemplo: -b 128k.
  • -sameq consigue que se haga la captura con la misma calidad que tenga la propia entrada. Haciendo que la tasa de bits por segundo de la salida sea la necesaria como para que no sea apreciable ninguna pérdida de calidad con respecto a la entrada. Si usas esta opción, no es neceseario usar -b.
  • -async n muy útil para conseguir una buena sincronización del sonido de entrada y la imagen. De este modo, si grabamos nuestra voz mientras grabamos el vídeo veremos como nuestras palabras van en sincronía con el vídeo.

Algunos ejemplos:

  • $ ffmpeg -f oss -i /dev/dsp salida.mpg
    Para capturar sonido con OSS.
  • $ ffmpeg -f alsa -i plughw:1,0 salida.mpg
    Para capturar sonido con ALSA.
  • $ ffmpeg -f -x11grab -i :0.0 -s 1280x1024 -r 25 salida.mpg
    Para capturar vídeo de la pantalla.
  • $ ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -sameq Desktop/out.mpg
    Para capturar vídeo de la webcam.
  • $ ffmpeg -async 1 -f alsa -i plughw:1,0 -f x11grab -s 1440x900 -r 25 -i :0.0 -b 128k Desktop/out.mpg
    Capturar vídeo y sonido a la vez.

Vídeo de demostración haciendo una prueba:

Fuente: ffmpeg.org

Comments 2 Comentarios »

Estamos de enhorabuena, Google al fin ha publicado su versión de Google Talk Plugin para los usuarios de GNU/Linux tanto en 32 bits como en 64 bits. Los distribuyen como paquetes Debian, pero no es problema, podemos descomprimirlos e instalarlos a mano en cualquier distribución GNU/Linux sin mucha complicación.

  1. Descargamos el paquete .deb de este enlace. En mi caso reconoció que uso un sistema de 64 bits, supongo que influye el hecho de que uso un navegador compilado para 64 bits.
  2. $ ar x google-talkplugin_current_amd64.deb
    Descomprimimos el paquete .deb.
  3. # tar xzf data.tar.gz --exclude=opt --exclude=etc --strip-components 2 -C /usr
    # tar xzf data.tar.gz --exclude=usr --exclude=etc --strip-components 2 -C /opt

    Extraemos solo los ficheros necesarios para instalar el plugin.
  4. $ /opt/google/talkplugin/GoogleTalkPlugin
    Comprobamos si es capaz de encontrar las bibliotecas necesarias ejecutando este comando.
  5. # ln -s /usr/lib/libssl.so /usr/lib/libssl.so.0.9.8
    # ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.0.9.8

    Si nos da algún error, tenemos que crear enlaces simbólicos de las bibliotecas que nos pidiera.

Fuente: systemadmin.es

Comments No Hay Comentarios »

Probablemente haya personas que no sepan que cuando borramos un fichero de nuestro disco duro, realmente no es borrado. Al menos de la forma análoga en que podemos borrar nuestras tareas escritas a lápiz de cuando íbamos al “cole”. Lo que ocurre en realidad es que en el sistema de ficheros se marcan como libres todos los bloques usados para contener ese fichero. Sin embargo, los datos o contenido de ese fichero sigue existiendo. Vamos, que no hemos pasado la goma de borrar por cada una de las líneas de nuestras tareas del “cole”.

Pero sí que hay herramientas que nos ayudan a hacer un borrado seguro de nuestros datos en el disco duro, como lo es BCWipe, disponible para GNU/Linux, MacOS X y Windows.

¿Por qué querría yo asegurarme de que lo que borro no puede ser recuperado? Realmente, cualquier persona debería preocuparse por un borrado seguro, al menos, en el caso de deshacerse de un disco duro. Porque ahí podrían sacarse muchos datos nuestros como contraseñas, datos fiscales, personales, incluso información íntima que muy probablemente no nos gustaría que nadie más conociera como pueden ser registros de conversaciones de chat o mensajes de correo elecrónico.

BCWipe lo que hace es escribir información de forma aleatoria en todos los bloques ocupados por el fichero a eliminar y, una vez hecho esto, solicitar al sistema de ficheros que lo borre. Así, ni usando las propias herramientas de recuperación del sistema de ficheros, ni otras tecnologías de recuperación de información, podríamos recuperar los datos borrados. Hay personas que afirman que incluso llenar de ceros todos los bloques del fichero no es suficiente, ya que hay sistemas capaces de leer incluso el dato escrito con anterioridad a ese cero. ¡Increíble!

Menos mal que BCWipe dispone de varios algoritmos de reescritura y con diferetes repeticiones de reescritura, con lo que conseguimos reducir muchísmo la probabilidad de recuperar la información borrada.

Veamos 3 ejemplos primordiales de uso de BCWipe:

  1. Este es un ejemplo típico para borrar un dispositivo de bloque por completo, ya sea el disco completo o una partición. Hay que tener en cuenta que si se lo hacemos al disco completo (como hda o sda) perderemos con ello el MBR, la tabla de particiones y las particiones junto con su contenido. Pero si se lo hacemos a una partición (como hda1 o sda6) solo perderíamos el contenido de esa partición, y luego nos bastaría con formearla de nuevo para volverla a usar.
    # bcwipe -b /dev/sda
    Borrado de disco completo.
    # bcwipe -bv /dev/hda6
    Borrado completo del contenido de la partición, y además ofrece información adicional por consola.
  2. También tenemos la posibilidad de borrar ficheros concretos, directorios o árboles de directorios.
    $ bcwipe mifichero.txt
    Borrado de un fichero.
    $ bcwipe -f mifichero.txt miotrofichero.txt
    Borrado de una enumeración de ficheros sin preguntar.
    $ bcwipe -rvf directorio
    Borrado de un directorio y todo su contenido de forma recursiva, sin preguntar, y además ofrece información adicional por consola.
  3. Y también tiene una opción muy últil, que es hacer borrado seguro de toda la parte vacía del sistema de ficheros, es decir, todo lo que hemos borrado con anterioridad sea borrado realmente. Además esto puede ser usado con el sistema de ficheros montado.
    # bcwipe -F /home
    Borrado seguro del espacio libre del directorio /home.

A partir de ahora, cuando venda un disco duro usado, siempre le haré un bcwipe -bf antes de ponerlo a la venta. Por si acaso.

Comments 4 Comentarios »

Tener un sistema de 64bits en ocasiones da algunos quebraderos de cabeza, más que nada porque hay Software que es distribuido para plataformas x86 en su versión 32bits. Esta práctica es muy normal en desarrollos de Software privativo. Antes Adobe no distribuía su famoso Flash para 64bits para GNU/Linux y otro ejemplo es Skype, que aún se niega a publicar una versión de 64bits de su famoso programa de vídeo-conferencias.

Si además unimos a esto que Skype tiene problemas con las cámaras basadas en el driver gspca, tenemos un cóctel bastante amargo.

Para hacer funcionar nuestra flamante cámara basada en el driver gspca_561 o cualquier otra cámara basada en los drivers gspca en el Skype de nuestro Gentoo GNU/Linux 64bits debemos seguir los pasos siguientes:

  1. # echo "media-libs/libv4l ~amd64" >> /etc/portage/package.keywords
    # emerge -av media-libs/libv4l

    Para instalar la versión 0.6.1 de libv4l que está enmascarada y es la que mejor funciona.
  2. # echo "net-im/skype ~amd64" >> /etc/portage/package.keywords
    # emerge -av net-im/skype

    Instalamos Skype.
  3. # nano -w /usr/bin/skype
    Modificamos el fichero para que cuando ejecutemos Skype cargue la biblioteca de compatibilidad con V4l1:

    #!/bin/sh
    cd “/opt/skype”
    if [ -n "/opt/skype" ] ; then
    if [ "${LD_LIBRARY_PATH+set}" = "set" ] ; then
    export LD_LIBRARY_PATH=”${LD_LIBRARY_PATH}:/opt/skype”
    else
    export LD_LIBRARY_PATH=”/opt/skype”
    fi
    fi
    export LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so
    exec ./skype “$@”

Si nos encontrásemos con la situación de que portage nos dice que Skype está enmascarado por el tipo de licencia, debemos decir a portage que acepte la licencia de Skype o bien que las acepte todas y así olvidarnos de eso. Basta con editar el fichero /etc/make.conf para añadir una de estas líneas:

  • ACCEPT_LICENSE="skype-eula"
    Para aceptar solo la licencia de Skype.
  • ACCEPT_LICENSE="*"
    Para aceptar cualquier licencia.

Con esto podemos usar normalmente Skype, y veremos como ya podemos disfrutar de nuevo nuestra Webcam.

Comments No Hay Comentarios »

¿Cómo podemos instalar un sistema operativo en un equipo en el que no hay ni ratón, ni teclado, ni tan siquiera un monitor? Por red, está claro. Para ello primeramente deberíamos haber configurado la BIOS de nuestro equipo para que inicie automáticamente desde CD.

Después debemos preparar nuestra imagen de CD para que inicie automáticamente el servicio SSH al iniciar el sistema, y por supuesto con una clave de paso conocida. El CD de instalación de Gentoo nos propone unos parámetros de arranque para este fin, un ejemplo: gentoo-nofb dossh passwd=miclavedepaso y nos iniciará el sistema sin soporte frame-buffer y arrancará el demonio SSH para entrar como root con clave miclavedepaso.

Pero claro, no tenemos teclado, no podemos introducir estos parámetros en el arranque. Por lo que modificaremos el fichero isolinux.cfg del CD de instalación para hacer esto.

    1. Descargamos la imagen iso de la web de Gentoo.
    2. # mount -o loop -t iso9660 install-x86-minimal-20100119.iso /mnt/cdrom
      Montamos la imagen.
    3. # mkdir /tmp/iso
      # cp -rp /mnt/cdrom/* /tmp/iso

      Copiamos el contenido.
    4. # nano -w /tmp/iso/isolinux/isolinux.cfg
      Modificamos las siguientes líneas, dejando todo lo demás tal cual está.

      default gentoo-nofb
      timeout 30
      label gentoo
      kernel gentoo
      append root=/dev/ram0 init=/linuxrc nokeymap looptype=squashfs loop=/image.squashfs dosshd passwd=miclavedepaso cdroot initrd=gentoo.igz vga=791
      label gentoo-nofb
      kernel gentoo
      append root=/dev/ram0 init=/linuxrc nokeymap looptype=squashfs loop=/image.squashfs dosshd passwd=miclavedepaso cdroot initrd=gentoo.igz

    5. # mkisofs -J -R -l -z -V "MiGentoo 20100119" -o MiGentoo-20100119.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso/
      Creamos la imagen iso.
    6. # rm -rf /tmp/iso
      Borramos ficheros temporales.
    7. # umount /mnt/cdrom
      Desmontamos la imagen original del sistema de ficheros.
    8. # qemu -boot d -cdrom MiGentoo-20100119.iso
      Probamos la iso con Qemu.

 

Ahora podemos grabar migentoo.iso en un CD para arrancar nuestro equipo. Desde otro equipo podemos entrar por SSH de forma remota. Para ello debemos saber qué dirección IP tiene en nuestra red, cosa que supongo no será muy complicado de averiguar. Podemos entrar en nuestro router y mirar qué equipos hay con direcciones asignadas.

Sin embargo tenemos la opción de modificar la inicialización de la red para que en lugar de intentar configurar todas las interfaces de red haciendo uso de DHCP, ponga una dirección IP válida para nuestra interfaz de red. De este modo, una vez llevado a cabo el paso 4 anterior, prosiguiríamos con los siguitentes:

  1. # emerge -av sys-fs/squashfs-tools
    Instalamos sys-fs/squashfs-tools si no lo estuviera.
  2. # mkdir /tmp/squash /mnt/squash
    # mount -o loop -t squashfs /tmp/iso/image.squashfs /mnt/squash
    # cp -rp /mnt/squash/* /tmp/squash/

    Montamos el sistema de ficheros SquashFS y copiamos el contenido.
  3. # nano -w /tmp/squash/etc/conf.d/net
    Modificamos el fichero con nuestra configuración de red de modo que quede así:

    # This blank configuration will automatically use DHCP for any net.*
    # scripts in /etc/init.d. To create a more complete configuration,
    # please review /etc/conf.d/net.example and save your configuration
    # in /etc/conf.d/net (this file :]!).
    config_eth0=( "192.168.1.111/24" )
    routes_eth0=( "default via 192.168.1.1" )

  4. # mksquashfs /tmp/squashfs /tmp/iso/image.squashfs.nuevo
    # umount /mnt/squash
    # rm -f /tmp/iso/image.squashfs
    # mv /tmp/iso/image.squashfs.nuevo /tmp/iso/image.squashfs
    # rm -rf /tmp/squash

    Creamos la nueva imagen SquashFS, desmontamos la imagen antigua y substituimos la copia antigua por la nueva. Para acabar borramos la copia temporal del contenido de la imagen SquashFS.

Una vez hecho esto podemos continuar con el paso 5 del primer bloque. De esta manera con ejecutar en nuestra máquina de trabajo un comando como por ejemplo ssh root@192.168.1.111, ya podríamos comenzar con la instalación. También podríamos usar el CD como sistema de rescate, por supuesto.

Si vas a instalar Gentoo te recomiendo que uses GNU screen, ya que si la conexión SSH falla o simplente quieres apagar tu equipo de trabajo, puedes cerrar y volver a entrar en la sesión screen con posterioridad para seguir por donde ibas.

Comments 4 Comentarios »

Cuando visitamos una página web segura, esas en las que nos aparece un candadito o bien alguna leyenda que nos dice que estamos visitando una página web segura en nuestro navegador, normalmente es porque esta web tiene su certificado firmado sobre uno de los certificados raíz instalados en nuestro navegador y es avalado por la autoridad certificadora de ese certificado raíz.

No solo es útil para entornos cliente servidor, como el caso de un navegador que se conecta a un servidor web. Pueden ser utilizados para firmar documentos, correo-e, o incluso cualquier archivo. La utilidad de firmar es para autenticar que un documento electrónico cualquiera ha sido enviado por quién dice que lo ha enviado y además para poder verificar su integridad, quiere decir que el mensaje no ha sido modificado tras haber sido firmado ni ha ocurrido una corrupción de datos durante su envío. También tiene la utilidad del cifrado, para poder ocultar el contenido de esta información para que solo pueda ser leída por las personas para las que ha sido escrita.

CACert.org es una autoridad certificadora gratuita, formada por la comunidad y para la comunidad. Existen muchas páginas web, sobre todo relacionadas con proyectos de software libre que usan certificados de CACert.org.

Para que nuestro navegador web acepte el certificado de una web segura como válido necesitamos el certificado raíz de la autoridad certificadora instalado en nuestro navegador. Por ejemplo, la propia CACertl.org usa certificados reconocidos por sí misma para su web, así que entramos con una conexión segura en Firefox 3.5 veremos ese molesto aviso de “¡Sácame de aquí!“.

Enlace a certificados raíz en CACert.org

Enlace a certificados raíz en CACert.org

Para que esto no nos ocurra, ni con ellos ni con ninguna web que use certificados emitidos por ellos debemos instalar el certificado raíz disponible en su la web de CACert.org. Pulsamos en el enlace root certificate y luego hacemos clic sobre uno de los enlaces a los certificados Class 1 PKI Key, hay 4 difrentes uno para Internet Explorer y otros en formatos .der, .pem y .txt. Podemos usar el formato .pem.

En la ventana que aparece escogemos que queremos usar este certificado para verificar páginas web. Podemos cambiar estas cosas más adelante en las opciones de Firefox. Y si ahora entramos de nuevo con una conexión segura en CACert.org, ya nos muestra la web como segura.

La configuración para su uso con correo electrónico requiere de unos cuantos pasos más a parte de la instalación del certificado correspondiente. En el mismo lugar en el que hemos instalado el certificado raíz para las páginas webs seguras, hemos de instalar el certificado Class 3 PKI Key que es el que usaremos para, por ejemplo, firmar o cifrar correo-e. Cuando el navegador pregunte para qué vamos a usar el certificado que estamos instalando, en este caso escogeremos la opción de correo electrónico.

Añadir o ver correo-e registrados.

Añadir o ver correos-e registrados.

Generar o ver certificados para correo-e.

Generar o ver certificados para correo-e.

Una vez registrado en CACert.org hay que generar un certificado para nuestro correo-e, al habernos registrado con un correo electrónico, podemos generar certificados para este. Sin embargo, si necesitásemos crear un certificado para otro correo-e diferente deberíamos añadirlo a nuestra cuenta de CACert.org previamente.

Pulsamos en Nuevo en el apartado Certificado de Cliente y seguimos los pasos, que son realmente sencillos, cuando pulsemos en el botón generar debemos esperar pacientemente unos segundos a que nos aparezca en pantalla un texto que nos confirma que se ha generado el certificado, junto con un enlace que debemos pulsar para instalarlo en el navegador.

Hay que tener en cuenta que este certificado no puede volver a ser descargado en otra máquina. La razón es que al crear el certificado se ha generado una clave privada en nuestro navegador, que se queda guardada en nuestra configuración de usuario de Firefox, así que lo primero que vamos a hacer es sacar una copia de seguridad de nuestros certificados de cliente o usuario para poder importarla después donde queramos. En las preferencias de Firefox: sección Avanzado, pestaña Cifrado, pulsamos en Ver certificados. En la nueva ventana: pestaña Sus certificados, pulsar botón Hacer copia de todo. Nos pedirá una clave para cifrar la copia de seguridad que va a hacer, y se nos pedirá cada vez que vayamos a importar nuestros certificados en otro Firefox, o en cualquier otro software.

Con esto ya tenemos todo lo necesario para poder enviar mensajes de correo electrónico firmados. Pero claro, necesitamos tener un software que soporte s/mime. Podemos usar clientes como Evolution de Gnome, Thunderbird de Mozilla o algún otro que os guste más. En mi caso uso primordialmente dos clientes de correo electrónico, que son Evolution y el interfaz web de GMail.

Para configurar Evolution vamos a Editar->Preferencias, y en la ventana nueva al izquierda abajo pulsamos en el botón Certificados, luego en la pestaña Autoridades, pulsamos el botón Importar y seleccionamos el fichero .pem con el certificado Class 3 PKI Key que nos hemos descargado previamente de la web de CACert.org aquí. Una vez importado el certificado raíz, debemos importar los nuestros, de los que hemos hecho copia de seguridad anteriormente. Pulsamos en la pestaña Sus certificados y luego en el botón Importar, seleccionamos el archivo que contiene nuestros certificados e introducimos la clave de seguridad que pusimos a la hora de hacer la copia de seguridad en Firefox. Una vez teniendo todo esto preparado podemos enviar mensajes firmados, por otro lado, si queremos enviar mensajes cifrados necesitamos haber cargado la clave pública del destinatario para poder cifrar el mensaje para él. En la misma ventana en la que estamos pulsamos en la pestaña Certificados de contactos y le damos al botón Importar. Más adelante explico como exportar nuestra clave pública de nuestro certificado para poder dársela alguien si fuera necesario.

Para enviar un mensaje cifrado solo hay que dar en Seguridad->Cifrar con S/MIME o Firmar con S/MIME para firmar. Escribir nuestro mensaje y enviarlo. Para el caso de enviar un mensaje cifrado necesitaremos disponer de la clave pública del destinatario, que, si anteriormente ya él nos ha enviado un mensaje firmado, nuestro gestor de correo-e se habrá encargado de almacenarlo.

Comments 2 Comentarios »

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este texto se publica multitud de sitios web. Si estás de acuerdo, publícalo también en tu blog.

Comments 2 Comentarios »

Sabemos que las nuevas versiones de WordPress son capaces de autoactualizarse a través del protocolo FTP. En mi servidor no tengo ni quiero configurar un servidor FTP, porque con el SSH me basto y me sobro. Podemos conseguirlo en Gentoo de un modo muy sencillo:

Instalamos el soporte de SSH2 para PHP:

# emerge dev-php5/pecl-ssh2

Reiniciamos nuestro servidor web Cherokee: # /etc/init.d/cherokee restart

Autoactualización con soporte SSH.

Autoactualización con soporte SSH.

Cuando aparezca una nueva actualización de WordPress y este nos avise como de costumbre, veremos que nos aparece la pantalla de autoactualización de siempre, pero con SSH como una nueva opción. La seleccionamos y rellenamos los campos necesarios para actualizar. Debemos tener en cuenta algunas cosas muy importantes antes de pulsar en actualizar, como son hacer copia de seguridad de nuestra base de datos y de la propia instalación de WordPress. Que luego si algo va mal y no la hemos hecho nos podemos estar tirando de los pelos una hora y estaremos igual pero calvos.

Además, si os diera error y aparentemente lo tenéis todo correcto. Debéis tener en cuenta que la estructura de directorios y ficheros de vuestro WordPress deben tener como dueño al usuario de ejecuta el servidor web, en mi caso es cherokee.

Ejemplo de solución: # chmod -R cherokee:cherokee /var/www/directorio/a/wordpress

Tened en cuenta cosas como el usuario que usáis para hacer login, que debe tener permisos suficientes para ejecutar este proceso. En mi caso es root, pero no permito el acceso a root por SSH así que tengo que cambiar esto en mi configuración sólo y exclusivamente para la actualización automática. Aún así sigue siendo más cómodo esto que hacer la actualización manual.

Espero que sirva de ayuda a alguien.

Comments No Hay Comentarios »