Hace exactamente dos años escribí un post explicando cómo configurar un servidor NFS. Hoy voy a completar ese post explicando cómo configurar ese servicio para funcionar con IPv6.

1- Configuración del escenario:

He creado dos máquinas virtuales de Ubuntu con Virtualbox, una de ellas hará de servidor y la otra será el cliente. El servidor tiene la IPv4 192.168.2.1/24 y la IPv6 2001::1:1/64 mientras que el cliente tiene la IPv4 192.168.2.10/24 y la IPv6 2001::1:2/64.

Servidor y cliente NFS

Servidor y cliente NFS

Para que haya un enlace entre ellas he configurado una red interna en VirtualBox entre ellos. Para crear dicha conexión hay que ir a las propiedades de la máquina virtual y, en la sección de red, cambiar de NAT a Red Interna. Se le puede dar un nombre para distinguirla de otras redes, en mi caso la he llamado nfsIPv6, como muestro en la siguiente captura de pantalla:

Configuración de red interna

Configuración de red interna

2- Configuración del servidor

En la máquina virtual del servidor tengo dos interfaces de red: eth0 en modo NAT para conectarme a internet y poder instalar software o consultar manuales y eth1 para realizar la comunicación con el cliente en IPv6. Para asignar una dirección IPv6 al interfaz de red eth1 he utilizado el siguiente comando:

root@server:~# ifconfig eth1 inet6 add 2001::1:1/64

Instalación del servidor NFS:

root@server:~# apt-get install nfs-kernel-server nfs-common portmap

creación de las carpetas que voy a exportar:

root@server:~# mkdir /home/abian/test
root@server:~#mkdir /home/abian/test2
root@server:~#chown -R abian.abian /home/abian/test*

Edición del archivo /etc/exports:

/home/abian/test       2001::1:2(rw,sync,no_subtree_check)
/home/abian/test2    *(ro,root_squash,no_subtree_check)

Edición del archivo /etc/hosts.allow:

portmap:[2001::1:2]
nfs:[2001::1:2]

Edición del archivo /etc/hosts.deny:

ALL: PARANOID

Reinicio de los servicios con las nuevas configuraciones:

root@server:~# /etc/init.d/portmap restart
root@server:~# /etc/init.d/nfs-kernel-server restart

3- Configuración del cliente

En el cliente solo hay una interfaz de red. Para añadir una dirección de IPv6 utilizo el mismo comando que para el servidor:

root@linux:~# ifconfig eth1 inet6 add 2001::1:2/64

Montar la partición NFS con IPv6

root@linux:~# mount -t nfs [2001::1:1]:/home/abian/test /home/abian/nfs_folder

4- Consideraciones adicionales

En el archivo /etc/exports puse dos líneas. Eso quiere decir que estoy exportando dos directorios del servidor. El directorio /home/abian/test solo puede ser accedido desde la dirección IPv6 2001::1:2 pero el directorio /home/abian/test2 puede ser accedido desde cualquier dirección IP porque puse un “*”.

Lo bueno de esta configuración es que puedo utilizar el protocolo IPv4 para acceder a un directorio y el protocolo IPv6 para conectarme a otro como muestro en la siguiente captura de pantalla:

IPv4 e IPv6 son buenos amiguitos

IPv4 e IPv6 son buenos amiguitos

Espero que este post os haya gustado. Se lo dedico especialmente al Maño y a su asignatura de sistemas operativos. ¡Ya me invitarás a una cerveza cuando nos veamos! :-)

Últimamente se está hablando muchísimo de piratería, derechos de autor, libertad de expresión, control de Internet. Todos son temas muy interesantes con discusiones realmente apasionadas. Sin embargo, como los más catastrofistas dirían, es posible que Internet tal y como la conocemos en la actualidad cambie si se aprueban determinadas leyes.

Por ahora os dejo la captura de pantalla de Wikipedia del día 18 de enero. No se si este “blackout” dará resultado pero al menos es una forma de protesta sin precedentes. ¿Realmente los internautas podemos hacer algo para parar a los grandes gobiernos y corporaciones?

wikipedia el 18 de enero de 2012

