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.
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
1. Una vez instalado lightning tendremos disponibles dos pequeños iconos en la parte superior derecha de nuestro thunderbird y bajo la caja de filtros de búsquedas. Pulsamos el primero de ellos para entrar en la vista de calendario y esta se nos abrirá en otra solapa. El atajo de teclado es Ctrl+May+C y la opción de menú se encuentra bajo el nuevo item etiquetado como “Events and Tasks”.
2. Ya dentro de la vista de calendario, creamos uno nuevo pulsando con el botón derecho del ratón sobre el panel izquierdo y eligiendo la opción de “New Calendar”.
4. En el siguiente diálogo se nos pedirá la ubicación en la red de dicho calendario, así que necesitamos que google calendar nos proporcione esos datos. Lo abrimos, elegimos el calendario que queremos sincronizar con Lightning y, pulsando sobre el pequeño icono a su derecha, escogemos la opción de “Configuración de Calendario”.
5. Ya en la página de “Configuración del calendario”, nos vamos al apartado de dirección de calendario y pulsando con el botón derecho sobre el botón de XML elegimos la opción de “Copiar dirección de enlace”.



Pero que el uso de twitter corre también el riesgo de convertirse en un verdadero coñazo es algo más que evidente. Por un lado empiezan a proliferar bots y herramientas que permiten la automatización de seguimientos y respuestas automáticas (
Desgraciadamente al otro lado, el que nos permitiría controlar de alguna forma esta actividad, sigue habiendo pocas cosas interesantes. Pero haberlas, haylas. Una de ellas nos la proporciona 





