Spiga

‘ Programación ’ category archive

Configurar el servidor DNS junto a un dominio

Enero 03, 09 by Itimag

Hace unos días vimos como instalar un servidor de DNS en nuestro equipo o servidor y ahora toca ver como se configura para que éste sea capaz de resolver nuestros dominios.

Supongamos que tenemos el dominio itimag.net y queremos configurarlo en nuestro servidor de tal forma que este mismo resuelva el dominios y que además tenga las entradas DNS primaria y secundária que nosotros mismos personalizaremos (en mi caso ns1.itimag.net para la primaria y ns2.itimag.net para la secundária).

Cuando hablo de dns primarias y secundarias, me refiero a aquellas que podemos modificar desde el panel de administración de dominios que nos ofrece nuestro agente registrador. Por ejemplo, en OVH es este: dns

Como observamos en la imagen, los DNS asociados a itimag.net son ns1.itimag.net y ns2.itimag.net. Pues bien, vamos a ver como configurar esto en nuestro servidor con la finalidad de que en el whois del dominio, aparezca ns1.itimag.net y ns2.itimag.net en vez de la IP xxx.xxx.xxx.xxx.

Como se observa en la imagen, los dos DNS (ns1.itimag.net y ns2.itimag.net) apuntan a distintas IP. Ambas IP están configuradas en el mismo equipo. No es precisamente así como debería estar ya que en caso de que el servidor falle, fallarían los 2 nombres de dominio y, por consiguiente, nadie podrá acceder al dominio o dominios configurados con estos servidores DNS.

En caso de que tu servidor disponga de una única ip, también puedes seguir el proceso que aquí se explica.

