Namedmanager^1 is a graphical interface for managing your DNS records. It has been thoughtfully designed to facilitate administration, such as automatically adding PTR records when an A record is created, with a simple checkbox.
The interface can also manage multiple DNS servers and centralize their logs.
server{listen443;sslon;ssl_certificate/etc/nginx/ssl/server.crt;ssl_certificate_key/etc/nginx/ssl/server.key;ssl_session_timeout5m;access_log/var/log/nginx/dns.access.log;server_namedns.deimos.fr;root/usr/share/nginx/www;indexindex.php;location/{try_files$uri$uri//index.html;}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location~\.php${fastcgi_passunix:/var/run/php5-fpm.sock;fastcgi_indexindex.php;includefastcgi_params;}}
We'll now take care of the web part. Personally, I have a dedicated machine to manage my DNS on which I don't want virtualhosts. So I put everything at the root of my server, but you don't have to do like me either. Then we'll create the configuration file and put it in /etc:
<?php/* Sample Configuration File Copy this file to config-settings.php This file should be read-only to the user whom the bind configuration scripts are running as.*//* API Configuration*/$config["api_url"]="https://dns.deimos.fr";// Application Install Location$config["api_server_name"]="dns.deimos.fr";// Name of the DNS server (important: part of the authentication process)$config["api_auth_key"]="YmI3ZGRlYWY3NTk4ZDAzMGJmYWE1NDdh";// API authentication key/* Log file to find messages from Named. Note that: * File should be in syslog format * Named Manager uses tail -f to read it, this can break with logrotate - make sure that either "copytruncate" mode is used, or tail processes are killed*/$config["log_file"]="/var/log/syslog";/* Lock File Used to prevent clashes when multiple instances are accidently run.*/$config["lock_file"]="/var/lock/namedmanager_lock";/* Bind Configuration Files Theses files define what files that NamedManager will write to. By design, NamedManager does not write directly into the master named configuration file, but instead into a seporate file that gets included - which allows custom configuration and zones to be easily added without worries of them being over written by NamedManager.*/$config["bind"]["version"]="9";// version of bind (currently only 9 is supported, although others may work)$config["bind"]["reload"]="/usr/sbin/rndc reload";// command to reload bind config & zonefiles$config["bind"]["config"]="/etc/bind/named.namedmanager.conf";// configuration file to write bind config too$config["bind"]["zonefiledir"]="/etc/bind/zones";// directory to write zonefiles too// note: if using chroot bind, will often be /var/named/chroot/var/named/$config["bind"]["verify_zone"]="/usr/sbin/named-checkzone";// Used to verify each generated zonefile as OK$config["bind"]["verify_config"]="/usr/sbin/named-checkconf";// Used to verify generated NamedManager configuration// force debugging on for all users + scripts// (note: debugging can be enabled on a per-user basis by an admin via the web interface)//$_SESSION["user"]["debug"] = "on";?>
Web Interface
Now, you can access your server via https (mine is: https://dns.deimos.fr) with the following credentials:
Login: setup
Password: setup123
Creating a User
Go to "User Management", create a new account and give it admin privileges, test it and delete the setup account or change its password. You should then see only your user:
API Key
Go to "Configuration" in the interface to set this key:
Set your contact email address
Enter the previously generated key
Save the changes
Finalization and Synchronization
It's now time to add a DNS server from the graphical interface! Do it once by adding the API key etc...
Check your configuration file generated by NamedManager. At the time of writing, I've submitted a patch and am waiting for integration, I found myself with this error: