Instalacion de mydns en CENTOS (LINUX)

MyDNS es un servidor DNS que usa bases de datos MySQL para almacenar toda la informacion DNS en lugar de los archivos conf como Bind o djbdns.
La ventaja que ofrece MyDNS sobre otras configuraciones es que permite administrar y modificar los registros DNS a traves de un navegador web a traves de su interfaz de administración. MyDNS simplemente lee los registros de la base de datos, y no necesita ser reiniciado cuando los registros DNS son cambiados o las zonas son creadas, editadas o eliminadas, esta es problablemente su mayor ventaja.

Instalacion:

1.- Obtener la fuente:

wget http://mydns.bboy.net/download/mydns-1.1.0.tar.gz

2.- Usar tar para desempaquetar:

tar -zxvf mydns*.gz

3.- Compilacion del proyecto:

./configure

make

make install

make conf (crea el mydns.conf)

4.- Instalar MySQL:(por si no lo tiene aun)

apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin

5.- Crear la contraseña de root:

mysqladmin -u root password yourrootsqlpassword

6.- Crear la base de datos mydns y el usuario:

mysql -u root -p
Enter password:

CREATE DATABASE mydns;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFIED BY 'mydns_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost.localdomain' IDENTIFIED BY 'mydns_password';
FLUSH PRIVILEGES;
quit;

Ahora en un shell normal generamos las tablas para la base de datosmydns:

mydns --create-tables | mysql -u root -p mydns
Enter password:

7.- Lo siguente que haremos sera añadir dos columnas a la tabla soa de la base de datos de mydns:

mysql -u root -p
Enter password:
ALTER TABLE mydns.soa ADD COLUMN active ENUM('Y','N') NOT NULL;
ALTER TABLE mydns.soa ADD INDEX (active);
ALTER TABLE mydns.soa ADD COLUMN xfer CHAR(255) NOT NULL;
quit;

8.- Editamos el archivo /etc/mydns.conf para que quede asi:

##
## /etc/mydns.conf
## Fri Oct 21 16:36:32 2005
## For more information, see mydns.conf(5).
##
# DATABASE INFORMATION
db-host = localhost # SQL server hostname
db-user = root # SQL server username
db-password = mydns_password # SQL server password
database = mydns # MyDNS database name
# GENERAL OPTIONS
user = nobody # Run with the permissions of this user
group = nogroup # Run with the permissions of this group
listen = * # Listen on these addresses ('*' for all)
# CACHE OPTIONS
zone-cache-size = 1024 # Maximum number of elements stored in the zone cache
zone-cache-expire = 60 # Number of seconds after which cached zones expires
reply-cache-size = 1024 # Maximum number of elements stored in the reply cache
reply-cache-expire = 30 # Number of seconds after which cached replies expire
# ESOTERICA
log = LOG_DAEMON # Facility to use for program output (LOG_*/stdout/stderr)
pidfile = /var/run/mydns.pid # Path to PID file
timeout = 120 # Number of seconds after which queries time out
multicpu = 1 # Number of CPUs installed on your system
allow-axfr = no # Should AXFR be enabled?
allow-tcp = yes # Should TCP be enabled?
ignore-minimum = no # Ignore minimum TTL for zone?
soa-table = soa # Name of table containing SOA records
rr-table = rr # Name of table containing RR data

9.- Creamos en scrip de inicio de MyDNS /etc/init.d/mydns

#! /bin/sh
# mydns Start the MyDNS server
# Author: Falko Timme .
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mydns
DAEMON=/usr/local/sbin/$NAME
DESC=”DNS server”
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
case “$1″ in
start)
echo -n “Starting $DESC: $NAME”
$DAEMON –background
echo “.”
;;
stop)
echo “Stopping $DESC: $NAME.”
kill -9 `pidof $NAME` &> /dev/null
;;
restart)
echo “Restarting $DESC: $NAME.”
$0 stop && sleep 1
$0 start
;;
*)
echo “Usage: $SCRIPTNAME {start|stop|restart}” >&2
exit 1
;;
esac
exit 0


10.- Lo siguiente será hacer ejecutable el script e iniciar MyDNS:

chmod 755 /etc/init.d/mydns
/etc/init.d/mydns start

Si quieres que MyDNS se inicie automaticamente durante el inicio del sistema, es necesario crear los enlaces de inicio de sistema (system bootup links). En Debian, se hace asi:

update-rc.d mydns defaults 21 22

En Fedora o RedHat:

chkconfig --levels 235 mydns on

11.- Arrancar y parar sin el script mydns

Arrancar

/usr/local/sbin/mydns -b

Parar

killall mydns

12.- La hora de la verdad: la administración del servidor

Hay varias maneras, una es via web (básicamente usando phpmyadmin para manejar mysql via web), otra forma es usando un script en perl que viene en la carpeta contrib. Esta carpeta esta en la carpeta original del proyecto.

Se debe entrar al script y hacerle el cambio de ip 127.0.0.1 por la nuestra.

chmod 755 create_domain.pl


Para probar si ya existe un dominio en la base de datos:
./create_domain.pl --domain=mydomain.net --ip=123.45.67.89 –test


Para crear un dominio:
./create_domain.pl --domain=mydomain.net --ip=123.45.67.89 --create

Podria ser necesario hacer: perl create_domain.pl

Estan los comandos:

mydnsimport y mydnsexport

Ya hablaremos de ellos mas adelante.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: