lunes, 28 de junio de 2010

Servidor WEB bajo SSL que exija el certificado a los clientes (Apache2 - OpenSSL)

9 comentarios
Nota: Para el siguiente caso hablaremos de una entidad certificadora (CA) ya creada es mas este post es un anexo al anterior que es como configurar el servidor con ssl y lo podemos encontrar en la sección del blog:

Intalacion de Servidor Web Seguro (Apache2 - OpenSSL) 

Es muy importante entender el post anterior para poder llevar a cabo este, ya que estos temas estan muy ligados y se siguio el proceso por decirlo asi para no tener que repetir algunas cosas.

Nota2: Recordemos que al generar nuestra CA, generamos algunos importantes los cuales son: pcert.pem, pkey.pem, pcert.srl (certificado de la CA, llave de la CA, serial de la CA “respectivamente”); algo que debemos recordar siempre es la clave o frase que le pusimos a nuestra CA  (ver post anterior).

También generamos el certificado para el servidor web para el cual se crearon 2 archivos, en el post anterior; el certificado y la llave de este, (certificado.pem, priv-cert.pem).

Certificado del Cliente

Procederemos a crear nuestro certificado para el cliente y lo primero que deberíamos hacer es crear un directorio para que ahí se generen los certificados y demás, también debemos incluir en este los archivos generados para la CA (Entidad Certificadora).

Lo que haremos en un principio será generar la clave privada de nuestro certificado cliente:

root@quicksilver# openssl genrsa -des3 -passout pass:password1 -out client-priv.pem 2048
Bueno, lo que hicimos aqui fue generar la clave con un algoritmo triple des (-des3) con una frase para nuestra clave privada llamada password (-passout pass:password1), nuestra llave será un archivo llamado client-priv.pem (y lo creamos o damos salida con -out) y tendra una longitud de 2048 bits.

Ahora generaremos la petición del certificado:

root@quicksilver# openssl req -new -key client-priv.pem -passin pass:password1 -subj "/DC=zero.org/OU=org/CN=Victor" -out petic-cert-client.pem

Podemos observar que con el parámetro (req -new) estamos indicando que será una petición que le pasaremos la clave privada creada anteriormente client-priv.pem con el comando (-key) y posteriormente le indicamos la frase de dicha clave (-passin pass:password1), con el comando (-subj) le indicamos a quien pertenece el certificado, para ello ponemos entre comillas cada uno de los apartados que identifican separados por /, además ponemos el dominio o apartado al que pertenece en mi caso zero.org y con el parámetro CN indicamos el nombre del cliente que va dirigido aquí pusimos el nombre de Victor y por ultimo damos salida a nuestra petición (-out) y se llamara petic-cert-client.pem.

Y por ultimo podremos crear nuestro certificado, para esto debemos indicar en el archivo de configuración /etc/ssl/openssl.cnf como será nuestro certificado. Pero como lo hicimos anteriormente crearemos un archivo independiente y le pasaremos los parámetros necesario desde ahí.

root@quicksilver# nano config2.txt

Creamos el archivo con el siguiente contenido:


basicConstraints = critical,CA:FALSE 
extendedKeyUsage = clientAuth

Y lo guardamos, en el fichero le indicamos el basicConstraints=critical,CA:FALSE para que cumpla con el X509v3 y con la RFC3280. Y también le indicamos que el certificado servira para acceso a un servidor por lo que será una autenticación cliente y esto lo hacemos con la línea extendedKeyUsage = clientAuth.

Ahora si creamos nuestro certificado cliente:

root@quicksilver#  openssl x509 -CA pcert.pem -CAkey pkey.pem -req -in petic-cert-client.pem -set_serial 3 -days 365 -extfile config2.txt -sha1 -out client-cert.pem

Le indicamos que será un certificado del tipo x509 cuya CA (-CA) está definida en el archivo pcert.pem y usa como clave privada (-CAkey) el fichero pkey.pem y el certificado a generar tendrán las especificaciones definidas en la petición (-req -in) las cuales están en el fichero de petición petic-cert-client.pem.

El certificado tendrá una validez de un año (-days 365). Y le indicamos que el certificado es para un cliente, como esto lo tenemos en nuestro Archivo de configuración se lo indicamos con (-extfile) y nuestro archivo config2.txt y utilizaremos un algoritmo de cifrado SHA (-sha1).

Luego como nuestra CA tenía el número 1 y nuestro primer certificado era el certificado 2 este nuevo certificado sera el 3 y los proximos certificados a generar serán el 4,5,6... Esto se le indica mediante el parámetro (-set_serial). Si esta numeración no se pone correctamente tendremos un problema con nuestro certificado.

Generamos el certificado (-out) en el fichero cliente-cert.pem. Al ejecutar esta línea nos pedirá el password que le pusimos a nuestra CA y al ponérselo obtendremos el fichero client-cert.pem que es nuestro certificado.

Configuracion del hostvirtual del servicio apache2.

Al igual que en la parte anterior debemos agregar unas líneas en el host virtual para que pida el certificado cliente.

root@quicksilver# etc/apache2/sites-available/default

NameVirtualHost *:443
<VirtualHost *:443>
      ServerAdmin zero@localhost
      ServerName www.zero.org
      DocumentRoot /var/www/

      <Directory />
                  Options FollowSymLinks
                  AllowOverride None
      </Directory>

      <Directory /var/www/>
                  Options Indexes FollowSymLinks MultiViews
                  AllowOverride None
                  Order allow,deny
                  Allow from all
      </Directory>

      ScriptAlias  /cgi-bin/  /usr/lib/cgi-bin/

      <Directory “/usr/lib/cgi-bin/”>
                  AllowOverride None
                  Options +ExecCGI –Multiviews +SymLinksIfOwnerMath
                  Order allow,deny
                  Allow from all
      </Directory>

                  ErrorLog /var/log/apache2/error.log
                  # Possible values include: debug, info, notice, warn, error,
                  # crit, alert, emerg.
                  LogLevel warn
                  CustomLog /var/log/apache2/access.log combined
                  Alias    /doc/  “/usr/share/doc/”

      <Directory “/usr/share/doc/”>
                  Options Indexes MultiViews FollowSymLinks
                  AllowOverride None
                  Order deny,allow
                  Deny from all
                  Allow from 127.0.0.0/255.0.0.0 ::1/128
      </Directory>

                  #Lineas para el servidor
                  SSLEngine on
                  SSLCertificateFile /home/…/certificado.pem
                  SSLCertificateKeyFile /home/…/priv-cert
                  #Lineas para el cliente
                  SSLCACertificateFile /home/…/pcert.pem
                  SSLVerifyClient require

</VirtualHost>
SSLPassPhraseDialog exec:/etc/apache2/ssl-frase

Podemos ver que las nuevas líneas del cliente son: 

            SSLCACertificateFile /home/…/pcert.pem
SSLVerifyClient require

La primera, osea; SSLCACertificateFile /home/…/pcert.pem le indicamos donde tenemos nuestra CA (la ruta) y con la segundo; SSLVerifyClient require le exigimos al servidor web que pida el certificado cliente.

Recordemos que la opcion SSLPassPhraseDialog exec:/etc/apache2/ssl-frase la utilizamos en el post anterior y alli especificamos el contenido, la ruta y permisos del archivo ssl-frase, de nuevo les dejo el enlace del otro post:

Intalacion de Servidor Web Seguro (Apache2 - OpenSSL) 

Guardamos el fichero /etc/apache2/sites-availables/default y creamos un vinculo simbólico de este en el /etc/apache2/sites-enabled, es decir:

root@quicksilver# cd /etc/apache2/sites-enabled
root@quicksilver# ln -s etc/apache2/sites-availables/default default-000

Bueno, nos resta reiniciar el servidor web para que agregue los cambios.

root@quicksilver# /etc/init.d/apache2 stop
root@quicksilver# /etc/init.d/apache2 start

Ya tenemos nuestro servidor el cual a la hora de conectarnos mediante https a este nos pedirá un certificado y si no lo tenemos no nos abrira la página. 

Incorporación del Certificado Cliente al  Navegador

Ahora vamos a coger nuestro certificado cliente y se lo vamos a incorporar a nuestro navegador, para ello necesitamos crear con nuestro certificado un fichero comprimido en formato pkcs12 que el navegador es el que acepta.

