Hackit! Nivel 4: ingeniería inversa

Posted on February 29th, 2008 in HackIt, Retos, Seguridad by admin (482 lecturas)

Al igual que en el nivel 3, un pequeño formulario con login y password ocupa la pantalla. A diferencia del nivel 3, donde tuvimos que romper un applet Java, en esta ocasión se nos plantea romper un componente Flash. Es decir, podemos asumir que la lógica que valida un login y un password está en el propio componente Flash, y que por tanto, se intenta garantizar la seguridad por ocultación… lo cual no suele funcionar (como acabamos de comprobar). Bien, hay que averiguar cuál es el algoritmo de validación que oculta el fichero binario .swf (Flash). El procedimiento: igual que en 3, obtener un buen descompilador de Flash, estudiar el código que genere y averiguar el camino a seguir, es decir, un poquito de ingeniería inversa sobre .swf. Esta prueba no fue tan fácil como la anterior; a pesar de ello, la clave cayó bastante rápido gracias a que uno de los miembros del equipo se llevó la artillería preparada en una máquina Windows… Desvelaré el secreto más adelante, dejo el fin de semana para que os divirtáis y cojáis fuerza para el nivel 5, que se nos atragantó a unos cuantos grupos… pero eso… es otra historia que contaré la semana que viene ;-)

HackIt! Nivel 3: solución

Posted on February 28th, 2008 in HackIt, Java, Seguridad by admin (365 lecturas)

El primer paso por tanto, será realizar ingeniería inversa sobre el binario .class. Para ello, tras buscar un buen descompilador de clases Java, nos encontramos con Jad, una aplicación gratuita (no-libre) multiplataforma.

Descargaremos la versión 1.5.8e compilada estáticamente para no tener problemas de dependencias con ninguna librería.
A continuación, descargaremos el fichero secApplet.class en el que se basa el reto 3.

$ wget http://hackit2.diariolinux.com/secApplet.class

Y procedemos a la descompilación:

./jad secApplet.class

Tras algunos warnings, obtendremos el fichero secApplet.jad, que al abrirlo, comprobaremos que se trata del
código fuente Java original de la clase secApplet. También veremos que la calidad del trabajo de descompilación realizado por Jad
es muy buena (probablemente debido también a que el autor del .class original no se preocupó de esconder su código).

Entre las funciones de interés del fichero .jad se encuentra el código del método decrypt()

