Install DNS Server with fmDNS Graphical Interface on CentOS/RHEL 6.x/7.x


Manage one or more ISC BIND DNS servers without having to login to each server to update zone or configuration files. Just make your changes and build the configs all from the web interface. With fmDNS, you can manage:

  • Zone files (A, AAAA, CNAME, PTR, TXT, SRV, NS records, and many more!)
  • named options
  • Views
  • ACLs
  • Keys
  • Logging channels and categories
  • Controls
  • DNSSEC keys and zones

Settings can be configured globally for all servers with individual server overrides for when your servers are all configured the same and when they are all unique. You can also import existing named-compatible zone files for faster data entry.

Server configuration and zone files can be updated via cron, http(s), or ssh.

DNS Server Details:

Hostname         :
IP Address       :

1. Hostname Configuration

Edit /etc/sysconfig/network file to configure hostname:

vim /etc/sysconfig/network

and set such as:


For RHEL/CentOS-7 Edit /etc/hostname :

vim /etc/hostname

and set such as:

Edit the /etc/hosts file:

vim /etc/hosts

and set such as:       localhost.localdomain   localhost           dns

Check hostname with the following command and see the output:

[root@dns ~]# hostname

[root@dns ~]# hostname -f

[root@dns ~]# hostname -d

2. Software Installation BIND name server

yum install bind bind-utils bind-devel bind-libs -y
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base:
 * epel:
 * extras:
 * remi-php55:
 * remi-safe:
 * updates:
Setting up Install Process
Resolving Dependencies
Running transaction check
 Package bind.x86_64 32:9.8.2-0.47.rc1.el6 will be installed
 Package bind-devel.x86_64 32:9.8.2-0.47.rc1.el6 will be installed
 Package bind-libs.x86_64 32:9.8.2-0.47.rc1.el6 will be installed
 Package bind-utils.x86_64 32:9.8.2-0.47.rc1.el6 will be installed
 Finished Dependency Resolution

Dependencies Resolved

 Package           Arch           Version                      Repository       Size
 bind              x86_64         32:9.8.2-0.47.rc1.el6        base             4.0 M
 bind-devel        x86_64         32:9.8.2-0.47.rc1.el6        base             383 k
 bind-libs         x86_64         32:9.8.2-0.47.rc1.el6        base             889 k
 bind-utils        x86_64         32:9.8.2-0.47.rc1.el6        base             187 k

Transaction Summary
Install       4 Package(s)

Total download size: 5.4 M
Installed size: 11 M

Downloading Packages:
(1/4): bind-9.8.2-0.47.rc1.el6.x86_64.rpm                         | 4.0 MB     00:09     
(2/4): bind-devel-9.8.2-0.47.rc1.el6.x86_64.rpm                   | 383 kB     00:00     
(3/4): bind-libs-9.8.2-0.47.rc1.el6.x86_64.rpm                    | 889 kB     00:02     
(4/4): bind-utils-9.8.2-0.47.rc1.el6.x86_64.rpm                   | 187 kB     00:00     
Total                                                    364 kB/s | 5.4 MB     00:15     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 32:bind-libs-9.8.2-0.47.rc1.el6.x86_64                            1/4 
  Installing : 32:bind-devel-9.8.2-0.47.rc1.el6.x86_64                           2/4 
  Installing : 32:bind-9.8.2-0.47.rc1.el6.x86_64                                 3/4 
  Installing : 32:bind-utils-9.8.2-0.47.rc1.el6.x86_64                           4/4 
  Verifying  : 32:bind-libs-9.8.2-0.47.rc1.el6.x86_64                            1/4 
  Verifying  : 32:bind-devel-9.8.2-0.47.rc1.el6.x86_64                           2/4 
  Verifying  : 32:bind-9.8.2-0.47.rc1.el6.x86_64                                 3/4 
  Verifying  : 32:bind-utils-9.8.2-0.47.rc1.el6.x86_64                           4/4 

  bind.x86_64 32:9.8.2-0.47.rc1.el6           bind-devel.x86_64 32:9.8.2-0.47.rc1.el6          
  bind-libs.x86_64 32:9.8.2-0.47.rc1.el6      bind-utils.x86_64 32:9.8.2-0.47.rc1.el6          