La conversión la podemos realizar de la siguiente forma:

root@quicksilver# openssl pkcs12 -export -in client-cert.pem -inkey client-priv.pem -certfile cacert.pem -out cert-pck12.p12

Al ejecutar esto nos pedirá la passphrase del certificado cliente, en mi caso puse password1. También nos pide Export Password, que es un password que tenemos que poner para comprimir el archivo. Luego al importar el certificado en un navegador nos lo pedirá.

Posteriormente nos pide que verifiquemos el Export Password, es decir que lo volvamos a poner para comprobar que lo pusisteis bien.

Y ahora para ponerlo, abrimos el mozilla firefox (por ejemplo) y nos vamos al ménu Edit. Allí seleccionamos Preferences y dentro de la ventana que nos sale nos situamos sobre Advanced y con el scroll buscamos hasta encontrar Manage Certificate y le damos al import y ponemos el archivo cert-pck12.p12 que es nuestro certificado cliente.

Le ponemos el password que habiamos puesto cuando lo exportamos y  ya tenemos el navegador con vuestro certificado cliente cargado.



Imprimir

INTALACION DE SERVIDOR WEB SEGURO (Apache2 y OpenSSL).

0 comentarios

(Certificados Digitales)

Nota1: La instalación realizada se ha hecho en Ubuntu 8.10 y los repositorios usados son los que vienen por defecto en el mismo; para las configuraciones en versiones anteriores deberían ser muy similares e incluso para Debian.

Nota2: Todos los comandos aplicados deben hacerse bajo root para Ubuntu puede hacerse así o anteponiendo el comando sudo.

Nota3: Es recomendable crear un directorio para que ahí se generen los archivos.

Nota4: En todos los comando que aparecen llaves, peticiones o certificados los colocare sin ninguna ruta porque estaré en el directorio donde se generaron, si no están dentro de esta se deberá especificar la ruta de las mismas.

 root@quicksilver# apt-get update

Con el comando anterior nos cercioramos de obtener los paquetes mas actualizados de nuestro repositorio

Instalación de Apache2.

Procedemos a instalar el servidor web apache2 es una buena opción a la hora de elegir un servidor web ya que cuenta con bastantes módulos con los que podemos trabajar; claro que existen muchos más, algunos mejores, otro peores pero eso dependerá del para que lo necesite.

root@quicksilver# apt-get install apache2

Instalación de OpenSSL.

SSL (Secure Socket Layer) es el que le proporcionara la seguridad a nuestro servidor por medo de unos certificados que crearemos más delante de forma gratuita.

root@quicksilver# apt-get install openssl

Entidad Certificadora (CA).

Para crear un certificado primero debemos crear una Entidad Certificadora (CA); a continuación veremos cómo, pero es aconsejable crear una carpeta porque se generaran algunos archivos durante el proceso.

root@quicksilver# openssl req -x509 -newkey rsa:2048 -keyout pkey.pem -days 3650 -out pcert.pem

El comando anterior nos servira para crear nuestra CA para certificados X509, las llaves se harán con un algoritmo de encriptación rsa de 2048 bits y nos creara dos llaves: pkey.pem que será la llave privada de nuestra entidad y pcert.pem que será la pública.

Luego nos pedirá que digitemos el password el cual debe ser privado y por supuesto “NO se nos debe olvidar”.Y por ultimo nos pedirá algunos datos personales o de la empresa la cual será la CA la cual le hemos especificado que tenga 10 años de vigencia con el comando days 3650.

Creacion de Certificados Digitales.

El paso a seguir es crear nuestro certificado ya que contamos con la CA y gracias a esto podremos crear tantos certificados como queramos y ya no tendriamos que repetir los pasos anteriores para crearlos.
El primer paso a seguir sera crear la llave privada de nuestro certificado.

root@quicksilver# openssl genrsa -des3 -out priv-cert.pem -passout pass:frase-privada 2048

En el anterior comando indicamos primero crear la llave Triple DES 2048 bits (-des3); recordemos que 3DES es un algoritmos de encriptacion que se utilizo mucho en algun momento, claro que ahora hay algunos más seguros. Indicamos que la llave se llamara priv-cert.pem y con una frase que la he llamado frase-privada que sera la clave de nuestra llave.