wikipedia el 18 de enero de 2012

El otro día me tuve que enfrentar de nuevo a la pregunta de qué sistema de ficheros utilizar en un disco duro externo. Me encantaría utilizar ext4 por su robustez, el journaling, etc. Sin embargo, seguro que tendré problemas cuando intente acceder a información de este disco duro externo desde un ordenador que no sea el mío. Tampoco quería caer en la tentación de utilizar VFAT por sus conocidos problemas y limitaciones. A sí que al final opté por NTFS que me permite utilizar archivos de más de 4GB, tiene journaling, metadatos de archivos, etc. Muchas de las ventajas que me ofrece ext4 pero sabiendo que funcionará en casi todos los ordenas donde lo utilice.

No tuve ningún problema para crear la partición utilizando gparted y funciona perfectamente en ubuntu. Sin embargo, me sorprendió que no hubiera soporte nativo de escritura para NFTS en Mac Os X 10.6.8. Tras alguna búsqueda en google parece que muchos usuarios de Mac se decantan por utilizar: paragon software o NTFS-3G. Ambos tienen una licencia que ronda los $20.

Tenía más sentido que, ya que existe soporte de escritura para en NTFS para GNU/Linux, los chicos de Apple hubieran implementado un soporte nativo de escritura en NTFS para Mac, a sí que al final encontré una solución más barata sencilla en este blog.

La idea es que por defecto se montará la partición como solo lectura pero utilizando la consola se puede forzar a que la partición se monte también como lectrua/escritura. Solo hay que saber el nombre del volumen y la ruta de la partición (algo del estilo /dev/disk?s?).

Para averiguar esas dos cosas se puede utilizar los comandos:

ls /Volumes/

diskutil info /Volumes/Abian/ | grep “Device Node”

Luego solo hay que crear una carpeta donde se montará el dispositivo y ejecutar el comando para montar la partición. Para que no se me olvide me he hecho un pequeño script:

#/bin/sh
#desmontar el volumen
hdiutil eject /Volumes/Abian/
#crear la carpeta donde se montará la partición
sudo mkdir /Volumes/Abian/
#montar la partición con la opción de escritura
sudo mount_ntfs -o rw /dev/disk1s1 /Volumes/Abian/
#mostrar que se ha montado bien
mount | grep Abian

No hay que olvidar darle privilegios de ejecución con chmod +x script.sh

Tras ejecutar el script debería aparecer la línea:

/dev/disk1s1 on /Volumes/Abian (ntfs, local, noowners)

en lugar de:

/dev/disk1s1 on /Volumes/Abian (ntfs, local, nodev, nosuid, read-only, noowners)

Un saludo

El momento de publicar una aplicación (o hacer una release) siempre es de los más agradables en la vida de un programador, o al menos, debería serlo. Ayer se produjo uno de estos momentos agradables al publicar la aplicación Tiras Cómicas. Esta aplicación es el primer resultado del grupo DevNullSoft (en el que estoy participando junto con un par de amigos) y, seguro, que no será la última. Básicamente se ha llevado por delante muchos de mis fines de semana y alguna que otra incursión al supermercado a por combustible.

Tiras Cómicas es una aplicación gratuita para Android que permite seguir algunas de las tiras cómicas en castellano más de moda. Para más información se puede acceder a su página en el Android Market o a la web del grupo.

A modo de anticipo os dejo un vídeo mostrando algunas de sus funcionalidades:

 

Desde aquí agradezco a nuestros sufridos usuarios de pruebas como Laura, Necorawoman o Iván que nos han ayudado a pulir la aplicación y que nos han aportado comentarios muy interesantes para las siguientes versiones.

Por supuesto, hay muchas cosas que nos gustaría mejorar y en las que empezaremos a trabajar en breve. Espero que os guste.

Un saludo

Cuando estaba estudiando la carrera de informática, el mundo del desarrollo web no me atraía demasiado. Sin embargo, después de llevar unos años programando portales web comprendo mejor sus posibilidades. Las herramientas de desarrollo web son cada vez más numerosas y tienen un sin fin de utilidades.

