GithubHelp home page GithubHelp logo

labbsr0x / bindman-dns-bind9 Goto Github PK

View Code? Open in Web Editor NEW
23.0 18.0 11.0 10.79 MB

This project defines a Bindman DNS Manager responsible for receiving DNS updates from clients and updating DNS Server rules with nsupdate commands

License: MIT License

Dockerfile 2.55% Go 97.45%
bind9 dns nameserver bindman hacktoberfest

bindman-dns-bind9's People

Contributors

eabili0 avatar fabiotavarespr avatar flaviostutz avatar werberson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bindman-dns-bind9's Issues

Service to list records returns string null when there's no records found

Service to list records returns 200 response status code and string null on response body when there are no records found.

curl -v http://localhost:7070/records
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 7070 (#0)
> GET /records HTTP/1.1
> Host: localhost:7070
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 19 Mar 2019 21:51:51 GMT
< Content-Length: 5
<
null

What the correct response body I must expect?

I can PR with the expected behavior.

Internal server error when trying to get an inexistent record

Response status code 500
Response body Not possible to get the DNS Record 'hello.test.com'

$ curl -v http://localhost:7070/records/hello.test.com/A
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 7070 (#0)
> GET /records/hello.test.com/A HTTP/1.1
> Host: localhost:7070
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 500 Internal Server Error
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Tue, 19 Mar 2019 21:57:26 GMT
< Content-Length: 52
<
Not possible to get the DNS Record 'hello.test.com'
* Connection #0 to host localhost left intact

Improve KEYFILE regex

The regex applied to the KEYFILE param restricts the usage of Bindman to other Bind9 setups in regards to the Key generation algorithm.

If one would generate a Key with the following perfectly fine example, he/she would not be able to use Bindman:

dnssec-keygen -a DSA -b 768 -n ZONE test.com

Since, as result of this command, the key files generated would be:

Ktest.com.+003+06286.key
Ktest.com.+003+06286.private

Which, at the current implementation, are denied as valid key files.

Testing

We should add more unit tests to improve our confidence in what is being shipped as a valid product.

Wrong response when delete an inexistent record

Delete service returns success even when the requested resource does not exists.

Response status code 200
Response body true

 curl -vvv -X DELETE http://localhost:7070/records/asdf/asdf
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 7070 (#0)
> DELETE /records/asdf/asdf HTTP/1.1
> Host: localhost:7070
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Mon, 25 Mar 2019 18:16:39 GMT
< Content-Length: 5
<
true
* Connection #0 to host localhost left intact

Multiple zones

A suggested improvement is the ability to write/update multiple zones, e.g. test.com and test.co.

Likely would need an revamp of the configuration management of the system, reading from a configuration file (in addition to) CLI arguments.

Define CD pipeline with Github Actions

A CD pipeline should be defined using Github Actions, where:

  • 1. Tests and build will be done on every commit;
  • 2. New docker image will be shipped to hub.docker.com on every new release;

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.