3. Creating database and user

[root@dns ~]# mysql -u root -p
Enter password: 

CREATE USER 'dnsadmin'@'localhost' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON dns.* TO 'dnsadmin'@'localhost';
flush privileges;

4. Download packages:

[root@dns ~]# cd /opt 
[root@dns opt]# wget 
[root@dns opt]# tar -zxvf facilemanager-complete-2.2.1.tar.gz 
[root@dns opt]# cp -r /opt/facileManager/server/ /var/www/html/dnsadmin

5. Change ownership and permission:

[root@dns opt]# chown apache -R /var/www/html/dnsadmin
[root@dns opt]# chmod 755 -R /var/www/html/dnsadmin

6. Configure the web server:

[root@dns ~]# vim /etc/httpd/conf.d/dnsadmin.conf
Alias /dnsadmin /var/www/html/dnsadmin

<Directory /var/www/html/dnsadmin/>

 Options FollowSymLinks
 AllowOverride All

# For Apache = 2.3:
 Order allow,deny
 allow from all

 # For Apache = 2.4
 # Require all granted 

And restart web services

service httpd restart

Now open the browser give your URL (HTTP://<your address>/dnsadmin/) and follow the next steps:

Step-1: Give database credential and press submit:


Step-2: Press continue to create database schema:

Step-4: Press continue

Step-5: Create admin user and give credential for admin user and press submit

Step-6: Now it’s done! Press next to login  panel

Step-7: Activate fmDNS module in module section:

Step-8:  Now load fmDNS module from right-top corner option menu:

Step-9: It’s done! fmDNS loaded successfully.  Now install the client and configure your domain.

7. Clients Installation

At first copy /opt/facileManager/client/facileManager to /usr/local/ and run php /usr/local/facileManager/fmDNS/client.php install

[root@dns ~]# cp -r /opt/facileManager/client/facileManager /usr/local/
[root@dns ~]# php /usr/local/facileManager/fmDNS/client.php install 
Welcome to the fmDNS installer.

Please answer the following questions and the necessary configurations will be
performed for you.

Please enter the location of the facileManager interface:
 Examples include:

Please enter the location of the facileManager interface:

Now give your web-UI access URL:

Please enter the location of the facileManager interface:
  --> Testing via https...failed
  --> Testing via http...ok
  --> Checking account details...Success

Just press enter or give a serial number for zone update:

Please enter the serial number for (or leave blank to create new):

  --> Generating new serial number: 562003234
  --> Adding to the database...Success
  --> Running version tests...ok

  --> Tests complete.  Continuing installation.

Select the update method how server gets the update from web UI (available methods are cron, ssh, or http(s) [c|s|h]) give “c” for cron its work fine for me.

Will get updates via cron, ssh, or http(s) [c|s|h]? c
  --> The crontab has been created.

Configuration file has been saved.

Installation is complete. Please login to the UI to ensure the server settings
are correct.

It’s seen fine. Let’s Add server in UI:

Click Enable button to enable server:

Then click Build configuration to initialize  the server:

It’s done. Your UI interface ready communicate with your server and configure your domain in web UI and automatically update in your server.

!Note: Any changed in configuration file in your server will be modified in every 5 minute from the configuration of database. So for every update and modification done in web interface not in configuration files stored in server.

Zone Creation:

At first, we need to create SOA template that would help you instead of put SOA information every time for every zone.

Create the zone for your domain:


Check configuration:

Edit /etc/resolve.conf file and set your server address in Linux client machine:


Now check with different tools. Most famous DNS check tools are nslookup and dig. nslookup is preinstalled in windows and Linux.

[root@dns ~]# nslookup 

> set type=any
	origin =
	mail addr =
	serial = 2016061903
	refresh = 7200
	retry = 3600
	expire = 1209600
	minimum = 86400	nameserver =	mail exchanger = 10
Address:	name =

Check configuration with dig tools:

[root@dns ~]# dig +all

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> +all
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

; EDNS: version: 0, flags:; udp: 512
;                     IN      A

;; ANSWER SECTION:              14399   IN      A

;; Query time: 1015 msec
;; WHEN: Fri Jan 19 03:16:02 Bangladesh Standard Time 2016
;; MSG SIZE  rcvd: 54