Nausicaä del Valle del Viento

icono con claqueta de cine Dentro de unas semanas podremos ver por fin en nuestro país la adaptación al cine de Nausicaä del Valle del Viento (Kaze no tani no Naushika), uno de los primeros largometrajes del maestro Miyazaki estrenado en Japón en el año 1984 y basado en uno de mis manga favoritos, creado por el propio Miyazaki. 23 años de espera no son nada ¿verdad?

El modo bridge en VirtualBox ahora es así de fácil

icono de VirtualBox Olvídate de esto y también de esto otro. Usar el modo bridge con virtualbox para que una máquina virtual sea visible en toda la red del dispositivo anfitrión o para que las distintas máquinas en un mismo anfitrión sean visibles entre si es ahora tan sencillo como elegir “Adaptador puente” en el modo de conexión y el dispositivo de red de la máquina anfitriona a través del cual queremos simular la conexión.

VirtualBox en modo bridge

Si tenemos un servidor DHCP visible a través de dicho adaptador las máquinas virtuales obtendrán directamente una dirección del mismo sin más complicaciones. No se exactamente cuando se introdujo este cambio pero a partir de la versión 3.0 funciona así.

Frases desafortunadas (y XXXV)

icono para las frases desafortunadas

“Tenemos un gobierno al que le parece que la tecnología es algo que permite a la gente expresarse con demasiada libertad. Tenemos un gobierno que envidia secretamente a China. (…) Estamos hablando de medidas que lo que buscan es excusas para censurar páginas web.”

Enrique Dans, “experto en la materia”, hablando en rtve.es (minuto 27 aprox.) acerca de la reciente aprobación de la Ley de Economía Sostenible que incluye una disposición que modifica la Ley de Propiedad Intelectual para facilitar y agilizar el cierre de páginas webs que se lucren de forma directa o indirecta a través de la descarga de contenidos protegidos por derechos de autor. Independientemente de que estemos de acuerdo o no con el contenido de la disposición (yo tengo mis dudas, la verdad, pero léanla ustedes mismos que son apenas tres folios entre las página 96 y 99) díganme ¿Creen de veras que se busca censurar o atentar contra la libertad de expresión de alguien?¿No sería mucho más honrado un discurso menos apocalíptico y más dirigido a criticar la verdadera orientación de la medida en lugar de tratar de confundir o alarmar a la gente? Pues eso…

Live Visitors en Piwik 5.5

estadísticas La nueva versión 5.5 de Piwik incluye un widget que permite mostrar información en tiempo real de los visitantes actuales de tu web y que, como todos los demás, se puede insertar en cualquier lado con un simple corta y pega. Así:

Además, como se aprecia, permite ocultar las direcciones IP para que no las vea el público en general (también mediante la activación de un nuevo plugin). Lo único que parece que continúa sin arreglarse es el excesivo volumen ocupado por la base de datos. A ver si para la próxima…

7 enlaces 7 (y XLIII)

enlaces rápidos

Cine en enero’10

icono con claqueta de cine

Dónde viven los monstruos
La montaña embrujada Quo Vadis El grito Por un puñado de dólares
12 hombres sin piedad La muerte tenía un precio Elegy Sicko
The Spirit Distrito 9 28 días después El luchador

Distrito 9 (2009) y 12 hombres sin piedad (1957) han sido, cada una en su estilo, las dos mejores películas que he visto durante este mes de enero. La primera usa el método de cámara en primera persona o cámara en mano (del que tanto se está abusando ya, todo hay que decirlo) para contar una fábula acerca de un asentamiento de refugiados extraterrestres hacinados en un gueto de Sudáfrica y, a través de ello, el rechazo inconsciente e irracional que los seres humanos sentimos hacía lo diferente. Curiosamente, 12 hombres sin piedad nos habla, con un enfoque absolutamente distinto (interpretación pura y dura, sin concesiones y sin más escenarios ni efectos que un despacho y un cuarto de baño donde los miembros de un jurado se encierran a deliberar) de otro de nuestros grandes problemas: los prejuicios. Y lo hace a través de las reflexiones de un jurado popular que tiene que declarar culpable o inocente a un acusado de asesinato.

Cerquita, cerquita, les siguen dos de las películas de la llamada Trilogía del dólar de Sergio Leone y Clint Eastwood: Por un puñado de dólares (1964) y La muerte tenía un precio (1965). Historias épicas, frases redondas, poses chulescas y todos esos ingredientes que deberían de componer una simple película de serie B sin más transcendencia y que, sin embargo, aquí funcionan. Un verdadero misterio.

Dónde viven los monstruos (where the wild things are, 2009) ha sido el único estreno que he ido a ver este mes. Me fascina casi todo lo que viene de la factoría de Henson y no podía perdérmelo. Sin embargo la historia, un cuento onírico acerca de la difícil intersección entre el mundo de los niños y el de los adultos, no me llegó demasiado. Tal vez me cogió en un mal momento.

Quo Vadis (1951) ha sido la peli “de tradición”. Una de esas viejas joyas de temática bíblica que a fuerza de ver en Navidades y Semana Santa durante toda tu vida luego acabas echando de menos en estas épocas. No tenédmelo en cuenta… y a ver si alguien me encuentra La túnica sagrada para dentro de un par de semanas 😛

Elegy (2008) no es lo mejor de Coixet, pero se deja ver y Penélope Cruz no lo hace del todo mal a pesar de que la sacan del papel de arrabalera chillona que parece ser su único perfil bueno y que tantos éxitos le está haciendo cosechar. Sicko (2007) es otro de esos didácticos (y, seguro, un “pelín” tendenciosos) documentales a los que Moore nos tiene tan acostumbrados y que desgraciadamente se ven muy poco en su país que es donde realmente podrían servir como herramienta de sensibilización. El luchador (2008) cuenta, efectivamente, con una maravillosa interpretación protagonista por parte del renacido Mickey Rourke, pero nada más. La historia es plana y muy predecible casi desde los títulos de crédito. Por cierto ¿Sabe alguien por qué les gustan tanto las historias de “viejas glorias” a los yankees? Por que llevamos una racha, que…

The Spirit (2008) ha sido una gran decepción. No es tan impactante como Sin City aunque la copia estéticamente en absolutamente todo, ni resucita nada del espíritu del entrañable personaje creado por Will Eisner. En la misma línea podemos meter a El grito (2004), una burda copia de The ring y que no aporta nada nuevo al género. 28 días después (2002) es una película igualmente intrascendente sobre zombies infectados y que me dejó totalmente indiferente. La vi sólo y casi de madrugada y me acosté tan pancho, sin nada, nada de miedo. Una verdadera lástima.

Y el premio a lo peor del mes se lo lleva, sin lugar a dudas, y con un gran margen respecto a las demás, La montaña embrujada (2009). Un bodrio infumable de esos que te colocan en el AVE y que debería de ir acompañado de un descuento en el billete.

Autenticación en Apache (y II): digest y con mySQL

apache Continuamos hoy con otros dos métodos de autenticación en Apache. El primero que vamos a ver recupera los problemas de gestión de usuarios y contraseñas pero soluciona el problema de la transferencia de contraseñas en claro sin necesidad de usar SSL. Consiste en usar la autenticación mediante digest. El procedimiento, como veréis, es muy similar al visto el otro día con la autenticación básica pero cambiando algunas de las directivas y usando la utilidad htdigest en lugar de htpassword para crear el fichero de contraseñas. El módulo de autenticación necesario suele venir con Apache pero no habilitado por defecto. Para activarlo usamos la utilidad a2enmod y, a continuación reiniciamos el servidor Apache:

$ sudo a2enmod auth_digest
$ sudo /etc/init.d/apache2 restart

Luego incluimos una sección como esta en el fichero de configuración de nuestro Virtual Host:

