VegaDNS es un administrador de DNS vía web que usa tinydns en el backend
Tabla de Contenidos
# bajo el paquete
cd ${HOME}/soft
VEGASVERSION=1.1.6
wget http://downloads.sourceforge.net/vegadns/vegadns-${VEGASVERSION}.tar.gz
# lo abro
tar xvzf vegadns-${VEGASVERSION}.tar.gz
Crear la base de datos
DB_NAME=vegadns
DB_USER=vegadns
DB_PASS=<ELEGIR_UNA_CLAVE_Y_PONERLA_AQUI>
# creo la base de datos
mysqladmin -u root create ${DB_NAME} -p
# permisos para entrar localmente
mysql -u root -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON ${DB_NAME}.* \
TO ${DB_USER}@localhost IDENTIFIED BY \"${DB_PASS}\"" mysql -p
# OPTATIVO: permisos para entrar remotamente
mysql -u root -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON ${DB_NAME}.* \
TO ${DB_USER}@\"*\" IDENTIFIED BY \"${DB_PASS}\"" mysql -p
== Crear directorios para la web e instalar el paquete ==
{{{
WWWHOME=<nombre_del_directorio_para_el_vhost>
PRIVDIR=/usr/local/vegadns
WWWUSER=www-data:www-data
# instalo el software
sudo mv ${HOME}/soft/vegadns-${VEGASVERSION} ${WWWHOME}
# directorios privados
for DIR in templates_c configs cache sessions ; do
sudo mkdir -pv ${PRIVDIR}/${DIR}
done
# cambio los permisos para proteger los directorios
sudo chown -R ${WWWUSER} ${PRIVDIR} ${WWWHOME}
sudo chmod -R 770 ${PRIVDIR} ${WWWHOME}
Configuración
- Crear el vhost en apache y configurar el acceso
- Editar el archivo de configuración
sudo vi ${WWWHOME}/src/config.php- Aquí hay que configurar lo siguiente:
- $private_dirs tiene que apuntar a ${PRIVDIR}
- $sql_host tiene que ser 'localhost'
- $sql_user tiene que ser $DB_USER
- $sql_pass tiene que ser $DB_PASS
- $sql_db tiene que ser $DB_NAME
- $vegadns_url tiene que tener el URL a través del cual se accede al host virtual
- $mysql_socket tiene que tener el socket de mysql '/var/run/mysqld/mysqld.sock'
- Editar el script de actualización (este script tiene que estar en todos los servidores DNS)
sudo vi ${WWWHOME}/update-data.sh- Aquí hay que configurar lo siguiente:
VEGADNS tiene que tener el URL completo (incluido el index.php del sitio
TINYDNSDIR tiene que apuntar a donde está el tinydns (según InstalaciónDeDjbDns está en /etc/djbdns/tinydns)
- Si el URL usa https con una CA no oficial, entonces la línea del wget:
if wget -q -O "$TINYDNSDIR/root/data.srv-$A" $VD?state=get_data ; then
- tiene que decir
if wget --no-check-certificate -q -O "$TINYDNSDIR/root/data.srv-$A" $VD?state=get_data ; then
Puesta en producción
sudo cp ${WWWHOME}/update-data.sh /usr/local/sbin
sudo -s
cat >> /etc/crontab <<EOF
1-59/7 * * * * root /usr/local/sbin/update-data.sh
EOF
exit
.