From: Michael Tremer Date: Mon, 29 Dec 2025 13:15:41 +0000 (+0000) Subject: dnsbl: Add a basic page that explains the project X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3beb7b5047acd26057d35c497c19e2c7d5bb835;p=ipfire.org.git dnsbl: Add a basic page that explains the project Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index b13c6c7e..c948b0d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -181,6 +181,11 @@ templates_blog_modules_DATA = \ templates_blog_modulesdir = $(templates_blogdir)/modules +templates_dnsbl_DATA = \ + src/templates/dnsbl/index.html + +templates_dnsbldir = $(templatesdir)/dnsbl + templates_donate_DATA = \ src/templates/donate/donate.html \ src/templates/donate/error.html \ diff --git a/src/templates/base.html b/src/templates/base.html index df61b866..0e3f687c 100644 --- a/src/templates/base.html +++ b/src/templates/base.html @@ -30,7 +30,9 @@ {% else %} - {% if request.path.startswith("/fireinfo") %} + {% if request.path.startswith("/dnsbl") %} + {% module IPFireLogo("DNSBL") %} + {% elif request.path.startswith("/fireinfo") %} {% module IPFireLogo("Fireinfo") %} {% elif hostname.startswith("nopaste.") %} {% module IPFireLogo("NoPaste") %} @@ -91,8 +93,16 @@ {% end %} + {# DNSBL #} + {% if request.path.startswith("/dnsbl") %} + + {{ _("How To Use?") }} + + {# Location #} - {% if request.path.startswith("/location") %} + {% elif request.path.startswith("/location") %} diff --git a/src/templates/dnsbl/index.html b/src/templates/dnsbl/index.html new file mode 100644 index 00000000..94a531da --- /dev/null +++ b/src/templates/dnsbl/index.html @@ -0,0 +1,127 @@ +{% extends "../base.html" %} + +{% block head %} + {% module OpenGraph( + title=_("IPFire DNSBL"), + description="High-quality DNS blocklists for security-critical environments", + ) %} +{% end block %} + +{% block title %}{{ _("Welcome to IPFire DNSBL") }}{% end block %} + +{% block container %} +
+
+
+

{{ _("IPFire DNS Blocklist") }}

+ +
+ {{ _("Early threat mitigation, enforced over DNS") }} +
+ +
+
+
+
+ +
+ +
+

{{ _("Accuracy First, Always") }}

+ +
+

+ We prioritise high-confidence, well-verified data over raw volume. + Every listed domain must meet clear criteria, be reviewed continuously, + and be removed quickly when it no longer poses a threat. + The goal is trustworthy blocking with minimal false positives, suitable + for production networks. +

+
+
+
+
+ +
+
+
+ +
+ +
+

{{ _("Privacy-Respecting Operation") }}

+ +
+

+ The service is operated without tracking users or collecting + resolver telemetry. DNS security should improve safety without + introducing new privacy risks. +

+
+
+
+
+ +
+
+
+ +
+ +
+

{{ _("Built on DNS Standards and Best Practices") }}

+ +
+

+ These blocklists are developed with a deep understanding of DNS + infrastructure. They integrate naturally with technologies like + Response Policy Zones (RPZ), follow established standards, and + are operated with stability and long-term reliability in mind + — even at scale. +

+
+
+
+
+ +
+
+
+ +
+ +
+

{{ _("Open, Inclusive, and Free Software") }}

+ +
+

+ The IPFire DNS blocklists are built as a public good: + open, transparent, and free to use. + They are available to anyone, regardless of platform or vendor, + and developed in the open so the wider community can inspect, + contribute, and benefit. +

+
+
+
+
+
+
+
+
+ +
+ +
+{% end block %} diff --git a/src/web/__init__.py b/src/web/__init__.py index b042ac43..3e7ee30b 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -206,6 +206,9 @@ class Application(tornado.web.Application): (r"/location/report\-a\-problem", StaticHandler, { "template" : "location/report-a-problem.html" }), (r"/location/lookup/(.+)", location.LookupHandler), + # DNSBL + (r"/dnsbl/?", StaticHandler, { "template" : "dnsbl/index.html" }), + # Single-Sign-On for Discourse (r"/sso/discourse", auth.SSODiscourse), @@ -329,6 +332,11 @@ class Application(tornado.web.Application): tornado.web.StaticFileHandler, { "path" : BOOT_STATIC_PATH }), ]) + # dnsbl.ipfire.org + self.add_handlers(r"dnsbl\.([a-z]+\.dev\.)?ipfire\.org", [ + (r"(.*)", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/dnsbl{0}" }), + ]) + # nopaste.ipfire.org self.add_handlers(r"nopaste\.([a-z]+\.dev\.)?ipfire\.org", [ (r"/", nopaste.CreateHandler),