Lo que debemos hacer ahora sera una peticion de certificado, debemos tener presente que este no es el certificado pero con este ya podremos sacar el nuestro.

root@quicksilver# openssl req -new -subj "/DC=zero.org/OU=org/CN=zero" -key priv-cert.pem -passin pass:frase-privada -out petic-cert.pem

Hacemos una peticion e indicamos a quien pertenece el certificado (-subj), y ponemos entre comillas, en mi caso mi dominio llamado zero.org y usara la frase privada que hemos especificado (-passin pass:) anteriormente y por ultimo nos devolvera la peticion llamada petic-cert.pem y con esto ya podemos crear nuestro certificado.

Para nuestro certificado OpenSSL tiene un archivo de configuracion en el que debemos especificar algunas caracteristicas, este archivo el openssl.cnf ubicado en la ruta /etc/ssl pero para simplificar las cosas podemos crear nosotros mismos un archivo que le pasará a nuestro certificado las caracteristicas necesarios para montarlo en nuestro servidor.

root@quicksilver# nano conf1.txt

y agregaremos el siguiente texto:

basicConstraints = critical,CA:FALSE 
extendedKeyUsage = serverAuth

Con la primera linea nos aseguramos que cumpla con el X509v3 y con la RFC3280 y la segunda que sera para que nuestro certificado pueda aplicarse a un servidor que en este case sera el web (apache2).
Ahora si podemos crear nuestro certificado con las peticiones, llaves y archivos que hemos creado hasta el momento.

root@quicksilver# openssl x509 -CA pcert.pem -CAkey pkey.pem -req -in petic-cert.pem -days 3650 -extfile conf1.txt -sha1 -CAcreateserial -out certificado.pem

El certificado será de tipo X509 cuya CA está definida en el archivo pcert.pem y la clave privada de este se encuentra en pkey.pem, las caracteristicas o especificaciones del certificado ya se encuentran establecidas en el archivo de peticion (petic-cert.pem) y tendra una validez de 10 años (-days 3650) y como la configuración no la hicimos en openssl.cnf sino en el archivo de texto que hemos creado como conf1.txt lo hemos especificado con el comando –extfile conf1.txt luego utilizamos un algoritmo de encripcion sha1 (-sha1) también creamos un serial para identificarlo con el comando –CAcreateserial y por ultimo decimos que nos genere el certificado (certificado.pem) con el comando de salida –out certificado.pem.

Para finalizar nos pedirá el password de la entidad certificadora (CA) que lo esta realizando y listo, tenemos nuestro certificado hecho en casa y a fuego lento ;)

Ahora que hemos creado nuestro certificado nos resta añadirlo a nuestro servidor web para ello necesitaremos dos de nuestros archivos creados los cuales son: priv-cert.pem y certificado.pem los cuales por organización los podemos agregar a la carpeta ssl en /etc/apache2/ssl y si no existe lo podemos crear sino queremos no importa los podemos dejar en donde se han creado inicialmente en mi caso los deje en la primera carpeta donde se crearon en un principio.

Configuracion de Apache2 para SSL.

Hay un archivo en /etc/apache2/ llamado ports.conf allí podemos configurar los puertos de escucha del apache2 y como sabemos (o sino sabemos para que aprendamos J ) que el puerto seguro del servidor web es el 443 y debemos agregarlo al apache2 para que también pueda escuchar por este puerto:
Hay varias situaciones que se pueden presentar:

- La primera: esta es la que sucedió en mi caso y es que como yo trabaje en Ubuntu 8.10 después de haber hecho todo lo anterior ya me aparece el puerto 443 en escucha de la siguiente forma:

<IfModule mod_ssl.c>
         Listen 443
</IfModule>

Lo cual quiere decir que si el modulo ssl de apache esta activado que le permita escuchar por el puerto 443. Y por supuesto también debería estar Listen 80 que es por donde escucha las conexiones normales.

- La segunda: En algunas ocasiones solo aparece

Listen 80

y debemos agregar la siguiente línea

Listen 443 

y listo ya tenemos escuchando apache2 por los puerto 80 y 443.

Ahora tenemos que habilitarle el modulo a apache2 para que soporte ssl

root@quicksilver# a2enmod ssl