<Directory "/var/www/miweb/privado">
     Order deny,allow
     AuthType Digest
     AuthName "dominio"
     AuthUserFile "/etc/claves/digest.txt"
     <Limit GET POST>
          Require valid-user
     </Limit>
</Directory>

Como vemos, es muy similar a la configuración necesaria en la autenticación básica. Sólo dos notas: el fichero donde se dejan las contraseñas se indicaba con la directiva AuthDigestFile hasta la versión 2.2 de apache. Ahora, como veis en el ejemplo, es AuthUserFile. Y dos: la directiva AuthName que en la autenticación básica se usaba para mostrar un mensaje en la ventana que pide el usuario y contraseña, ahora se usa también para identificar un nombre de dominio (realm) que debe de coincidir con el que aparezca después en el fichero de contraseñas. Dicho esto, vamos a generar dicho fichero con la utilidad htdigest:

# htdigest -c /etc/claves/digest.txt dominio josemaria
Adding password for josemaria in realm dominio.
New password:
Re-type new password:

Al igual que ocurría con htpassword, la opción -c (create) sólo debemos de usarla al crear el fichero con el primer usuario. Luego añadiremos los restantes usuarios prescindiendo de ella. A continuación vemos el fichero que se genera después de añadir un segundo usuario:

josemaria:dominio:8d6af4e11e38ee8b51bb775895e11e0f
gemma:dominio:dbd98f4294e2a49f62a486ec070b9b8c

El último método que vamos a ver usa una base de datos de mySQL como repositorio de contraseñas. Esto nos permitirá preparar de forma fácil unas páginas para gestionarlas por personal no experto o, incluso, permitir al propio usuario final que haga cambios por si mismo, crear algún método de recuperación automático por email, etc. Esto, combinado con un cifrado SSL, nos proporciona un método cómodo, flexible y suficientemente seguro para la mayoría de los casos. Lo primero que debemos de hacer es instalar el módulo que nos proporciona este modelo de autenticación, activarlo y reiniciar nuestro apache:

$ sudo apt-get install libapache2-mod-auth-mysql
$ sudo a2enmod auth_mysql
$ sudo /etc/init.d/apache2 restart

A continuación necesitamos crear una base de datos adecuada en el servidor mysql. Los únicos campos imprescindibles son los dos correspondientes al usuario y contraseña, tal y como se muestran en la siguiente imagen. El resto, a nuestro gusto y dependiendo de si planeamos hacer alguna página para gestionarlos y las funcionalidades que queremos que tenga (nombre completo, dirección de email, etc.)

base de datos para autenticación con Apache

Necesitaremos, además, un usuario de mySQL con acceso a estas tablas para que Apache pueda usarlo. Con concederle privilegios de lectura (SELECT) nos basta:

usuario para la autenticación

Añadimos un par de registros a nuestra base de datos para hacer pruebas:
usuarios para las pruebas de acceso

Y, por último, editamos la sección correspondiente en la configuración de nuestro Virtual Host y pedimos a apache que haga un reload de la misma:

<Directory "/var/www/miweb/privado">
     AuthType Basic
     AuthName "Zona Privada"
     AuthBasicAuthoritative Off
     AuthMYSQL on
     AuthMySQL_Authoritative on
     Auth_MySQL_Host localhost
     AuthMySQL_DB httpdauthmysql
     AuthMySQL_Password_Table usuarios
     Auth_MySQL_User apacheauth
     Auth_MySQL_Password 4pache3Sql
     AuthMySQL_Username_Field login
     AuthMySQL_Password_Field pwd
     AuthMySQL_Empty_Passwords off
     AuthMySQL_Encryption_Types Plaintext
     Require valid-user
</Directory>

