smck83 / expurgate Goto Github PK
View Code? Open in Web Editor NEWA self-hosted dockerized SPF solution built on rbldnsd to simplify, hide and exceed limits with SPF records.
A self-hosted dockerized SPF solution built on rbldnsd to simplify, hide and exceed limits with SPF records.
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.
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.
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.
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'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.