También debemos configurar un host virtual para poder acceder a nuestro sitio mediante https y lo podemos hacer en el archivo /etc/apache2/sites-available/default yo voy a mostrar como quedo mi archivo para que se puedan guiar, ya acomodaran el archivo a sus necesidades.

NameVirtualHost *:443
<VirtualHost *:443>
            ServerAdmin zero@localhost
            ServerName www.zero.org
            DocumentRoot /var/www/

            <Directory />
                        Options FollowSymLinks
                        AllowOverride None
            </Directory>

            <Directory /var/www/>
                        Options Indexes FollowSymLinks MultiViews
                        AllowOverride None
                        Order allow,deny
                        Allow from all
            </Directory>

            ScriptAlias  /cgi-bin/  /usr/lib/cgi-bin/

            <Directory “/usr/lib/cgi-bin/”>
                        AllowOverride None
                        Options +ExecCGI –Multiviews +SymLinksIfOwnerMath
                        Order allow,deny
                        Allow from all
            </Directory>

                        ErrorLog /var/log/apache2/error.log
                        # Possible values include: debug, info, notice, warn, error, crit,
                        # alert, emerg.
                        LogLevel warn
                        CustomLog /var/log/apache2/access.log combined
Alias    /doc/  “/usr/share/doc/”

            <Directory “/usr/share/doc/”>
                        Options Indexes MultiViews FollowSymLinks
                        AllowOverride None
                        Order deny,allow
                        Deny from all
                        Allow from 127.0.0.0/255.0.0.0 ::1/128
            </Directory>

                   #Lineas para el servidor
                   SSLEngine on
                   SSLCertificateFile /home/…/certificado.pem
                   SSLCertificateKeyFile /home/…/priv-cert
</VirtualHost>

SSLPassPhraseDialog exec:/etc/apache2/ssl-frase

Nota: Algo muy importante es la linea donde dice NameVirtualHost *:443 la cual debe ir, pero no necesariamente aquí; en mi Ubuntu 8.10 se encuantra en la ruta /etc/apache2/ports.conf pero si no lo encontramos aquí si debe ir en donde se configura el host virtual osea en /etc/apache2/sites-avilable/default

En DocumentRoot pondremos la ruta en donde se encuentra almacenada nuestra página en mi caso /var/www/ y con las líneas de configuración SSLEngine on, SSLCertificateFile, SSLCertificateKeyFile,  corresponden a que usaremos certificados, el certificado como tal y a la clave privada, respectivamente; cuidado que en estos dos ultimos debemos especificar la ruta exacta donde se encuentran.

Aunque no tuve que hacerlo, en algunos casos se recomienda crear un vinculo simbólico del archivo default, primero ingresamos en la ruta /etc/apache2/sites-enabled y luego creamos el vinculo de la siguiente forma; ln -s ../sites-availables/default default-000

Lo que hicimos fue crear un vinculo simbólico del archivo default que se encuentra en sites-availables a default-000 que se encuentra en sites-enabled, algo muy importante que debemos tener en cuenta es que estamos parados en la ruta etc/apache2/sites-enabled

Bueno para este caso solo restaría un paso y es reiniciar el servicio de apache2, pero vamos a realizar un pequeño truquito, lo que pasa es que cuando se reinicia apache2 o se apaga el servidor y vuelve y se prende, el servicio de apache se quedara parado hasta que ingresemos la frase privada entonces lo que haremos es crear  un pequeño archivo que haga esto automáticamente cada que se reinicie y no evite estar copiando la frase.

La verdad lo podemos almacenar y llamar en donde y como queramos, en mi caso será asi:

root@quicksilver# nano /etc/apache2/ssl-frase 

Luego agregamos dos pequeñas lineas :)

#!/bin/sh
echo mi_frase

Damos permisos de ejecución…

root@quicksilver# chmod 700 /etc/apache2/ssl-frase

y por ultimo agregamos una directiva mas en el host virtual, bueno o por lo menos en el mismo archivo pero debemos tener en cuenta que lo debemos poner por fuera de la configuración del host virtual osea que la podemos poner al final de todas las líneas.

SSLPassPhraseDialog exec:/etc/apache2/ssl-frase