El significado de los campos a personalizar para nuestra configuración es fácilmente distinguible:

  • AuthMySQL_DB y Auth_MySQL_Host determinan los nombres de la base de datos y el servidor donde esta reside, que usaremos para la autenticación de usuarios.
  • Auth_MySQL_User y Auth_MySQL_Password son los datos del usuario que apache usará para leer de la base de datos anterior.
  • AuthMySQL_Password_Table, AuthMySQL_Username_Field y AuthMySQL_Password_Field describen, respectivamente, la tabla donde se guardan las credenciales de los usuarios con permiso de acceso y los campos que usaremos para almacenar sus usuarios y contraseñas.

El campo Auth_MySQL_Encryption_Types, por último, nos permite definir la forma en que la contraseña se guarda en nuestra base de datos y admite múltiples formas. Tal y como está en el ejemplo anterior, indicamos que la contraseña se guardará en texto plano. Si queremos hacerlo un poco más serio y no guardar la contraseña así podríamos, por ejemplo, almacenar un hash de la misma. Existen diversos métodos para esto, pero lo más sencillo es variar el valor de este campo por lo siguiente:

AuthMySQL_Encryption_Types Crypt

Esto nos permitirá usar las mismas firmas generadas por la utilidad htpasswd que vimos aquí o, en general, las creadas a partir de la llamada a la función crypt(). Copiamos el hash al campo pwd de la base de datos antes generada, volvemos a hacer un reload a nuestro apache y listo.

Frases desafortunadas (y XXXIV)

icono para las frases desafortunadas

“Que un director de periódico diga que tiene un vídeo sobre la verdad no es cierto. El tendrá un vídeo, pero al menos tiene dos. Alguno con un protagonista en corsé”

Pilar Manjón, presidenta de la Asociación 11-M de afectados del Terrorismo refiriéndose a Pedro J. Ramírez, director de El Mundo, y a su famoso vídeo con Exuperancia Rapú (que tiene club de fans en Facebook y todo..) en unas declaraciones a la Cadena Ser. ¿Es necesario perder los papeles con tanta facilidad para tratar de demostrar que se tiene razón en algo?¿La gente “pública” se cree que preferimos las patochadas y las salidas de tono a los argumentos válidos? Así nos va…

Autenticación en Apache: básica y PAM

apache El servidor web Apache puede acompañarse de distintos módulos para proporcionar diferentes modelos de autenticación. Hoy vamos a echarle un vistazo a la configuración básica de dos de los más utilizados y sencillotes. Vamos allá.

La primera forma que veremos es la más simple. Usamos para ello el módulo de autenticación básica que viene instalada “de serie” con cualquier Apache. La configuración que tenemos que añadir en el fichero de definición del Virtual Host a proteger podría ser algo así:

<Directory "/var/www/miweb/privado">
     Order deny,allow
     AuthUserFile "/etc/apache2/claves/passwd.txt"
     AuthName "Palabra de paso"
     AuthType Basic
     <Limit GET POST>
          Require valid-user
     </Limit>
</Directory>

La información a personalizar está marcada en negritas. En Directory escribimos el directorio a proteger, que puede ser el raíz de nuestro Virtual Host o un directorio interior a este. En AuthUserFile ponemos el fichero que guardará la información de usuarios y contraseñas que debería de estar, como en este ejemplo, en un directorio que no sea visitable desde nuestro Apache. Ahora comentaremos la forma de generarlo. Por último, en AutnName personalizamos el mensaje que aparecerá en la ventana del navegador que nos pedirá la contraseña. Existen otras directivas adicionales o modificaciones a estas útiles para personalizar el acceso: AuthGroupFile, Require user, Require group, etc. Ya sabéis: Google es vuestro amigo 😉

El fichero de contraseñas se genera mediante la utilidad htpasswd. Su sintaxis es bien sencilla. Para añadir un nuevo usuario al fichero operamos así:

# htpasswd /etc/apache2/claves/passwd.txt carolina
New password:
Re-type new password:
Adding password for user carolina

Para crear el fichero de contraseñas con la introducción del primer usuario tenemos que añadir la opción -c (create) al comando anterior. Si por error la seguimos usando al incorporar nuevos usuarios borraremos todos los anteriores, así que cuidado con esto. Las contraseñas, como podemos ver a continuación, no se guardan en claro. Lo que se almacena es el resultado de aplicar una función hash.

