lunes, 9 de marzo de 2009

Levantando un simple servidor DNS interno y externo con vistas.

Primero que todo "Hola", ya procedamos...
que necesitamos?
un servidor de nombre 2 tarjetas de red un cafe expreso sera suficiente, ya que este tema es bastante simple.

Instalando bind...
No explicare como hacerlo ya que es demasiado simple...
un ./configure --opciones && make && make install, y listo...

Antes de comenzar con la edición de los archivos debemos tener en cuenta o en su defecto saber que red interna tenemos...
En mi caso la "10.10.1.x".
Y como ip publica usaremos la 200.111.111.11.

Comenzamos la edición del corazon del dns...
en mi caso : "/etc/bind/named.conf"

Agregamos la siguiente vista interna:

view "internal" {
match-clients {10.10.1.0/24; 127.0.0.0/8;};
recursion yes;

zone "." {
type hint;
file "/etc/bind/db.root";
};

zone "dominio.cl" {
type master;
file "/etc/bind/internal.dominio.cl";
allow-transfer {any;};
allow-update {none;};
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
};

Ahora la vista "externa":

view "external" {
match-clients {any;};
recursion no;
zone "dominio.cl" {
type master;
notify yes;
file "/etc/bind/external.dominio.cl";
};
};

Cabe destacar que por motivos de seguridad tenemos denegado la recursion a las zonas externas.

Bien...
Ahora vamos por la configuración de los archivos en si.

primero internal.dominio.cl

$TTL 1D ; 1 day
@ IN SOA ns.dominio.cl. info.dominio.cl. (
2009022777 ; Serial number
1600 ;
300 ; 5 minutes retry
17280 ; 2 days expiry
43200) ; 12 hours minimum
IN NS ns.dominio.cl.
IN MX 10 mail.dominio.cl.
IN A 10.10.1.2
$ORIGIN dominio.cl.
ns A 10.10.1.2
mail A 10.10.1.1
www A 10.10.1.2

Aca le estamos diciendo que el servidor NS es la ip del servidor de nombre...
en mi caso: 10.10.1.2, el servidor de correo esta en la ip 10.10.1.1
y bueno...
el resto es deducible.

Ahora vamos con external.dominio.cl
$TTL 1D ; 1 day
@ IN SOA ns.dominio.cl. info.dominio.cl. (
2009022777 ; Serial number
1600 ;
300 ; 5 minutes retry
17280 ; 2 days expiry
43200
) ; 12 hours minimum

IN NS ns.dominio.cl.
IN MX 0 mail.dominio.cl.
IN A 200.111.111.111

$ORIGIN dominio.cl.
ns IN A 200.111.111.112
www IN A 200.111.111.112
mail IN A 200.111.111.111


Una vez tenemos todos nuestros registros agregado a los archivos, procedemos reiniciar el servicio...

Con el tipico "/etc/init.d/{bind,named} restart"
o si no con un simple "kill -9 $PID && named"

En fin...
eso es todo.

Saludos.

sábado, 7 de marzo de 2009

Fecha en php

El motivo de esta entrada, es que varias veces foreando, me he encontrado con la pregunta...
"Como pongo la fecha en español con la funcion date de php?".

Por ello, he creado un script simple, sin muchas lineas, las cuales les ayudaran para ello.

<?php
$meses=array(
"Janaury"=>"Enero",
"Febraury"=>"Febrero",
"March"=>"Marzo",
"April"=>"Abril",
"May"=>"Mayo",
"June"=>"Junio",
"July"=>"Julio",
"August"=>"Agosto",
"September"=>"Septiembre",
"October"=>"Octubre",
"November"=>"Noviembre",
"December"=>"Diciembre"
);

$semana=array(
"Monday"=>"Lunes",
"Tuesday"=>"Martes",
"Wednesday"=>"Miercoles",
"Thursday"=>"Jueves",
"Friday"=>"Viernes",
"Saturday"=>"Sabado",
"Sunday"=>"Domingo"
);
echo $meses[date("F")]." - ".$semana[date("l")];
?>

Al final aparece como usarlo...

por ejemplo si queremos imprimir en pantalla, hoy es sabado 7 de Marzo del 2009

solo tendriamos que escribir:

echo "hoy es ".$semana[date("l")]." de ".$meses[date("F")]." del ".date("Y");


Saludos.