Lo que hacemos con esta línea es que invoque el fichero bash ssl-frase cuando arranque apache y le “ejecute la clave” sin necesidad de que tengamos que hacerlo nosotros.

Nota: En el ejemplo del host virtual que puse unos pasos antes agregue esta línea, para mostrar cómo debería ir.

Y LISTO!!!!!   Porfin terminamos nuestro servidor apache2 con soporte ssl :)


Imprimir

jueves, 24 de junio de 2010

Actualización del DNS por medio del DHCP (bind - dhcp3-server) Debian

1 comentarios
Solo me centrare en la configuración de actualización así que hablare muy por encima de la configuración normal de estos servicios. 

Primero instalaremos los servicios con los siguientes comandos:
 
QuickSilver:/# apt-get install bind9
QuickSilver:/# apt-get install dhcp3-server
Con esto instalariamos los paquetes de servicios de DNS y DHCP respectivamente. 

En primer lugar mostraremos la configuración del dhcp y para ello indicaremos en donde se encuentra el archivo de configuración principal de este servicio. 

QuickSilver:/# cd /etc/dhcp3
QuickSilver:/etc/dhcp3# 
 
El servidor dhcp puede entregar un nombre a cada cliente y luego actualizar la zona dns del dominio con la información del cliente al que entregó determinada dirección IP. Para hacerlo usamos una llave manejada por rndc que va a permitir que dhcpd escriba y actualice los archivos de zonas de dominio 

Luego procedemos a editar el archivo de configuración:

QuickSilver:/etc/dhcp3# nano dhcpd.conf
 
Tendremos agragar unas lineas que deberian quedar mas o menos asi: 

En esta parte tenemos una configuración global 

 # option definitions common to all supported networks...
 
 ddns-updates on;
 ddns-update-style interim;
 ddns-domainname "victor.org";
 ddns-rev-domainname "in-addr.arpa";
 
 ignore client-updates;
 send fqdn.fqdn "victor.org";
 send fqdn.encoded on;
 send fqdn.server-update on;
 
 include "/etc/bind/rndc.key";
 zone victor.org. {
 primary 192.168.86.1;
 key rndc-key;
 }
 
 zone 86.168.192.in-addr.arpa. {
 primary 192.168.86.1;
 key rndc-key;
 }
 
 option domain-name "victor.org";
 option domain-name-servers 192.168.86.1;
 option ip-forwarding off;
 option netbios-name-servers 192.168.86.1;
 
 default-lease-time 600;
 max-lease-time 7200;

Y en esta parte tenemos una configuración local


subnet 192.168.86.0 netmask 255.255.255.0{
range 192.168.86.10 192.168.86.20;
option broadcast-address 192.168.86.255;
option domain-name "victor.org";
option domain-name-servers 192.168.86.1;
option routers 192.168.86.1;

zone 86.168.192.in-addr.arpa. {
primary 192.168.86.1;
key "rndc-key";
}

zone victor.org. {
primary 192.168.86.1;
key "rndc-key";
}
}

Bueno, entrare a definir algunos aspectos. 

ddns-updates on;
Activa la actualización DNS con los valores asignados mediante DHCP. 

ddns-update-style interim;
Define el método de actualización automática de las DNS. Los valores pueden ser ad-hoc, interim y none. 

ddns-domainname "victor.org";
Mediante el uso de este parámetro, se añadirá victor.org el nombre de la máquina cliente, para formar un nombre de dominio totalmente cualificado 

ddns-rev-domainname "in-addr.arpa";
Indica que se actualizara la inversa 

ignore client-updates;
Permite que las asignaciones se actualicen cuando el servidor así lo requiera
recordemos (fqdn), nombre de dominio totalmente cualificado
send fqdn.fqdn "victor.org";
send fqdn.encoded on;
send fqdn.server-update on;

aqui estamos incluyendo el archivo de la llave que es /etc/bind/ y la llave es rndc.key
 include "/etc/bind/rndc.key";

En esta parte estamos indicando las zonas tanto directa como inversa que se utilizara esa llave para la actualizacion. 

 zone victor.org. {
 primary 192.168.86.1;
 key rndc-key;
 }
 
 zone 86.168.192.in-addr.arpa. {
 primary 192.168.86.1;
 key rndc-key;
}