Hoy estaba leyendo Genbeta cuando me he topado con la noticia del complemento para firefox Tilt 3D que permite visualizar cualquier página web en tres dimensiones.

Igual que el otro día no me pude resistir a probar JoomlaScan, hoy no me he podido resistir a probar esta extensión. Tras instalarla, solo hay que reiniciar firefox y pulsar la combinación de teclas “Ctrl + Shift + M” o ir al menu “Herramientas -> Desarrollo Web -> Tilt”.

El resultado es impresionante como se puede ver en las dos capturas de pantalla que muestro a continuación:

Portal de Organic.Edunet en 3D

Portal de Organic.Edunet en 3D

Portal de VOA3R en 3D

Portal de VOA3R en 3D

Además de visualizar páginas web en 3D también se puede utilizar los controles de la parte izquierda de la pantalla para modificar en vivo el resultado obtenido. Por ejemplo, se puede aplicar transparencias, inspeccionar elementos HTML, cambiar CSS…

Sin duda una herramienta que merece la pena probar.

Un saludo

Esta semana entre unas cosas y otras he tenido que instalar el servidor de aplicaciones Glassfish unas 10 veces. El proceso es realmente sencillo y está perfectamente documentado.

Para instalarlo solo hay que seguir los 4 siguientes pasos:

1- Descargarlo de la página web de glassfish.

2- Descomprimir el zip o ejecutar el script de instalación.

3- Ejecutar el comando de inicio del servidor:

abian@server:~/glassfish3/bin$ ./asadmin start-domain domain1

4- Abrir en un navegador web la dirección http://127.0.0.1:4848

Página principal de Glassfish

Página principal de Glassfish

La primera vez que se abre esta página no pide password de administrador, a sí que la primera tarea de configuración post instalación será establecer un password para el usuario “admin” entrando en la sección “Dominio -> Contraseña de administración”.

También se pueden configurar los parámetros de la máquina virtual de java como la memoria máxima asignada al proceso que ejecuta el servidor glassfish (opción -Xmx). Para ello hay que ir a la sección “Configuración -> configuración del servidor -> JVM Options” como se puede ver en la siguiente captura de pantalla:

Opciones de la Máquina Virtual de Java

Opciones de la Máquina Virtual de Java

Del mismo modo, es buena idea crear un script para que arranque y pare el servidor. Para ello hay que copiar el siguiente código en un fichero en la carpeta /etc/init.d/

abian@server:~$ cat /etc/init.d/glassfish
#!/bin/bash  
GLASSFISHPATH=/home/abian/glassfish3/bin  #cambiad esto por la ruta de vuestra instalación
case “$1″ in  
    start)  
      echo “starting glassfish from $GLASSFISHPATH”  
      # cambiad “abian” por el nombre de usuario que ejecutará el proceso glassfish
      sudo -u abian $GLASSFISHPATH/asadmin start-domain domain1  
      ;;  
    restart)  
      $0 stop  
      $0 start  
      ;;  
    stop)  
      echo “stopping glassfish from $GLASSFISHPATH”  
      # cambiad “abian” por el nombre de usuario que ejecutará el proceso glassfish
      sudo -u abian $GLASSFISHPATH/asadmin stop-domain domain1  
      ;;  
    *)
     #defaul value restart  
      $0 stop
      $0 start
      ;;  
esac 

No hay que olvidar asignar los permisos de ejecución a este nuevo script:

root@server:~# chmod +x /etc/init.d/glassfish

Después tan solo hay que ejecutar el comando update-rc.d (como root) para que se inicie glassfish automáticamente cuando arranca el ordenador:

root@server:~# update-rc.d glassfish defaults

Una de las cosas que resulta más cómoda es la visualización de logs ya que se puede acceder a ellos desde la sección “Servidor -> ver archivos de registro”. Glassfish permite buscar, filtrar, ordenar los eventos y errores producidos por las aplicaciones web desplegadas. Realmente es muy útil mientras se está desarrollando o realizando pruebas sobre una sección del código.

Ver archivos de log

Ver archivos de log

Un saludo

Revisando las noticias, he leído en Secutiry By Default que hay una nueva versión de JoomlaScan. He de reconocer que me ha picado la curiosidad de probar dicha aplicación con un par de instalaciones de Joomla! con las que estoy trabajando. Una de las ventajas de desarrollar un portal web basándose en Joomla! es que no hay que reinventar la rueda una y otra vez. Se puede utilizar y configurar el CMS según las necesidades concretas de cada situación y luego extenderlo hasta cubrir el total de las funcionalidades deseadas.

Hablar de seguridad en un portal web es siempre delicado. Cada día aparecen nuevas vulnerabilidades o nuevas técnicas para comprometer aplicaciones web. Utilizar Joomla! también mitiga en cierta forma el número de vulnerabilidades que pueden aparecer en una aplicación web porque el código de Joomla! es revisado antes de ser liberado. Además, al tratarse de una solución Open Source, se pueden realizar auditorías de seguridad y si alguien encuentra algún error puede avisar a los desarrolladores para que lo corrijan.

Sin embargo, Joomla! puede ser ampliado con un sin fin de extensiones. ¿Cómo podemos estar seguros de que todas las extensiones que hay instaladas en nuestro portal web son seguras? Una opción es revisar el código cuidadosamente o también se pueden utilizar programas como JoomlaScan para hacernos una idea de si hay alguna vulnerabilidad en una instalación de Joomla!

Tras descargar el script de la página web de Pepelux, se puede ejecutar el siguiente comando para realizar un escaneo (al utilizar el parámetro “cm” estamos pidiendo un informe de las posibles vulnerabilidades):

./joomlascan.pl -u http://127.0.0.1 -v -c -cm

El resultado de la ejecución se puede ver en la siguiente captura de pantalla:

Resultado de JoomlaScan

Resultado de JoomlaScan

Sin duda muy útil para recordarnos que no sólo tenemos que programar cosas que funcionan sino también tener en cuenta las posibles vulnerabilidades que podemos introducir con cada componente web que creamos.

Un saludo

Que estamos rodeados de gadgets es un hecho. Siempre que hago algún viaje con los amigos, es normal que cada uno lleve su cámara de fotos digital. De hecho, en el último viaje alguien llevó dos cámaras… Lo que es menos normal es que se establezca correctamente la fecha y hora de la cámara, lo que dificulta su organización una vez que se ha vuelto del viaje.

Cada vez que se hace una fotografía con una cámara digital, junto con la imagen se guardan unos datos extra llamados metadatos EXIF. En estos metadatos se puede encontrar desde el modelo de la cámara hasta el número de serie del objetivo. En la siguiente captura de pantalla se pueden ver los metadatos de una imagen en nautilus (botón derecho -> propiedades -> pestaña de imagen) y en un álbum público en picasa:

exif en nautilus y picasaweb

EXIF en nautilus y picasaweb

Programas como Shotwell o Picasa son capaces de gestionar bibliotecas de imágenes ordenándolas por distintos campos. Al ordenar las fotos por fecha se accede al metadato EXIF que contiene la fecha y hora en la que fue tomada. Sin embargo, si la cámara no tenía la hora correcta, el resultado de la ordenación no será el adecuado.

Una forma de solucionarlo es localizar dos fotos que se hayan tomado en el mismo momento (o en un tiempo cercano), acceder a los metadatos EXIF de cada foto para calcular la diferencia de tiempo entre ellas y luego modificar todas las fotos que sean de esa cámara para adecuarlas al horario correcto.

En la siguiente captura de pantalla se pueden ver los metadatos de dos imágenes que se hicieron en el mismo momento con cámaras distintas, que tenían configurados horas distintas.

Diferentes horas

Diferentes horas

La solución sería sumar 40 mintuos a los metadatos de las fotos realizadas con la Nikon D50 (imagen de la derecha) o restar 40 minutos a los metadatos de las fotos realizadas con la Nikon D5000 (imagen de la izquierda).

Para ello se puede utilizar el programa exiv2, que permite acceder y manipular cualquier campo de los metadatos EXIF. Se puede descargar desde la sección de descargas de su página web oficial o utilizando un gestor de paquetes (por ejemplo apt-get):

