Instalación de Power DNS

Saludos, hace un tiempo que dije que haría este manual y mejor tarde que nunca, no?

Primero quiero venderos la moto diciendo el por qué usar pdns. Como muchos otros, yo también he luchado con BIND (el servidor dns por excelencia) y al principio era un poco reacio a cambiar simplmente por “con lo que me ha costado controlar BIND ahora me cambio?”. Sí, todos los cambios son dolorosos (y más cuando te ha costado tanto aprender a usar algo) pero creedme si os digo que merece la pena al 100%.

El principal problema de uso que le veo a BIND es la extrema dificultad de configuración. Para un experto, con el paso de tiempo se familiariza con todos esos archivos de configuración que ademas de ser muchos son complejos. Cuántas horas gastadas porque faltaba un punto y coma y cosas así…. eso descontando las horas gastadas para aprender el formato de sus archivos de configuración.

Con pdns para añadir un dominio no tendras mas que logearte, pinchar en añadir dominio y ya está!!! Funcionando!! Cuando lo probé por primera vez no me lo creía, tenía que ser un sueño o algo así (acostumbrado a tardar unos minutos en añadir un dominio y recargando el servicio y… que pereza).

Necesitaremos mysql, apache y php para tenerlo todo a funcionando. Yo voy a suponer que ese software ya esta instalado, solo queda el servidor dns.

aptitude install pdns-server pdns-backend-mysql pdns-recursor

Creamos la base de datos, en este caso usare el usuario root

mysql -u root -p

create database pdns;

pdns sera el nombre de la base de datos, puedes poner cualquiera.
Ahora importamos el esquema de la base de base de datos.

mysql -u root -p pdns < /usr/share/doc/pdns-backend-mysql/mysql.sql

Ahora hay que configurar un poquillo a pdns, pero solo un poco.
Editamos el archivo /etc/powerdns/pdns.conf y buscamos una linea donde pone lauch= que esta comentada, entonces debajo insertamos

launch=gmysql

gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=root
gmysql-password=rootpass

Cambiado los datos por los tuyos (dbname,user y password practicamente).
Ahora buscamos una linea donde ponga “local-address” y ahí ponemos nuestra ip pública. Muy importante es editar en el mismo archivo “out-of-zone-additional-processing”, que aparece como comentado, ponerlo en “yes” y buscar la linea “recursor” y ponerle “127.0.0.1”. Esto es porque tenemos los dos servicios en la misma máquina, hay quienes dicen que es mejor ponerlos en máquinas diferentes pero yo de momento no voy muy sobrado de servidores jeje. En caso de que tengas hayas instalado pdns-recursor en otra máquina pues pones esa ip.
Entonces, después de lo de mysql la cosa queda así

local-address=ip_publica

out-of-zone-additional-processing=yes

recursor=127.0.0.1

Bien, powerdns ya está configurado así que lo reiniciamos.

/etc/init.d/pdns restart
/etc/init.d/pdns-recursor restart

Para comprobar que esta funcionando probamos a hacer un telnet:

telnet ipdelamaquina 53

y si conecta ya está funcionando!! Si por el contrario nos dice connection refused algo hemos hecho mal…
Ahora bajamos la aplicación web, pdnsadmin desde aquí

http://pdnsadmin.iguanadons.net/index.php?a=files&s=download&cid=3&fid=7

Lo descomprimimos en un directorio accesible por apache (normalmente /var/www) y listo. Lo ideal es crear un servidor virtual solo para eso pero eso ya según vea cada uno.
Ahora entramos desde el navegador y tiene que aparecer algo así:
dns1Esto es el instalador. Damos a continuar.
Nos dirá que demos permisos de escritura a packages y skins. Se los damos y tambien a settings.php
En el siguiente formulario, en master ip ponemos la ip pública. Los nameserver no hace falta ponerlos.
Después de esto ya está! La interfaz es muy intuitiva “Add domain”, “Add subdomain”….
Ahora puedes servir tanto dominios locales como de internet, si pones como servidor DNS a tu máquina será tu servidor quien controle ese dominio. Venga, a disfrutar!

You may also like...

2 Responses

  1. Alfredo dice:

    Estimado Max, estoy siguiendo tus pasos para instalar el pdns en un Centos…y cuando quiero importar esquema como lo indicas en mysql -u root -p pdns < /usr/share/doc/pdns-backend-mysql/mysql.sql no existe mysql.sql. Soy muy novado en tema de mysql, podrías ayudarme? Gracias y un saludo. Alfred

  2. Maxpowel dice:

    Buenas! Seguramente en Centos el esquema de la base de datos esté en otro directorio. Si puedes, consigue el paquete,lo desempaquetas y buscas un archivo llamado mysql.sql que será el que debes de usar.

    Desconozco cómo son los paquetes de centos, en debian utilizo Ark para desempaquetar deb

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *