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

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.