]> git.ipfire.org Git - ipfire.org.git/commitdiff
dnsbl: Add some simple instructions on how to use the lists
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Dec 2025 16:22:04 +0000 (16:22 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Dec 2025 16:22:04 +0000 (16:22 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/base.html
src/templates/dnsbl/lists/show.html

index 80fa86cadcdb9f7d47b9611fe153799e95385479..6f922b12764f49a8eee27bc136a721da5f6394b4 100644 (file)
                                                                                {{ _("Lists") }}
                                                                        </a>
 
-                                                                       <a class="navbar-item is-tab
-                                                                                       {% if request.path.startswith("/dnsbl/how-to-use") %}is-active{% end %}"
-                                                                                       href="/dnsbl/how-to-use">
-                                                                               {{ _("How To Use?") }}
-                                                                       </a>
-
                                                                        <a class="navbar-item is-tab
                                                                                        {% if request.path.startswith("/dnsbl/report") %}is-active{% end %}"
                                                                                        href="/dnsbl/report">
index e773a8644e215cd45268d1b8ec82e834145110fe..551e0f6bf950101cd3293a582947071293a3b737 100644 (file)
                </div>
        </section>
 
+       {# How To Use? #}
+       <section class="section">
+               <div class="container">
+                       <h5 class="title is-5">
+                               {{ _("How To Use?") }}
+                       </h5>
+
+                       <div class="tabs">
+                               <ul>
+                                       <li class="is-active" data-tab="ipfire">
+                                               <a>{% module IPFireLogo() %}</a>
+                                       </li>
+
+                                       <li data-tab="rpz">
+                                               <a>{{ _("Request Policy Zone (RPZ)") }}</a>
+                                       </li>
+
+                                       <li data-tab="alternative">
+                                               <a>{{ _("Alternative Formats") }}</a>
+                                       </li>
+                               </ul>
+                       </div>
+
+                       <div id="ipfire" class="tab-content">
+                               <div class="content">
+                                       <p>
+                                               In IPFire, all blocklists are already included and integrated into the following features:
+                                       </p>
+
+                                       <ul>
+                                               <li>
+                                                       {{ _("URL Filter")}}
+                                               </li>
+
+                                               <li>
+                                                       {{ _("Intrusion Prevention System") }}
+                                               </li>
+                                       </ul>
+                               </div>
+                       </div>
+
+                       <div id="rpz" class="tab-content is-hidden">
+                               <div class="content">
+                                       <p>
+                                               The IPFire DNSBL is published as a Response Policy Zone (RPZ) and
+                                               can be consumed by many popular recursive DNS resolvers.
+                                       </p>
+
+                                       <p>
+                                               Resolvers fetch the list via AXFR/IXFR, store it locally, and only
+                                               transfer updates when the zone changes — keeping bandwidth usage
+                                               low and resolution fast.
+                                       </p>
+
+                                       <h6>PowerDNS Recursor</h6>
+
+                                       <pre>
+recursor:
+&nbsp;&nbsp;rpzs:
+&nbsp;&nbsp;- name: {{ list.slug }}.rpz.ipfire.org
+&nbsp;&nbsp;&nbsp;&nbsp;addresses:
+&nbsp;&nbsp;&nbsp;&nbsp;- 'primary.dnsbl.ipfire.org'</pre>
+
+                                       <h6>Unbound</h6>
+
+                                       <pre>
+server:
+&nbsp;&nbsp;module-config: "respip validator iterator"
+
+rpz:
+&nbsp;&nbsp;name: {{ list.slug }}.rpz.ipfire.org
+&nbsp;&nbsp;primary: primary.dnsbl.ipfire.org
+&nbsp;&nbsp;zonefile: /var/cache/unbound/{{ list.slug }}.rpz.ipfire.org.zone</pre>
+                               </div>
+                       </div>
+
+                       <div id="alternative" class="tab-content is-hidden">
+                               <div class="content">
+                                       <p>
+                                               All IPFire DNSBL lists are also available as downloadable domain and hosts files.
+                                       </p>
+
+                                       <p>
+                                               These formats are intended for setups where the lists are consumed directly,
+                                               for example by firewalls, filtering proxies, custom tooling, or systems using
+                                               hosts-file based blocking. The files can be fetched periodically and applied locally.
+                                       </p>
+                               </div>
+
+                               <div class="buttons are-small">
+                                       <a class="button is-primary" href="https://dnsbl.ipfire.org/lists/{{ list.slug }}/domains.txt">
+                                               <span class="icon">
+                                                        <i class="fas fa-download"></i>
+                                               </span>
+
+                                               <span>
+                                                       {{ _("Domains") }}
+                                               </span>
+                                       </a>
+
+                                       <a class="button is-primary" href="https://dnsbl.ipfire.org/lists/{{ list.slug }}/hosts.txt">
+                                               <span class="icon">
+                                                        <i class="fas fa-download"></i>
+                                               </span>
+
+                                               <span>
+                                                       {{ _("Hosts") }}
+                                               </span>
+                                       </a>
+                               </div>
+                       </div>
+               </div>
+       </section>
+
        {# Sources #}
        {% if sources %}
                <section class="section">
                        <div class="container">
-                               <h3 class="title is-3">{{ _("Sources") }}</h3>
+                               <h5 class="title is-5">{{ _("Sources") }}</h5>
 
                                <table class="table is-fullwidth is-striped is-hoverable is-narrow">
                                        <thead>