String decrypt(String s)
{
String s1 = "";
StringBuffer stringbuffer = new StringBuffer(s);
for(int i = 0; i < stringbuffer.length(); i++)
switch(stringbuffer.charAt(i))
{
case 65: // 'A'
s1 = s1 + "L";
break;
case 66: // 'B'
s1 = s1 + "M";
break;
...

Si analizamos el flujo del programa veremos que se llama a ese método decrypt pasándole el parámetro basename (del código HTML del applet Java):

String s = getParameter("basename");
if(s != null)
s = decrypt(s);

Bien, preparemos una clase Java a la que daremos el nombre Hack, y que incluirá un método main() de prueba del método decrypt():


public class Hack {
public static void main(String[] args){
System.out.println( decrypt(args[0]) );
}
public static String decrypt(String s)
{
[incluír aquí el código de decrypt]
}
}
Compilamos nuestra clase de prueba:

$ javac Hack.java

Y la ejecutamos, pasándole como parámetro el valor de la variable “basename” que encontramos en el código HTML de la página:

$ java Hack jhtgh.spi
users.dat

Bueno, nos devuelve el nombre users.dat. Leyendo el código Java descompilado anteriormente, vemos que users.dat es el nombre del ficheroque se descarga desde getDocumentBase()+users.dat, es decir, desde http://hackit2.diariolinux.com/users.dat :

URL url = new URL(getDocumentBase(), s);
DataInputStream datainputstream = new DataInputStream(url.openStream());
String s1;
while((s1 = datainputstream.readLine()) != null){

Bien, vamos a ver qué se esconde en ese fichero:

$ wget http://hackit2.diariolinux.com/users.dat

Si hacemos un cat de users.dat vemos que es un string cifrado. Según el código Java descompilado, hay que descifrarlo, usando decrypt() otra vez:

$ java Hack `cat users.dat`
euskal|j4v4t0s|./level4-j4v4t0s.html|_self

Con lo que ya tenemos la clave del nivel 4.

Conclusiones: basar la seguridad de un procedimiento de autenticación en esconder el método de descifrado en un fichero binario es bastante ingenuo. Cualquier atacante con unos mínimos conocimientos de ingeniería inversa podrá saltarse cualquier método de seguridad por ocultación. Le costará más o menos tiempo hacerlo, pero podemos estar seguros de que podrá conseguirlo si se esfuerza lo suficiente…

HackIt! Nivel 3: seguridad por ocultación

Posted on February 27th, 2008 in HackIt, Seguridad by admin (448 lecturas)

Lo primero que vemos al entrar en el nivel 3 es un applet Java (que en Firefox, le cuesta cargar lo suyo…). En dicho applet se nos pide que introduzcamos login y password. Si acertamos, pasamos de nivel. Ok, analicemos el código fuente de la página para ver qué podemos averiguar. Lo primero que veremos será información sobre la clase Java principal que usa este applet: secApplet.class. Esta clase usa también clases internas que podemos encontrar compiladas en secapplet.jar. Todo esto lo podemos saber tras analizar el código HTML del reto:

 <applet code=“secApplet.class” archive=“secapplet.jar” codebase=“.” WIDTH=343 HEIGHT=152>
			<param name=numusers value=“1″>
			<param name=basename value=“jhtgh.spi”>
			<param name=style value=“1″>
			<param name=numtries value=“3″>
			<param name=width value=“343″>
			<param name=height value=“152″>
			<param name=l2 value=“8|38|53|13|”>
			<param name=l3 value=“10|76|49|13″>
			<param name=t1 value=“74|38|245|21″>
			<param name=t2 value=“74|76|245|21″>
			<param name=b1 value=“74|108|245|20″>
			<param name=bkcolor value=“1118566″>
			<param name=txcolor value=“16777215″>
			<param name=alturl value=“./level3-3m3d35.html”>
			<param name=ltitle value=“Enter your Username and Password”>
			<param name=mtarget value=“_self”>
		 </applet>

Parece por tanto que todo lo que tenemos que hacer es descompilar el fichero .class  y analizar el código fuente del applet Java, para ver qué es lo que está ocurriendo internamente (y esperemos que: 1) se pueda descompilar  y 2) el código fuente que genere no sea complicado de entender)

Cómo activar el soporte de comentarios en un PDF

Posted on February 26th, 2008 in GNOME, pdf by admin (557 lecturas)

pantaila-argazkia-1.pngEl año pasado Iñigo Martínez (Fac. Informática Donostia) participó en el Google Summer of Code con el soporte de anotaciones PDF a Evince. Esta funcionalidad se espera que se incluya de forma inminente en la versión oficial de Evince (ahora que ha pasado por el proceso de aprobación de parches). Se supone que permitirá añadir anotaciones como la que se ve en la imagen que ilustra este post. Lo que no sé es si permitirá hacerlo sobre cualquier documento PDF o sólo sobre aquellos que tengan activado el bit de “Permitir anotaciones”. No he visto ninguna aplicación de software libre que permita activar este bit sobre un fichero PDF. Y dentro de las aplicaciones propietarias sólo sé que es posible con el editor Adobe Acrobat (dado que acabo de comprobarlo ;-) . Lo curioso es que el visor Acrobat Reader 8.1.1 para Linux, en cuanto ve activo ese bit, activa la barra de herramientas de anotaciones (como ya analizamos en un post anterior). ¿Pero cómo demonios activo el dichoso bit si estoy en Linux? Bueno, que estemos en Linux no quiere decir que no podamos usar Adobe Acrobat :-O De hecho, desde Wine 0.9.54 es posible ejecutar la versión de evaluación (30 días) descargable desde la propia web de Adobe. Realmente el procedimiento es sencillo, aunque no trivial. Primero instalamos Wine (0.9.54 o posterior). A continuación, tras descargar el trial de Acrobat Pro 8, lo instalamos con wine nombre_del_trial.exe . Esta instalación sólo la he conseguido hacer funcionar en Fedora Core 8. En Ubuntu Gutsy no ha habido forma (lo cual me fastidia sobremanera, dado que es la distro con la que más trabajo a diario…)

En fin, una vez instalada, procedemos a ejecutarla:

$ wine ~/.wine/drive_c/Archivos\ de\ programa/Adobe/Acrobat\ 8.0/Acrobat/Acrobat.exe

Y aquí es donde hay un problema de compatibilidad con Wine. Nos saldrá una ventana para aceptar la EULA y dos botones (Aceptar/Cancelar). El problema es que no son pinchables O:-) Al principio te entran sudores fríos, porque después de este viaje que no puedas hacer nada por no poder pinchar en un botón es como para… en fin, cometer una locura. Pero para eso está la base de datos de compatibilidad Wine (concretamente, los comentarios de los usuarios en esa base de datos). Buscamos la entrada de Adobe Acrobat y encontramos lo siguiente: primero que en Fedora 8 va bastante bien (soporte “bronce”) y que en Gentoo y Ubuntu el soporte es… ejem, “garbage”, o sea, una basura. Lo siguiente: que alguien ha encontrado la forma de solucionar el “problemita” de no poder pinchar en el botón de Aceptar la EULA. Basta con ejecutar $ wine regedit y desde el editor de registro de Windows, buscar la rama:

