Sunday, 5 October 2014

shell script that will make a caching only DNS without forwarder or zone

shell script that will make a caching only DNS without forwarder or zone on Red Hat , Centos and fedora.

writer: Anuj Borah
Email: anujborah1@gmail.com



#!/bin/bash
clear
echo "################This script will Make a DNS server without any Forwarder , No local zone . It will be only Caching_only_DNS_without_zone_and_forwarder :)#########################"
if [ $UID -eq 0 ]
then
rpm -q  bind > /tmp/1 2>&1
if [ $? -eq 0 ]
then
echo "Enter the ip of your eth0 , it will be the ip of your DNS"
read q
rm -f /etc/resolv.conf 2>&1
rm -f /etc/named.conf 2>&1
echo "nameserver $q" >> /etc/resolv.conf
echo '//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { any; };

    /*
     - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     - If you are building a RECURSIVE (caching) DNS server, you need to enable
       recursion.
     - If your recursive DNS server has a public IP address, you MUST enable access
       control to limit queries to your legitimate users. Failing to do so will
       cause your server to become part of large scale DNS amplification
       attacks. Implementing BCP38 within your network would greatly
       reduce such attack surface
    */
    recursion yes;
        dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";' >> /etc/named.conf
sleep 2
service named start 2>&1
else
echo "bind not installed on your system , type "yum install bind" to install it."
fi
else
echo "This script can be run by root only . login as root and do $0"
fi
rm -f  /tmp/1 > /dev/null

No comments:

Post a Comment

Popular Posts