Coder Social home page Coder Social logo

dnsdusty's Introduction

Welcome to the DNSDusty program.

Setting up BIND for dynamic updates:

You'll need to set up BIND so that it accepts signed dynamic updates for your
zone. Here's an overview:

1) generate a key using tsig-keygen like this:

    % tsig-keygen DNSDusty > /etc/dnsdusty/dnsdusty.key

   this will create the key that will be used when signing zone update requests.

2) add this key to your named.conf file in a stanza like this:

   key "DNSDusty" {
       algorithm hmac-sha256;
       secret "rUnmCsAl8Q+fC0Td4Og5NrnyYyNARV+Hsy637/fNvAs=";
   };

3) For each zone that you want to manage with DNSDusty, add this keyname to
   both your 'allow-update' and 'allow-transfer' lists:

   zone "example.com" {
       type master;
       file "/etc/bind/db.example"
       allow-update { key DNSDusty; };
       allow-transfer { key DNSDusty; };
   }

4) reload named to make it see your new configuration.

Prerequisites:

DNSDusty requires the following non-standard perl modules:

   Net::DNS
   CGI::FormBuilder
   HTML::Template

Make sure these are installed prior to getting the software working.

Installing DNSDusty:

DNSDusty comes set up to be installed according to the Debian packaging
guidelines. The sources also come with an EPM listfile. If you have the EPM
program installed (see https://www.msweet.org/epm/), then you should be able to
package the software by running:

    % epm -v -f native dnsdusty

Once you generate the package, install it with your OS's installation tool.

You'll then need to modify the config file, which is by default:

/etc/dnsdusty/dnsdusty.conf.

Both the config file and the key file should only be writable by root, and only
readable by the user that your webserver runs as. Since it contains the key to
allow updates to your webserver, make sure that you secure it well, unless you
want the world to be able to update your server.

Setting up Apache:

DNSDusty doesn't have any authentication built in, so you'll need to secure it
at the webserver level. I use Apache2 for my webserver, and only allow access
to DNSDusty from the SSL-enabled section (this keeps passwords from being sent
in cleartext). I use the mod-auth-pam and mod-auth-sys-group modules to
authenticate users with system level authentication on my setup.

Here is the relevant stanza from an example apache config. This should be
inside a VirtualHost section for the SSL-enabled section of the site.

ScriptAlias /dnsdusty/cgi-bin/ /usr/lib/dnsdusty/cgi-bin/
<Directory "/usr/lib/dnsdusty/cgi-bin/">
    SSLOptions +StdEnvVars
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from 10.10.10.0
    Deny from All
    AuthPAM_Enabled on
    AuthGROUP_Enabled on
    AuthType Basic
    AuthName "DNSDusty"
    require group dnsadmins
</Directory>

The per-zone authorization depends on having a valid $REMOTE_USER environment
variable, so if you plan to use this feature, then HTTP Authentication is
required.

Problems, Questions and Patches:

If you have problems, questions, suggestions or patches, feel free to report
these issues or (preferably) create pull requests on GitHub.

Enjoy!

dnsdusty's People

Contributors

erik-rossen avatar jtlayton avatar rimas-kudelis avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.