HKCU/Software/Adobe/Adobe Acrobat/8.0/AdobeViewer

Crear ahí una nueva entrada de tipo REG_DWORD (botón derecho / REG_DWORD) y darle el nombre “EULA”. A continuación asignarle el valor 1. Tiene que quedar tal y como se ve en la siguiente figura:

screenshot2.png

Vale. Ahora ya podemos lanzar de nuevo Adobe Acrobat desde Wine. Abrimos cualquier PDF al que queramos activar el bit de soporte de anotaciones y (ahora viene el detalle final): lo activamos pulsando Advanced / Enable Usage Rights in Adobe Reader.

izengabea.png

Guardad bien este post. Lo necesitaréis.

¿A qué huele el verano de Google? a SoC’08 :-)

Posted on February 25th, 2008 in Devel, OpenSource by admin (340 lecturas)

Google SoC’08¡Google Summer of Code™ 2008 está (casi) preparado! Sí, el año pasado Google patrocinó a 900 estudiantes en más de 90 países, produciendo millones de líneas de código. Y este año ¡van a repetir! Por mi parte, si algún alumno de la Facultad de Informática de Donostia quiere animarse, estoy dispuesto a ayudarle (el año pasado no nos fue nada mal ;-) Así que si te interesa, vete preparando la documentación, porque a partir de Marzo, el SoC’08 comenzará a aceptar proyectos. No te olvides de leer el FAQ para más información. O de pasarte por el canal #gsoc en Freenode o de leer la lista de distribución. A Google le encantará contar contigo, nuevo colaborador del mundo OpenSource, y a mí me encantará ver cómo nuestros alumnos se interesan por el software libre (aunque sea a base de motivación vía Google :-)

Huevo de pascua en Acrobat Reader 8.1.2

Posted on February 25th, 2008 in pdf by admin (477 lecturas)

pantaila-argazkia.png Pues sí, Acrobat Reader 8.1.2 para Linux tiene un huevo de pascua que permite ver la cara del equipo de desarrollo de esta aplicación (gran equipo, y por lo que parece, en India controlan de programación para Unix mucho…). Para obtener la foto que acompaña a este post: elige en la ayuda “About Acrobat Reader” y cuando te salga la pantalla (splash) teclea unixreaderrocks . ¡Curioso!

¿Tendrá Evince algún huevo de pascua? (hay desarrolladores que  odian este tipo de añadidos “no productivos”, y hay otros a los que les gusta…)

Google incluye (por fin :-) un resumen de DiarioLinux

Posted on February 24th, 2008 in SysAdmin by admin (413 lecturas)

screenshot12.png Siempre he querido ver el resumen de DiarioLinux en los resultados de búsqueda de Google. Es decir, lo que marco en rojo en la imagen. No sé quién lo hace (si se hace a mano, o si Google tiene bots que lo hacen automáticamente), pero el caso es que las  webs  más conocidas lo tienen, y que DL no lo tuviera era una espinita que tenía clavada. Ahora ya estoy contento… Me voy a tomar un café con pastel de chocolate para celebrarlo ;-)  (qué poca cosa hace falta para sentirse bien …)

Crear un pdf a partir de un fichero de texto

Posted on February 23rd, 2008 in SysAdmin, pdf by admin (406 lecturas)

Fácil, pero lo dejo documentado aquí para que no se me olvide de nuevo…

Genero el fichero prueba.txt y lo convierto a PostScript con la utilidad enscript:

$ cat prueba.txt | enscript --no-header -o - > prueba.ps

Ahora, convierto el .ps a PDF con la utilidad ps2pdf:

$ ps2pdf prueba.ps

HackIt! Nivel 2: resumen criptográfico

Posted on February 22nd, 2008 in HackIt, Seguridad by admin (597 lecturas)