Además de la configuración global, también incluí en la local la asignación de la llave 

 subnet 192.168.86.0 netmask 255.255.255.0{
        range 192.168.86.10 192.168.86.20;
        option broadcast-address 192.168.86.255;
        option domain-name "victor.org";
        option domain-name-servers 192.168.86.1;
        option routers 192.168.86.1;
        
        zone 86.168.192.in-addr.arpa. {
        primary 192.168.86.1;
        key "rndc-key";
        }
 
        zone victor.org. {
        primary 192.168.86.1;
       key "rndc-key";
       }
}

Bueno, hasta aquí al configuración del dhcpd.conf ahora seguimos con el bind9 

QuickSilver:/# cd /etc/bind
 
En esta carpeta encontramos varios archivos solo usare 3 que son db.victor que va ser mi zona directa, db.192 que será mi inversa y el archivo de configuración named.conf
 
QuickSilver:/etc/bind# nano db.victor

Al editar este archivo de la zona directa me quedo algo como asi:

$ORIGIN .
 $TTL 604800   ; 1 week
 victor.org            IN SOA  ns.victor.org. root.victor.org. (
                              127        ; serial
                               604800     ; refresh (1 week)
                               86400      ; retry (1 day)
                               2419200    ; expire (4 weeks)
                               604800     ; minimum (1 week)
                               )
                       NS      ns.victor.org.
                       A       192.168.86.1
 $ORIGIN victor.org.
 $TTL 300      ; 5 minutes
 lucasportatil         A       192.168.86.13
                       TXT     "31c4b3412311d57b63db2d4af1cac4cf0f"
 sena-d089441cc2               A       192.168.86.15
                       TXT     "31a3b2bd9b529143900f214c111521b6b9"
 $TTL 604800   ; 1 week
www                          A         192.168.86.1


Y mi zona inversa:

 QuickSilver:/etc/bind# nano db.192

 $ORIGIN .
 $TTL 604800   ; 1 week
 86.168.192.in-addr.arpa       IN SOA  ns.victor.org. root.victor.org.(
                               123        ; serial
                               604800     ; refresh (1 week)
                               86400      ; retry (1 day)
                               2419200    ; expire (4 weeks)
                               604800     ; minimum (1 week)
                               )
                       NS      ns.victor.org.
 $ORIGIN 86.168.192.in-addr.arpa.
 1                     PTR     www
                       PTR     victor.org
 $TTL 300      ; 5 minutes
 15                    PTR     sena-d089441cc2.victor.org.
Hay unos parámetros que se pueden ver distintos como por ejemplo 

 $ORIGIN victor.org.
 $TTL 300      ; 5 minutes
 lucasportatil         A       192.168.86.13
                       TXT     "31c4b3412311d57b63db2d4af1cac4cf0f"

Pero es porque asi es como actualiza la zona el dhcp….

Por ultimo veremos como se debe configurar el named.conf
 
QuickSilver:/etc/bind# nano named.conf
 
Despues de abrir el archivo de configuración agregamos nuestro dominio, tanto la zona directa como la inversa.Algo muy importante es este codigo, debemos asegurarnos de que este en el archivo.
 include "/etc/bind/rndc.key";
 
 
 
 zone "victor.org" {
       type master;
        notify yes;
       file "/etc/bind/db.victor";
        allow-update { key "rndc-key"; };
 };
 
 zone "86.168.192.in-addr.arpa" {
       type master;
        notify yes;
       file "/etc/bind/db.192";
        allow-update { key "rndc-key"; };
 };

Lo que hacemos aquí es solo definir el dominio y asignarle las zonas mediante

file "/etc/bind/db.victor";
file "/etc/bind/db.192";
 
Y permitirle las actualizaciones por medio de la llave osea:

allow-update { key "rndc-key"; }; 

Por ultimo tenemos que hacer algo muy importante; para poder que el dhcp actualice las zonas del bind9 tenemos que darle un permiso a la carpeta bind de la siguiente forma: 

 QuickSilver:/# chmod 2775 /etc/bind
 
Ya con esto nos deberia funcionar nuestra actualizacion dinamica.


Imprimir
 

Zero@configurE Copyright © 2008 D'Black by Ipiet's Blogger Template