diff --git a/baddiefinder/baddiefinder/__main__.py b/baddiefinder/baddiefinder/__main__.py index fa92c2f..830d207 100644 --- a/baddiefinder/baddiefinder/__main__.py +++ b/baddiefinder/baddiefinder/__main__.py @@ -17,7 +17,7 @@ def main(): args = ap.parse_args() s = settings.load(args.settings) - fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=5) + fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=3) f = filter.FloodfillFilter(fmax) p = processor.BaddieProcessor([f]) netdb.inspect(p.hook) diff --git a/baddiefinder/baddiefinder/web.py b/baddiefinder/baddiefinder/web.py new file mode 100644 index 0000000..c299eb9 --- /dev/null +++ b/baddiefinder/baddiefinder/web.py @@ -0,0 +1,37 @@ +import flask +import io +import netdb + +from . import settings +from . import filter +from . import processor + +app = flask.Flask(__name__) + +@app.route("/baddies.txt") +def baddies(): + s = settings.load('baddies.ini') + fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=3) + f = filter.FloodfillFilter(fmax) + p = processor.BaddieProcessor([f]) + path = s.get("netdb", "dir", fallback=None) + if path: + netdb.inspect(p.hook, path) + else: + netdb.inspect(p.hook) + body = io.StringIO() + p.write_blocklist(body) + v = body.getvalue() + body.close() + r = flask.Response(v) + r.headers["Content-Type"] = 'text/plain' + return r + +@app.route("/") +def index(): + return """this server serves a router info blocklist of ip addresses with unreasonably high desnity of i2p routers (right now just floodfills) +""" + + +if __name__ == '__main__': + app.run() diff --git a/baddiefinder/baddies.ini b/baddiefinder/baddies.ini index a558c3a..85338b5 100644 --- a/baddiefinder/baddies.ini +++ b/baddiefinder/baddies.ini @@ -1,2 +1,5 @@ [thresholds] -max_floodfills_per_ip = 3 \ No newline at end of file +max_floodfills_per_ip = 3 + +#[netdb] +#dir=/var/lib/i2p/netdb \ No newline at end of file diff --git a/baddiefinder/requirements.txt b/baddiefinder/requirements.txt index 8273fd3..7e10602 100644 --- a/baddiefinder/requirements.txt +++ b/baddiefinder/requirements.txt @@ -1,2 +1 @@ -python-geoip -python-geoip-geolite2 +flask