Pasemos a la acción:

  1. Accedemos al servidor por ssh y dirigirnos al directorio /etc/bind/
  2. ssh user@xxx.xxx.xxx.xxx -p puerto
    cd /etc/bind
  3. Para ver todos los ficheros de este directorio utilizamos el comando ls:
  4. ls
  5. Editamos el fichero /etc/bind/named.conf.local
  6. nano /etc/bind/named.conf.local
  7. Añadimos las siguientes zonas al fichero:
  8. zone "ns1.itimag.net" {
    type master;
    file "/etc/bind/ns1.itimag.net";
    allow-transfer {87.98.xxx.xxx; }; // Tu segunda IP
    };
     
    zone "ns2.itimag.net" {
    type master;
    file "/etc/bind/ns2.itimag.net";
    };
     
    // La zona inversa
    zone "xxx.xxx.xxx.in-addr.arpa" {
    type master;
    file "/etc/bind/pri.xxx.xxx.xxx.in-addr.arpa";
    };

    Nota: Debes substituir el nombre de dominio (itimag.net) por el tuyo y en el allow transfer insertar la segunda ip de tu equipo (o la ip del DNS secundario externo en caso de no tener segunda ip).

    El nombre de la zona inversa viene determinado por nuestra ip de tal forma que la zona inversa para la ip 10.11.12.13 sería “12.11.10.in-addr.arpa”

    Guardamos el fichero y salimos, pulsando “ctrl + o” y “ctrol+x”.

  9. Ahora vamos crear los ficheros /etc/bind/ns1.itimag.net y /etc/bind/ns2.itimag.net :
  10. nano /etc/bind/ns1.itimag.net

    El fichero resultante debe ser algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.itimag.net. root.localhost. (
     
    2008092401; serial-no
     
    28800; refresh, seconds
     
    7200; retry, seconds
     
    604800; expiry, seconds
     
    86400 ); minimum-TTL, seconds
     
    ;
     
    ns1.itimag.net.         IN NS ns1.itimag.net
     
    ns1.itimag.net.         IN A 213.251.xxx.xxx

    Nota: Debes substituir cada ns1.itimag.net por tu ns1.dominio.com. Debes substituir la línea que contiene el serial-no siguiendo la siguiente norma:

    Año  	   Mes     Día      ID
     
    2008       09      24       01; serial-no

    Los cuatro primeros dígitos corresponden al año. Los dos siguientes al mes. Los dos siguientes al día y los 2 restantes hacen referencia a un identificador que indica la versión del fichero (cada vez que modificamos el fichero, debemos incrementar en una unidad el ID). También debes substituir la IP 213.251.xxx.xxx con la ip de tu servidor.

    Creamos el segundo fichero:

    nano /etc/bind/ns2.itimag.net

    Contendrá lo siguiente:

    $ttl 86400
     
    @ IN SOA ns2.itimag.net. root.localhost. (
    2008092401; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    ns2.itimag.net.         IN NS ns2.itimag.net
    ns2.itimag.net.         IN A 87.98.xxx.xxx

    Nota: Debemos de realizar los mismos cambios que en el fichero anterior. Modificamos el fichero /etc/resolv.conf para añadir nuestro dominio y las ip’s de nuestro servidor o servidores dns.

  11. Creamos el fichero /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa para la zona inversa:
  12. nano /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA mi_dominio.com. root.localhost. (
    2008071901; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS ns1.mi_dominio.com.;
    NS ns.kimsufi.com.;
     
    xxx PTR mi_dominio.com.

    Nota: El xxx corresponde con los últimos tres dígitos (o menos) de tu ip. El serial-no corresponde con la fecha actual: en este caso año 2008, mes 07, día 19, identificador 01. Cada vez que modifiquemos el fichero debemos aumentar en una unidad el identificador.

Configuración del dominio:

  1. Añadimos el dominio a configurar insertando la siguiente linea:
  2. search mi_dominio.com
  3. Obsevemos que la ip de nuestro servidor se encuentra ya insertada en una linea como esta:
  4. nameserver tu_ip

    Ejemplo de configuración:

    search mi_dominio.com
    nameserver 127.0.0.1
    nameserver 213.251.xxx.xx
  5. Modificamos el fichero /etc/bind/named.conf.local y le añadimos la zona para nuestro dominio:
  6. zone "mi_dominio.com" {
    type master;
    file "/etc/bind/pri.mi_dominio.com";
    allow-transfer {213.186.33.199; };
    };
  7. Creamos el ficgero /etc/bind/pri.mi_dominio.com
  8. nano /etc/bind/pri.mi_dominio.com

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.mi_dominio.com. root.localhost. (
    2008092201; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS xxx.xxx.xxx.xxx ;
    NS ns.ns.kimsufi.com. ;
    MX 10 mail.mi_dominio.com.;
     
    mi_dominio.com. A xxx.xxx.xxx.xxx
    www A xxx.xxx.xxx.xxx
    ns1 A xxx.xxx.xxx.xxx
    mail A xxx.xxx.xxx.xxx
     
    mi_dominio.com. TXT "v=spf1 a mx ~all"
    mi_dominio.com. TXT "v=spf1 a -all"

    Nota: Debemos substituir las xxx.xxx.xxx.xxx por la ip donde va a apuntar al dominio

  9. Forzamos bind a actualizar las zonas:
  10. /etc/init.d/bind9 force-reload
  11. Ahora podemos observar si se han producido errores observando los logs del demonio ejecutando el siguiente comando:
  12. less /var/log/daemon.log

15Puzzle en Java

Diciembre 11, 08 by Itimag

Os presento mi 15 puzzle hecho en java. Se trata de aquel juego en el que tienes que ir moviendo las piezas hasta ordenar los números o la imagen.

Os dejo una captura:

puzzle

Al estar programado en java, el juego es multiplataforma y necesita de éste para funcionar. Puedes comprobar si tienes de java instalado desde aquí.

Puedes bajar el juego de aquí: Descargar

La imagen que aparece en el juego pertenece al usuario einen de deviantart.

Programar con Lisp en Linux

Octubre 18, 08 by Itimag

¿Qué es lisp?

De acuerdo con la definición en la wikipedia:

Lisp es el segundo lenguaje de programación, después de Fortran, de alto nivel. Lisp es de tipo declarativo y fue creado en 1958 por John McCarthy y sus colaboradores en el MIT.

El elemento fundamental en Lisp es la lista, en el sentido más amplio del término, pues tanto los datos como los programas son listas. De ahí viene su nombre, pues Lisp es un acrónimo de “LIStProcessing”.

¿Cómo vamos a programar con Lisp en una distribución Linux basada en Debian?

Vamos a utilizar Clisp. Su definición en la wikipedia es la siguiente:

CLISP es una completa implementación libre de Common Lisp realizada por Bruno Haible, de la Universidad de Karlsruhe, y Michael Stoll, de la Universidad de Munich, que cumple con casi la totalidad del estándar ANSI Common Lisp, además de muchas otras extensiones. CLISP es software libre y está publicado con la licencia GPL.

¿Cómo instalamos Clisp?

  1. Abrimos un Terminal y accedemos como root
  2.  su
  3. Ejeutamos lo siguinte:
  4.  apt-get install clisp clisp-dev clisp-doc

Ahora que ya tenemos Clisp instalado, para acceder a Clisp, abrimos una consola y escribimos el siguiente comando:

clisp

Ahora, a programar se ha dicho ;)

¿Cómo mostrar publicidad (adsense) solo a las visitas que llegan de Google?

Octubre 04, 08 by Itimag

Dada la importancia de que los lectores de un blog se sientan a gusto en este, puede ser necesario el no introducir publicidad entre los posts, lo cual puede provocar un decremento de nuestros ingresos.

¿Existe alguna solución para obtener ingresos y que nuestros lectores se sientan a gusto?

La respuesta es sí. Una posible solución es la que nos muestra Anieto2k en uno de sus fantásticos post en el cúal nos desvela unas lineas de código en php que nos van a permitir que únicamente los usuarios que provengan de Google vean publicidad en el interior de nuestros posts. Aquí lo tenéis:

<?php if (preg_match('/q=|search/', $_SERVER['HTTP_REFERER']) ) : ?>
tu código ADSENSE
<? endif; ?>

Yo ya me he puesto manos a la obra y lo he implementado en este blog. ¿Y tú? ¿Vas a dejar que tus usuarios se sientan incómodos leyendo tu blog?

Un saludo