Code Monkey home page Code Monkey logo

expurgate's People

Contributors

smck83 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

expurgate's Issues

AAAA resolution

Currently where there is an A: record in an SPF record, the resolver script performs an A, type lookup, resolving IPv4 addresses and not a following AAAA (IPv6) lookup, incase present.

New Feature: Add an AAAA resolution on A/A: records and MX/MX: that could reference hostnames A and AAAA.

This is likely to be uncommon with most vendors publishing their ip4 and ip6 records to their TXT record, which expurgate-resolver already supports.

Clumsy phrasing in README

This:

"With organisations focusing on DMARC over the past 5 years that rely on SPF and DKIM to prevent domain spoofing, there has never been more reason for an organisation to exceed the 10 host resolution lookup limit."

appears to be very clumsily re-phrased, so just a suggestion to see if you can re-write it more clearly :).

J.

When DNS not responding as expected - running-config is generated with no passing IP resulting in "v=spf1 (~|-)all" to every request

If resolver is not able to contact a DNS server (DNS down, timeouts or internet connection issues) and get an empty response, it will proceed believing there is a change, i.e. a config is generated with no passing IP, resulting in all lookups soft or hard failing SPF.

Enhancement: Add error handling on initial lookup of <SOURCE_PREFIX>.domain com so that if any of the initial lookups fail, no new configuration file will be generated.

This should log error to stdput when this behaviour is occurring. E.g. "unable to resolve source of truth for - no updates to config file will be made on this pass"

Future enhancement could be to not generate a new config files if more than 50% of records have changed.

RestDB functionality causes resolver to explode with mismatch number of parameters

I believe the issue is that the function restdb is defined for three parameters:
def restdb(restdb_url,restdb_key,mydomains):

However the function is called with two parameters on line 101:
restdbdomains = restdb(restdb_url,restdb_key)

Which results in the following error:

Traceback (most recent call last):
 File "/opt/expurgate/resolver.py", line 101, in <module>
  restdbdomains = restdb(restdb_url,restdb_key)
TypeError: restdb() missing 1 required positional argument: 'mydomains'
Traceback (most recent call last):
 File "/opt/expurgate/resolver.py", line 101, in <module>
  restdbdomains = restdb(restdb_url,restdb_key)
TypeError: restdb() missing 1 required positional argument: 'mydomains'
Traceback (most recent call last):
 File "/opt/expurgate/resolver.py", line 101, in <module>
  restdbdomains = restdb(restdb_url,restdb_key)
TypeError: restdb() missing 1 required positional argument: 'mydomains'
Traceback (most recent call last):
 File "/opt/expurgate/resolver.py", line 101, in <module>
  restdbdomains = restdb(restdb_url,restdb_key)
TypeError: restdb() missing 1 required positional argument: 'mydomains'

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.