josemaria:rOUetcAKYaliE
carolina:hmO6V4bM8KLdw
alberto:9RjyKKYK.xyhk

Para denegar el acceso a algún usuario basta con que borremos la línea correspondiente al mismo. No es necesario que le pidamos a Apache que vuelva a leer su configuración (/etc/init.d/apache2 reload) cada vez que hagamos algún cambio en este fichero de contraseñas, pero si lo es después de hacer los cambios en el fichero de definición del Virtual Host.

autenticación en apache La principal ventaja de este método es su sencillez. Sus inconvenientes: lo incómodo de delegar la generación de nuevos usuarios en alguien que no sea un administrador de sistemas o de hacer un front-end para que sea el propio usuario quien cambie su contraseña. Y, por supuesto, que dichas contraseñas viajan en claro a través de la red. Si queremos evitar esto último podemos crear una instancia Apache con SSL.

El segundo método que vamos a tocar usa PAM, el propio sistema de autenticación de la máquina donde está instalado nuestro servidor de Apache. Si ya tenemos alguna herramienta de gestión de usuarios y contraseñas en la misma este sistema nos ahora el engorro de tener que generar otro tipo de usuario. En caso contrario no ganamos mucho en este sentido y seguimos teniendo el problema de que las contraseñas viajan en claro con el agravante adicional de que ahora se trata de usuarios de la máquina… así que ya sabéis: o configuráis ssl o usáis el truco que comentamos el otro día por aquí para deshabilitar la conexión remota.

Usaremos para ello el módulo mod_auth_pam y lo primero que tenemos que hacer es instalarlo:

# sudo apt-get install libapache2-mod-auth-pam

En el fichero de configuración del Virtual Host tendríamos que incluir algo así:

<Directory "/var/www/privado">
     AuthType Basic
     AuthName "Palabra de paso"
     AuthPAM_Enabled On
     AuthBasicAuthoritative Off
     AuthUserFile /dev/null
     Require user josemaria gemma fernando araceli
</code>

Si en este caso la directiva usada fuese Require valid-user se permitiría el acceso a cualquier usuario con cuenta en la máquina. Ah, y no olvides hacer un reload de apache después de este cambio.

Sólo nos quedan un par de pasos. Primero, añadir el usuario www-data (el que usa apache) al grupo shadow para que pueda verificar las contraseñas:

usermod -a -G shadow www-data

Y dos, hacer un enlace como el que sigue. Ignoro la causa, pero el motivo de que esto sea necesario es debido a que apache (en los binarios de Debian y Ubuntu, al menos) pretende leer del archivo /etc/pam.d/http mientras que el módulo de autenticación ha creado el archvo /etc/pam.d/apache2. El módulo auth_pam hace años que no está soportado e imagino que esto tiene algo que ver, pero no lo se a ciencia cierta. Simplemente lo leí por ahí...

ln -s /etc/pam.d/apache2 /etc/pam.d/httpd

Y con esto está todo listo. No lo he probado nunca pero también he leído que la autenticación se hace contra el directorio activo si Apache está instalado en una máquina windows configurada en un dominio. Existe también un módulo para autenticar contra un ldap (mod_auth_ldap) que si que he probado y que ya veremos otro día 😉

Cancionero (y XXXVI)

clave de solDos puntos de vista diferentes para un lunes en el que, por fin, parece que el tiempo acompaña…

Clip de audio: Es necesario tener Adobe Flash Player (versión 9 o superior) para reproducir este clip de audio. Descargue la versión más reciente aquí. También necesita tener activado Javascript en su navegador.


Monday, monday – Marianne Faithfull


Clip de audio: Es necesario tener Adobe Flash Player (versión 9 o superior) para reproducir este clip de audio. Descargue la versión más reciente aquí. También necesita tener activado Javascript en su navegador.


I don’t like mondays – Boomtown Rats