Algo de Linux

jueves, 30 de octubre de 2014

Problema de forwarding en bind9

Estaba tratando de configurar el forwarding en el servidor bind9 de la subred de los ciclos para que reenviara peticiones a los servidores DNS de la red del centro, y a pesar de que la configuración es sencilla, no funcionaba:

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        recursion yes;
        forwarders { 172.19.144.3; 172.19.144.2; };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation yes;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};
Buscando un poco, he encontrado que si dejamos dnssec-validation auto, bind9 no realiza las peticiones a los servidores que le hayamos indicado, pero sí funciona cuando el valor es yes o no. Un bug??

Publicado por primera vez en http://enavas.blogspot.com.es

Configuración de PowerDNS en los IES utilizando pdns-recursor para resolver direcciones internas y externas

En un post de abril de este año (http://enavas.blogspot.com/2014/04/configurar-powerdns-en-los-centros-para.html) explicaba cómo configurar PowerDNS en los servidores de los centros para tener acceso a las aplicaciones de intranet del Gobierno de Extremadura.

Como estoy demasiado ocupado en el centro, casi no leo el correo de la lista o lo ojeo por encima. El caso es que esta mañana he visto que algún compañero comentaba en un mensaje de hace algunos días que la configuración que explicaba en el post mencionado anteriormente no le servía para que el DNS le resolviera una dirección de una web externa.

Decir que es lógico porque con lo expuesto en el post no se trata de resolver direcciones externas, sino de configurar PowerDNS para que resuelva direcciones de la intranet. Para mejorar la configuración de la resolución externa, habría que tocar otras configuraciones adicionales.

Cuando escribí el artículo no quise incluir mi configuración completa para que la gente no se liara y copiara y pegara mis configuraciones en sus servidores sin entenderlas, algo que puede ser bastante problemático si no se sabe lo que se está haciendo. Como ya he comentado en alguna ocasión, en mi centro tengo montada una réplica del servicio ldap en el servidor nfs y un powerdns en cada uno de los servidores, de tal manera que ambos resuelvan nombres consultando la base de datos del ldap local.

En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
También creo haber leído que alguien había desactivado el recursor porque al fin y al cabo en la configuración que aplicaba, no se estaba usando y realmente no sabía para qué servía.

No voy a entrar en demasiados detalles sobre PowerDNS, pero voy a tratar de aclarar un poco el tema para que se entienda, sobre todo porque a mí me gusta entender todo aquello con lo que trabajo y supongo que a otros también.

Bueno, vamos al tema...

PowerDNS está formado por dos componentes:
  • El servidor "autoritativo": pdns.
  • Y el recursor: pdns-recursor.
Otros servidores DNS combinan ambas funciones.

Por decirlo de algún modo, un servidor DNS "autoritativo" es la fuente que proporciona información de resolución de nombres para un dominio en particular. 
Los servidores "autoritativos" pueden ser de dos tipos: primarios o secundarios.

En cuanto al recursor, simplemente nos proporciona un sistema de almacenamiento en caché para acelerar la resolución de nombres y un dispositivo de resolución recursiva de nombres para que nuestros clientes accedan a nuestra red o a internet utilizando DNS.

Teniendo en cuenta todo ésto, estaréis de acuerdo conmigo en que, aunque el recursor no es imprescindible, sí es de gran utilidad.
Cuando en el fichero /etc/powerdns/pdns.d/pdns-debian-edu.conf tenemos la siguiente línea:
recursor=127.0.0.1:1553
Le estamos diciendo a nuestro servidor DNS "autoritativo" que  utilice como recursor el servidor que escucha en la dirección IP 127.0.0.1 y en el puerto 1553.

Si en lugar de eso, en el fichero /etc/powerdns/pdns.d/pdns-debian-edu.conf ponemos la siguiente línea:
recursor=8.8.8.8
Le estamos diciendo a nuestro servidor DNS "autoritativo" que  utilice como recursor el servidor de Google cuya IP es 8.8.8.8

En mi caso, utilizo el recursor que corre en mi servidor (recursor=127.0.0.1:1553), sencillamente porque mi recursor cacheará información de dns localmente y eso hará que esa información se proporcione más rápidamente a los clientes.

Alguien me preguntaba cómo es posible que el servidor autoritativo y el recursor se encuentren corriendo en la misma máquina. La respuesta es muy sencilla: El servidor autoritativo escucha en el puerto 53 y el recursor escucha en el puerto 1553.

Una vez aclarado un poco el tema, os muestro mi configuración para el recursor, que se entiende bastante bien con sólo ver el fichero:

/etc/powerdns/recursor.conf
dont-query=
forward-zones=valledeljerte3=172.19.144.3;172.19.144.2,gobex.pri=172.20.5.4;172.20.5.3,juntaextremadura.pri=172.16.1.28
forward-zones-recurse=.=8.8.8.8;8.8.4.4
local-address=127.0.0.1
local-port=1553
quiet=yes
setgid=pdns
setuid=pdns
Con ésto, garantizo la resolución de nombres de mi dominio, la resolución de nombres de dominio de la intranet y la resolución de nombres de internet.
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 28 de octubre de 2014

Migrar Debian Wheezy de 32 a 64 bits

Hace unos días, tratamos de instalar un sistema operativo de 64 bits en una máquina virtual creada en VirtualBox en un portátil ttl y no terminaba de completarse. Lo repetimos una vez más y volvió a suceder lo mismo.

Me pareció un poco extraño, pero se me ocurrió una sencilla explicación: El Debian instalado en los portátiles ttl es de 32 bits. 

Pensando en solucionar este problema y teniendo en cuenta que sería mucho más óptimo instalar un sistema de 64 bits en una máquina de 64 bits me decidí a mirgrar el Debian de 32 bits instalado a 64 bits, algo viable puesto que Debian Wheezy es multiarch. Para ello, tomé como referencia el siguiente tutorial de migración:
http://www.ewan.cc/?q=node/90

No me sirvió al pie de la letra, pero sí como orientación y con algunos pequeños retoques dado que mi caso no era exactamente el mismo.

A grandes rasgos, la idea es sencilla:
  1. Instalar un kernel de 64 bits.
  2. Obtener la lista de paquetes instalados en el sistema.
  3. Reducir los paquetes instalados al sistema base.
  4. Actualizar el sistema base a 64 bits.
  5. Actualizar las librerías a 64 bits.
  6. Reinstalar el resto de paquetes que teníamos antes de reducir el sistema.
Eso sí. El procedimiento lleva su tiempo, sobre todo si hay que hacer la instalación de paquetes desde internet. Para no tardar mucho, lo que hice fue utilizar el disco duro externo en el que guardo una copia de los mirrors del centro.

Ahora ya tengo un sistema como el de los miniportátiles para equipos de 64 bits. El siguiente paso será montar también este sistema de 64 bits en la imagen de los portátiles ttl.
 
Publicado por primera vez en http://enavas.blogspot.com.es

Reinstalar grub usando grub-install

Podemos reinstalar grub fácilmente desde un live cd mediante el siguiente procedimiento: Arrancamos el live cd. Montamos la partición que contiene el sistema raíz. Suponiendo que sea la partición /dev/sda5:
# mount /dev/sda5 /mnt
Montamos la partición que contiene /boot. Suponiendo que sea /dev/sda3:
# mount /dev/sda3 /mnt/boot
Realizamos la instalación de grub:
# grub-install --boot-directory=/mnt/boot /dev/sda
Desmontamos la partición /boot:
# umount /boot
Desmontamos la partición raíz del disco:
# umount /mnt
Por último, reiniciamos el equipo. Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 26 de octubre de 2014

Instalar Virtualbox en Debian Wheezy desde la línea de comandos

En ocasiones me preguntan por qué cada vez que voy a hacer alguna configuración, instalación, etc, me voy a un terminal... Supongo que, en parte, porque me he acostumbrado y me resulta más cómodo y rápido que estar buscando entre los menús del entorno gráfico. Además eso es bueno, en el sentido de que si estás acostumbrado a trabajar en el terminal, cuando no tienes entorno gráfico, como por ejemplo, en el caso de servidores, no te molesta. 

Veamos a continuación cómo instalar VirtualBox en Debian Wheezy desde un terminal:
 
Para instalar VirtualBox en Debian Wheezy, lo más cómodo es hacerlo desde los repositorios oficiales. Así que, lo primero será añadir los repositorios a nuestra lista:
# echo "deb http://download.virtualbox.org/virtualbox/debian wheezy contrib non-free" > /etc/apt/sources.list.d/virtualbox.list
Una vez añadido el repositorio, descargamos la clave pública y la añadimos al anillo de claves:
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
A continuación, actualizamos los índices de los repositorios:
# apt-get update
E instalamos el paquete VirtualBox. La última versión disponible a día de hoy es la 4.3:
# apt-get install virtualbox-4.3
Por último, descargamos el VirtualBox Extension Pack correspondiente a la versión que estamos instalando desde https://www.virtualbox.org/wiki/Downloads:
# wget http://download.virtualbox.org/virtualbox/4.3.18/Oracle_VM_VirtualBox_Extension_Pack-4.3.18-96516.vbox-extpack
Este paquete nos proporciona soporte para dispositivos USB 2.0, RDP y PXE para tarjetas de red intel. Cuando lo hayamos descargado, no tenemos más que instalarlo:
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.18-96516.vbox-extpack --replace
Si todo ha ido bien, veréis el progreso de la instalación:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 23 de octubre de 2014

Script para borrar las credenciales de usuario cacheadas en portátiles

Para hacer algo más de limpieza desde el script /root/S99primer-arranque, es interesante borrar las credenciales de usuarios cacheadas en portátiles.

Para realizar dicha limpieza, tengo un script /usr/local/sbin/removecachedcredentials al que llamo desde el script S99primer-arranque.  De este modo, puedo limpiar también las credenciales en cualquier momento, no sólo en el inicio:
#!/bin/bash

# Instalamos libpam-ccreds si no estaba instalado
dpkg -l | grep ^"ii  libpam-ccreds" > /dev/null || apt-get -y install libpam-ccreds

for usuario in `cc_dump |awk '{print $3}' | sed '1,2d'`; do
    cc_test -update any $usuario -
done

Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 22 de octubre de 2014

Iso de Clonezilla + DRBL para montar en pendrive/disco duro USB

En el siguiente enlace dejo una ISO muy interesante, sobre todo para los administradores de centros, en la que he montado Clonezilla y DRBL:

Si os preguntáis por qué monto ambas herramientas, la razón es muy sencilla: Habitualmente uso clonezilla para crear y restaurar imágenes, pero cuando tengo que clonar de forma masiva, utilizo DRBL para restaurar imágenes en modo multicast.
 
Ajustes que le he realizado:
  • El filesystem.squashfs de DRBL se aloja en el directorio live y el filesystem.squashfs de Clonezilla se encuentra ubicado en el directorio live-hd. De este modo, es posible tener ambas herramientas en el mismo dispositivo.
  • Se establece por defecto el idioma español tanto para la interfaz como para el teclado. Con ésto evitamos tener que seleccionar el idioma en el asistente de clonación cada vez que lo usemos.
  • Se fija como directorio de imágenes el /home/partimag del dispositivo para ambas herramientas y se monta en modo lectura/escritura con el fin de que se use tanto para salvar/restaurar imágenes en ambas herramientas.
Para montar la ISO en el pendrive podéis usar tuxboot, o hacer el dispositivo arrancable de forma manual y copiar el contenido.
Publicado por primera vez en http://enavas.blogspot.com.es