Algo de Linux: febrero 2010

jueves, 25 de febrero de 2010

phpldapadmin: Problema al cargar la página

En alguna ocasión, creo recordar que tras reinstalar phpldapadmin, he intentado acceder a la herramienta, y no se cargaba la página:

http://localhost/phpldapadmin

Mostrándome un error como el siguiente:

Not Found
The requested URL /phpldapadmin was not found on this server.


Por lo que he podido comprobar, el problema es que, por alguna razón, no se ha creado el enlace a la misma, así que lo he tenido que crear a mano:

# ln -s /usr/share/phpldapadmin/ /var/www/

martes, 23 de febrero de 2010

Clonar un sistema usando dpkg --get-selections y dpkg --set-selections

Algunas veces me han preguntado cómo hacemos copia de seguridad de los servidores y  por qué no hacemos una imagen en cd o en disco duro de los mismos para poder recuperar un sistema ante un fallo.

La respuesta es sencilla: Los servidores no son estáticos y sus paquetes cambian y se actualizan frecuentemente. Además los datos que éstos almacenan también se modifican con cierta frecuencia.

Así que, si quisiéramos tener imágenes actualizadas, tendríamos que estar haciéndolas continuamente o con demasiada frecuencia.

Entonces, ¿de qué hacemos copia de seguridad? Pues básicamente de los archivos de configuración así como de los datos de nuestros usuarios, si el servidor trabaja con usuarios.  Por ejemplo, si mi servidor es un servidor de ldap, me interesará tener copia de seguridad de la base de datos de ldap. Si mi servidor es un servidor nfs que almacena el home de los usuarios, me interesará guardar copias de seguridad de los archivos de configuración del servidor nfs, así como los datos de los usuarios. Etc...

Para volver a montar mi sistema tras un desastre, puedo instalar un sistema mínimo usando netinst o, puede serme útil tener una iso con el sistema base, al que luego incorporaré los paquetes necesarios, así como los archivos de configuración y datos de los que guardo copia de seguridad. La secuencia sería más o menos así:
  1. Instalo un sistema mínimo.
  2. Actualizo dicho sistema con los paquetes que debería tener.
  3. Y restauro las copias de seguridad.
Lo que necesito, evidentemente, es que mi sistema de copias de seguridad guarde copia de la lista de paquetes que tiene mi sistema en el momento que se haga la copia de seguridad.  Bien, ¿y cómo puedo hacer ésto? Pues ayudándonos del comando dpkg:

Por ejemplo, si quiero obtener una lista de paquetes instalados y desinstalados en mi máquina, utilizo el siguiente comando:

# dpkg --get-selections

Ahora bien, si quiero obtener tan sólo la lista de paquetes instalados, aplicaré un filtro al comando:


# dpkg --get-selections | grep -v deinstall



Con ésto he obtenido la lista de paquetes en pantalla. Como lo que me interesa es tenerla en un archivo, redirijo la salida estándar:

# dpkg --get-selections | grep -v deinstall > listapaquetesinstalados.txt


Si ésto lo colocamos en un script que se ejecute periódicamente, podemos tener siempre a mano la lista de paquetes  que tiene nuestro sistema para poder recuperarlo en caso de fallo.

Si tuviera que recuperar mi sistema tras un fallo, como ya hemos dicho, primero instalaría una máquina con un sistema mínimo. Y después le añadiría los paquetes que debe tener.  ¿Cómo? Usando la lista de paquetes que tenía mi sistema antes del fallo: listapaquetesinstalados.txt

Incorporando la lista de paquetes al nuevo sistema:

# dpkg --set-selections < listapaquetesinstalados.txt

E instalando los paquetes de la lista:

# apt-get dselect-upgrade

Tarjeta inalámbrica Broadcom BCM43xx en Debian Squeeze

Instalé Debian Squeeze en un portátil con una tarjeta inalámbrica Broadcom BCM4312, que, por cierto, llevan muchos portátiles y no me funcionaba.

Por lo que pude ver, se cargaba el módulo b43legacy, pero ni levantaba el interfaz de red automáticamente ni me dejaba levantarlo manualmente.

Buscando un poco de información encontré que la versión 2.6.32 del kernel de linux tenía soporte para estas tarjetas y además permitía ponerlas en modo monitor, cosa que anteriormente no se podía hacer.

Así que miré si en los repositorios de squeeze estaba este kernel para no tener que instalarlo desde el código fuente, y ví que sí lo había.

Como la máquina en la que que quería instalarlo tiene un sistema de 32 bits instalé: linux-image-2.6.32-trunk-686

# aptitude install linux-image-2.6.32-trunk-686

Pero si vuestra máquina tiene un sistema de 64 bits, podéis instalar el siguiente, por ejemplo:linux-image-2.6.32-trunk-amd64
Hay más versiones del kernel en los repositorios, para el que necesite otra cosa.

Una vez instalado el kernel, necesitamos instalar el firmware de este chipset.
Así que instalamos el paquete b43-fwcutter, que se encargará de extraerlo y colocarlo en el directorio /lib/firmware:

# aptitude install b43-fwcutter

Eso es todo. Una vez instalado, reiniciamos la máquina.

Una vez iniciado el sistema, abrimos un terminal y comprobamos si el interfaz está levantado:

# iwconfig

Debemos ver que wlan0 está funcionando.

Si no estuviera levantado, lo levantamos:

# ifconfig wlan0 up

Y vemos si funciona:

# iwlist wlan0 scan

Para comprobar que podemos poner la tarjeta en modo monitor, instalamos aircrack-ng, si no lo tenemos instalado:

# aptitude install aircrack-ng

Y ejecutamos airmon-ng para iniciar el modo monitor:

# airmon-ng start wlan0

Si ejecutamos ahora iwconfig, además del interfaz wlan0 veremos un nuevo interfaz: m0n.

Como ya he comentado, ésto lo he probado en Squeeze. Si por alguna razón no funcionara, podemos probar a instalar b43-fwcutter desde el código fuente:

Para ello, instalamos git, si no lo tenemos instalado:

# aptitude install git

Es una buena costumbre colocar en /usr/src todo lo que instalamos desde código fuente:

# cd /usr/src

Y nos descargamos la versión en desarrollo de b43-fwcutter:

# git clone http://git.bu3sch.de/git/b43-tools.git

Una vez descargado, entramos en el directorio:

# cd b43-tools/fwcutter

y compilamos:

# make

Una vez compilado, descargamos el  firmware:

# cd /usr/src 
# wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2

Lo descomprimimos:

# tar xfvj broadcom-wl-4.178.10.4.tar.bz2

E instalamos:

# cd broadcom-wl-4.178.10.4/linux
# /usr/src/b43-tools/fwcutter/b43-fwcutter -w /lib/firmware wl_apsta.o

Por último reiniciamos y comprobamos si todo ha ido bien.

jueves, 18 de febrero de 2010

phpdapadmin: Error Could not start TLS. Please check your LDAP server configuration.

En las versiones más recientes de phpldapadmin viene configurado por defecto que la conexión con el servidor ldap se haga mediante TLS, y si nuestro servidor de ldap no está configurado para usar TLS, al introducir el usuario y la contraseña nos mostrará un error como el siguiente:

ErrorCould not start TLS. Please check your LDAP server configuration.


 Para solucionarlo,  o hacemos que nuestro ldap soporte TLS o desactivamos el uso de tls en el fichero de configuración de phpldapadmin. Para desactivar tls en phpldapadmin, editamos su fichero de configuración:

# nano /etc/phpldapadmin/config.php

Modificando la línea que dice:


$ldapservers->SetValue($i,'server','tls',true);


Por:


$ldapservers->SetValue($i,'server','tls',false);