What is Nictool ?
NicTool is a free DNS management suite that takes all the headaches out of managing DNS. It includes an attractive web interface for users, admins, and clients to access and update their DNS zone data as well as a rich API for provisioning systems to interact with. All zone data is stored in MySQL and is extracted by export scripts to the DNS server of choice (tinydns, BIND, PowerDNS).
Updates are all parsed for validity before being accepted. All changes are logged and it’s easy to determine who made any given change, and when. Permissions are extremely granular. You can delegate permission for a zone to another user, or group of users. You can even delegate only specific zone records to other users or groups. You can grant others permission to publish to your DNS servers, but not the ability to alter them.
NicTool is the holy grail of DNS management packages. It works great for managing one zone, or a million of them.
System Requirement
– apache
– mod_perl
– perl modules
– DNS (TinyDNS or BIND)
Installation
There will be 2 part of NIctool that we need to install NictoolServer and NictoolClient, please go to http://nictool.com/download/ , register and download the free option.
Let’s start install the perl module through CPAN
# perl -MCPAN -e shell cpan> install LWP cpan> install RPC::XML cpan> install SOAP::Lite cpan> install DBI cpan> install DBD::mysql cpan> install Apache2::SOAP Download the Nictool sources on http://www.nictool.com/download/ , register and download it
1. unzip the package
# tar -zxvf NicTool-2.07.tgz
there will be 2 packet the nictool client and nictoolserver
– NicToolServer-2.07.tar.gz
– NicToolClient-2.07.tar.gz
Install the NicToolClient
2. unzip the NictoolClient package
# tar -zxvf NicToolClient-2.07.tar.gz
3. go to NicToolClient-2.07 folder and install the perl modules
# cd NicToolClient-2.0
# perl Makefile.PL
Checking if your kit is complete…
Looks good
Writing Makefile for NicToolClient
common error :
#perl Makefile.PL
WARNING: LICENSE is not a known parameter.
Checking if your kit is complete…
Looks good
Warning: prerequisite RPC::XML 1 not found.
Warning: prerequisite SOAP::Lite 0 not found.
‘LICENSE’ is not a known MakeMaker parameter name.
Writing Makefile for NicToolClient
the error means that we need to instal perl module RPC::XML and SOAP::Lite
# perl -MCPAN -e shell cpan> install RPC::XML cpan> install SOAP::Lite
Then after there is no error you can start make install
# make install clean
4 .Move the distribution to your own httpd virtual domain ( in my case it is on /home/lineabsolute.com/public_html/ ) and rename it to NicToolClient
# mv NicToolClient-2.07 /home/line.com/public_html/
# cd /home/lineabsolute.com/public_html/
# mv NicToolClient-2.07 NicToolClient
5. Configure Apache httpd.conf ( /etc/httpd/conf/httpd.conf )
# vi /etc/httpd/conf/httpd.conf
<VirtualHost 101.99.111.11:80>
# force a https connection
ServerName test.com
Redirect permanent / https://test.com/
</VirtualHost>
<VirtualHost 101.99.111.11:443>
ServerName test.com
Alias /images/ "/home/line.com/public_html/NicToolClient/htdocs/images/"
DocumentRoot /home/line.com/public_html/NicToolClient/htdocs
DirectoryIndex index.cgi
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca-bundle.crt
SSLCertificateKeyFile /etc/postfix/ssl/smtpd.key
<Files "*.cgi">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Files>
<Directory "/home/line.com/public_html/NicToolClient/htdocs">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
6. Configure nictoolclient.conf
#vi /home/line.com/public_html/NicToolClient/lib/nictoolclient.conf
changes $NicToolClient::app_dir = into your httpd virtual directory path , in my case it is
BEGIN {
$NicToolClient::app_dir = ‘/home/line.com/public_html/NicToolClient’;
7. Restart the Apache
# service httpd restart
Install the NicToolServer
1.Unzip the NicToolServer package that we have already download
# tar zxvf NicToolServer-2.07.tar.gz
2. Install dependencies
NicTool requires that Apache and mod_perl be installed. There’s a brief which Apache discussion here.
cd NicToolServer-2.07 perl Makefile.PL make depsThe ‘make deps’ target will install the required perl modules via ports on FreeBSD/Darwin and via CPAN on everything else. If ports are unavailable, CPAN is used.
3.Install the perl modules:
#make install clean
4.Move the distribution to your own httpd virtual domain ( in my case it is on /home/line.com/public_html/ ) and rename it to NicToolServer
# mv NicToolServer-2.07 /home/line.com/public_html/
# cd /home/line.com/public_html/
# mv NicToolServer-2.07 NicToolClient
5.Configure Apache httpd.conf ( /etc/httpd/conf/httpd.conf ), add this below the nictoolclient httpd config
<IfDefine !MODPERL2>
PerlFreshRestart On
</IfDefine>
PerlTaintCheck Off
Listen 8082
PerlRequire /home/line.com/public_html/NicToolServer/nictoolserver.conf
PerlRequire /home/line.com/public_html/NicToolClient/lib/nictoolclient.conf
<VirtualHost 127.0.0.1:8082>
KeepAlive Off
<Location />
SetHandler perl-script
PerlResponseHandler NicToolServer
</Location>
<Location /soap>
SetHandler perl-script
PerlResponseHandler Apache2::SOAP
# /ATTENTION
PerlSetVar dispatch_to "/home/line.com/public_html/NicToolServer, NicToolServer::SOAP"
</Location>
</VirtualHost>
6. Create MySQL database and permissions.
#cd /home/line.com/public_html/NicToolServer/sql
#perl create_tables.pl
7.Configure nictoolserver.conf
– remove the comment of use Apache2::SOAP; line 21
– set the mysql username, dbname, password on line 49 -51
$NicToolServer::db =
$NicToolServer::db_user =
$NicToolServer::db_pass =
8.Restart Apache
#service httpd restart
Now you can access it using your root username and password that you created when you run perl create_tables.pl
Screen captures :
Login
First page after login
Create zone
Create Nameserver
Create new user