Seguimos con la prueba 2 del HackIt!, donde lo dejamos ayer. Algunos lectores me comentan que mejor no dé la solución directamente sino que vaya dando pistas progresivas. Me parece bien.

Lo primero que haremos, en este y otros niveles, será mirar el código fuente de la página en busca de…. bueno, !pistas! :-)

La página del nivel 2 incluye una función Javascript llamada Login() que tiene el siguiente aspecto:


function Login() {
var user = document.login.username.value;
var pass = document.login.password.value;
if (user=="euskal" && hex_cypher(pass)=="c79cc1714419a4aaf3c4c53360843294") {
location.href = 'level3-' + pass + '.html';
} else {
alert("ACCESS DENIED!");
};
}

Es decir, está claro que el nombre de usuario es ‘euskal’, pero del password sólo sabemos que al pasarlo por una función llamada hex_cypher devuelve como resultado la cadena “c79cc1714419a4aaf3c4c53360843294″. Podemos hacer dos cosas, analizar la función hex_cypher(),
que según el código fuente de esa misma página :

< script type="text/javascript" src="cypher.js" > </script>

se encuentra en el fichero cypher.js o bien usar “pensamiento lateral” :-) La primera opción siempre es viable dado el código fuente, por ingeniería inversa, pero nos llevará mucho (MUCHO) tiempo. La segunda opción, es más interesante. Pensemos que estamos en la segunda fase, la solución por tanto no debe de ser muy difícil… el algoritmo usado debe de ser conocido, y el resultado de aplicar ese algoritmo a una cadena de texto devuelve otra cadena de 32 caracteres de longitud… no hay muchas funciones de uso común en seguridad informática con esas características… Dada esa pista, tal vez se os ocurra qué función implementa hex_cypher(). Cuando la conozcáis, habrá que pensar en cómo romperla, es decir, ¿es posible a partir de la cadena resultado (32 caracteres) obtener el passwordoriginal sabiendo la función que se aplicó? (o dicho de otra forma, si la función es f, existe la inversa de f?

UPDATE: bueno, pues ya tenemos respuestas al reto :-) Efectivamente, se trata de la función md5, que según la Wikipedia:

“En criptografía, MD5 (Message-Digest algorithm 5) es una función criptográfica de dispersión, ampliamente utilizada e insegura [1] [2] , que dado un texto, devuelve un valor hash de 128 bits (32 caracteres). MD5 es un estándar de Internet, documentado en el RFC 1321, y ha sido utilizado en una gran variedad de aplicaciones de seguridad, así como para comprobar la integridad de archivos. Un hash MD5 se expresa típicamente como una cadena de 32 números hexadecimales.”

Una función hash, o función de dispersión como MD5, NO TIENE INVERSA. Es decir existe f(x) pero no f-1 (x). Sin embargo, se puede atacar el problema por fuerza bruta… de hecho, existen en Internet diversas webs con enormes bases de datos precalculadas (”al password x, le corresponde el hash y”). Por ejemplo, plain-text.info, una web que añade además la posibilidad de unirse a una red distribuída de obtención de hash md5 (nuestro ordenador puede participar, generando miles y miles de hashes cada día y añadiéndolos a la enorme base de datos de esa web… por cierto, no sólo de md5, sino también lm o ntlm, algoritmos usados en el cifrado de claves en Windows.

Si pasamos el hash c79cc1714419a4aaf3c4c53360843294 por esa web, nos da la clave de acceso al siguiente nivel : 3m3d35.

Nota: existe un método más elaborado que permite conocer todas (hasta cierto tamaño de clave ) las posibles combinaciones de x (y sus hash) sin tener que guardar explícitamente cada una de ellas (estoy hablando de las Rainbow Tables).

HowTo: Debian+OpenSSL+Bind9+Postfix+OpenLDAP+Courier

Posted on February 22nd, 2008 in Devel, OpenLDAP, SysAdmin by admin (4517 lecturas)

UPDATE 22/02/2008: lo prometido es deuda. Actualizado con la última parte (por ahora, hasta que Basaburu escriba más :-) del HowTo que enseña a instalar paso a paso un completo servidor con servicios Bind, OpenLDAP, Postfis y Courier IMAP.

UPDATE 21/02/2008: tras recibir una queja de mi amigo Basaburu (el autor del artículo) por tardar en publicar la sección de OpenLDAP que él escribió hace tiempo ya, aprovecho este post para pedirle disculpas por la tardanza en la publicación, para alabar el enorme trabajo que se está pegando con este extraordinario artículo y pedir a todos los lectores de DiarioLinux que se estudien detalladamente todo lo que él publica aquí, en especial la nueva sección que he añadido hoy (aunque Basaburu la escribió ¡hace ya un mes!): la sección sobre configuración y puesta a punto de un servidor y cliente OpenLDAP. Mañana mismo, sin falta, actualizaré la última parte del artículo, sobre instalación de Postfix.

UPDATE 6/01/2008: añadida la sección “Crear nuestra CA particular y los certificados de cliente y servidor”
UPDATE 3/01/2008: añadida la sección de configuración de Bind9 en chroot. Mañana más.

BasaBuru, como regalo al terminar la rotación alrededor del Sol:

Copyleft 15-11-2007 por BasaBuru y Sramos ver. 0.5

Este HowTo es la consecuencia de una tragedia, he perdido mi server casero. Con lo que no me queda otra que volver a montarlo.

En consecuencia he decidido dedicarle algo más de tiempo y documentar el proceso desde cero. Y que así esta tragedia pueda ser reutilizada por otros.

Este HowTo se lo dedico con todo mi cariño, afecto y admiración a la comunidad de sistemas de mi curro: igomez, pastelero, sramos, moebius, snaker, lynks, dvazquez y apardo. Pues ellos han sido mi apoyo, acicate y sostén intelectual los últimos 24 meses. Además a ellos les he dado mucho la brasa…. pero que mucho, sobre todo a sramos, igomez y pastelero y esta dedicatoria es una forma de mostrarles mi agradecimiento por sus muestras de solidaridad afectuosa.

Evidentemente este es un servidor casero lo que quiere decir que le faltan muchas de las virguerias que nuestras Hackers de sistemas meten en nuestras máquinas en producción. Pero como server casero suficiente, en mi opinión

La verdad es que uno se queda mucho mejor, pero que mucho, cuando comparte con los demás. Para todos vosotros que lo disfrutéis y que le saquéis algo de jugo.

Ahhhhhh y lo más importante que matéis todos los bichos que encontréis.

Lo he dividido en dos partes, ésta comprende hasta la instalación y configuración de los buzones pop3 courier. En la siguiente entrega el resto.

Instalación de alai server

Alai server está alojada en un k7 1800, con 80Gb de disco, con ip fija, bajo el dominio alai.org. Es una máquina imaginaria que como su nombre indica (alai=alegre en euskera) es alegre y feliz :) por que confía en que dejemos todo como debe ser sin que “nada” de problemas. A ver que hacemos… je, je.

Bueno sobre la elección de una debian me abstengo de explicar por qué; soy debianero, a Chessy, por ejemplo, le va Fedora y somos amigos que nos llevamos muy bien, para gustos los colores, vive libre. Sobre el proceso de instalación hay documentación más que de sobra, así que no comentaré nada al respecto.

Como una referencia podéis consultar: The Perfect Setup - Debian Etch (Debian 4.0)

Se instala una Debian 4.0 r1 etch (otra cosa que stable para un server es una imprudencia) por medio de una iso net-install dejando un sistema básico (esto es seleccionando solo “sistema estandar” en tasksel). Lo vamos a ir instalando todo poco a poco, servicio a servicio según necesidades.

Solo señalar que el disco se particiona en cuatro, /boot, /, /var y /swap. Y como es un server con una partición /var bien hermosa.

Servicios en alai server

  • bind9 DNS para la resolución de nombres y como secundario de un dominio
  • Servidor web apache2
  • OpenSSL Entidad certificadora CA, llaves y certificados
  • OpenLDAP slapd
  • Cyrus-SASL autentificación
  • PHP 5
  • Servidor de correo postfix
  • Buzones de correo Courier
  • Servidor de bases de datos MySql
  • Servidor de Backup BackupPc
  • Servidor de listas de correo sympa
  • Servidor de contenidos Drupal
  • Wiki DokuWiki
  • WebDav
  • Servidor CUPS

Como cuestión previa dado que Debian etch no lo instala por defecto en el “Sistema base” y necesitamos trabajar en remoto con el server, instalamos ssh y openssh-server:

alai:~# apt-get install ssh openssh-server

Y vamos a hacer una instalación inicial de apache2 para ir tirando mientras vamos montando cosas, para phpldapadmin por ejemplo. El tema de apache2 se tratará con detalle cuando le toque :)


alai:~# apt-get install apache2
Se instalarán los siguientes paquetes NUEVOS:
apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 libexpat1 libpq4 libsqlite3-0

DNS bind9 enjaulado