sudo apt-get install exiv2

Utilizando el parámetro “pr” se puede imprimir por pantalla la información de la foto:

exiv2 pr archivo.JPG

Mientras que si utilizamos el parámetro “ad” se pueden modificar sus metadatos. Por ejemplo, para sumar 40 minutos a la fecha de realización de la foto:

exiv2 ad -a 00:40:00 DSC_0239.JPG

Por supuesto, otras combinaciones son posibles, tan solo hay que revisar la ayuda tecleando:

exiv2 – - help

Además, se pueden utilizar expresiones regulares para aplicar los cambios a carpetas enteras o a subconjuntos de archivos dentro de una carpeta:

exiv2 add -a -01:15:00 DSCF*.JPG (restar 75 minutos a las imágenes que empiecen por DSCF, generalmente Fujifilm)

exiv2 rm DSC_0239.JPG (borrar todos los metadatos de la imagen seleccionada)

Una vez reajustadas las horas de las fotos seleccionadas, se pueden volver a cargar en el gestos de imágenes que más nos guste y ordenarlas por fecha obteniendo resultados mucho más agradables.

Un saludo

Desde el 13 de Octubre está disponible la nueva versión de Ubuntu (11.10 Oneiric Ocelot). Uno de los múltiples cambios en esta nueva versión, es la utilización de Gnome Shell o Unity como gestores de escritorio. Las mejoras gráficas de estos gestores son numerosas, sin embargo, su utilización en conexiones remotas no es del todo satisfactoria debido a su mayor consumo de recursos.

Una posible solución a este problema es la utilización de Gnome Shell o Unity en sesiones locales mientras que para sesiones remotas se puede utilizar un gestor más ligero que consuma menos recursos. Aquí es donde entra Xfce.

Xfce es un gestor de escritorio para entornos Unix o Unix-like cuyo objetivo es no consumir muchos recursos pero sin perder funcionalidades o una bonita apariencia gráfica. Puede ser descargado desde su página web oficial o utilizando un gestor de paquetes como por ejemplo apt-get:

sudo apt-get install xfce4

Como se puede ver en la siguiente captura de pantalla, solo hay que descargar 24 MB de Internet y ocupará 96 MB de espacio en disco para su instalación.

Instalación de Xfce4

Instalación de Xfce4

Una vez instalado, se puede utilizar el asistente de configuración de conexiones de NX para utilizar Xfce en las conexiones remotas.

Hay que seguir tres sencillos pasos:

  1. Establecer la dirección IP de la máquina, puerto del SSH y tipo de red a la que nos conectaremos.

    IP, puerto y tipo de red

    IP, puerto y tipo de red

  2. Seleccionar el tipo de escritorio “Custom” o personalizado y hacer click en el botón de propiedades.

    Tipo de escritorio personalizado

    Tipo de escritorio personalizado

  3. Seleccionar “Ejecutar el siguiente comando” (poniendo el valor /usr/bin/xfce4-session) y la opción “Nuevo escritorio virtual”.

    Propiedades de Xfce4

    Propiedades de Xfce4

Una vez terminada la configuración ya se puede iniciar sesión de forma remota con Xfce4:

nx con xfce4

nx con xfce4

He visto en noticiasubuntu la forma de cambiar el gestor de escritorio que se utiliza por defecto en las sesiones locales. Para utilizar gnome-shell hay que ejecutar:

sudo /usr/lib/lightdm/lightdm-set-defaults -s gnome-shell

Para volver a utilizar Unity habría que ejecutar:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu

Un saludo y hasta pronto

Suelo escribir en el blog entradas relacionadas con informática o minitutoriales pero creo que lo que está pasando el Sol merece un post con unas cuantas fotos.

acampadasol

acampadasol

crisálida de Sol

crisálida de Sol

reloj

reloj

Noche en Sol

Noche en Sol

El ambiente es impresionante, la cantidad de gente que hay y lo tranquila que está llega a estremecer. Uno de los momentos más sobrecogedores fue el silencio que se hizo justo a las 0:00h del sábado 21.

Un saludo

Página siguiente »

Seguir

Get every new post delivered to your Inbox.