Primero el bind9 DNS mas que nada porque actua como secundario del dominio y se resuelven nombres más rápidamente en la red local que usando los DNS del ISP y por que la peña se me queja de que no anda internet igual desde que mate nuestro server casero. 80)

Así que no siendo estrictamente necesario ser el primer paso….. empezamos por aquí


alai:~# apt-get install bind9
Desempaquetando bind9 (de .../bind9_1%3a9.3.4-2etch1_i386.deb) ...
Configurando bind9 (9.3.4-2etch1) ...
Adding group `bind' (GID 104) ...
Hecho.
Adding system user `bind' (UID 104) ...
Adding new user `bind' (UID 104) with group `bind' ...
Not creating home directory `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
Starting domain name service...: bind.

Bueno así lo deja debian. Vamos a configurar.
Si fuera un primario la cosa se complicaría pero siendo un secundario, chupao.
Editamos el fichero de configuración local, esto es: /etc/bind/named.conf.local


//
// Do any local configuration here
//
zone "alai.org" {
type slave;
file "bigarren.alai.org";
allow-query { any; };
masters { 23.211.45.78; };
};

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include “/etc/bind/zones.rfc1918″;
Osea le decimos que la zona es alai.org, que es un esclavo y que el fichero para guardar la info es bigarren.alai.org (bind9 lo mete en /var/cache/bind) que permitimos cualquier pregunta y le decimos quien es nuestro maestro (su ip).

Enjaulando a bind9
Vamos a meter a bind9 en una jaula. De esta forma conseguimos mas seguridad, en el caso de que bind9 se vea comprometido y dado que sus actividades están limitadas a la jaula las consecuencias se minimizan.

Empezamos por parar el servicio

alai:~# /etc/init.d/bind9 stop

Editamos el fichero /etc/default/bind9 para hacer que el demonio corra como el usuraio bind sin privilegios encerrado en una jaula en /var/lib/named.
Y substituimos la línea OPTIONS=”-u bind” por la nuestra OPTIONS=”-u bind -t /var/lib/named”

alai:~# vim /etc/default/bind9

Ahora creamos la jaula, sus directorios:

alai:~# mkdir -p /var/lib/named/etc
alai:~# mkdir /var/lib/named/dev
alai:~# mkdir -p /var/lib/named/var/cache/bind
alai:~# mkdir -p /var/lib/named/var/run/bind/run

Movemos el directorio de configuraciones desde /etc a /var/lib/named/etc

alai:~# mv /etc/bind /var/lib/named/etc

Creamos un enlace simbólico del nuevo directorio de configuraciones desde la vieja localización (para evitar problemas cuando bind sea actualizado en el futuro)

alai:~# ln -s /var/lib/named/etc/bind /etc/bind

Creamos los dispositivos null y random. Fijamos también los permisos de los directorios:

alai:~# mknod /var/lib/named/dev/null c 1 3
alai:~# mknod /var/lib/named/dev/random c 1 8
alai:~# chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
alai:~# chown -R bind:bind /var/lib/named/var/*
alai:~# chown -R bind:bind /var/lib/named/etc/bind

Necesitamos modificar /etc/default/syslogd a fin de que podamos seguir recibiendo mensajes registrados en el registro del sistema.
Hay que modificar la línea: SYSLOGD=”” por esta otra: SYSLOGD=”-a /var/lib/named/dev/log”:

Abrís el fichero con vuestro editor favorito y hacéis las modificaciones

alai:~# vim /etc/default/syslogd
#
#
# Top configuration file for syslogd
#
#
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
#
#
# For remote UDP logging use SYSLOGD="-r"
#
#SYSLOGD=""
#
SYSLOGD="-a /var/lib/named/dev/log"

Rearrancamos el servicio:

alai:~# /etc/init.d/sysklogd restart

Arrancamos bind, y chequeamos /var/log/syslog en busca de posibles errores

alai:~# /etc/init.d/bind9 start

Enlaces de interés sobre Bind9 y su jaula
De todas formas si alguna necesita bregar con un primario o documentarse sobre la jaula para bind9, ahí van unos enlaces.
* DNS, BIND, DHCP, LDAP and Directory Services (bind9.net)
* Howto: Debian Root Server with Virtual Hosting (VHCS) on Debian “etch”
* DNS Installation and Setup using BIND9
* [Debian Sarge] Installing A Bind9 Master/Slave DNS System
* Traditional DNS Howto
* Bind-Chroot-Howto (Debian)
* Building A Debian DNS System
* Chroot-BIND HOWTO

Next Page »