DNS Firewall not works

Hi,

I’ve noticed a problem with the DNS Firewall. Is it working? Let me explain. I’ve selected the “Pornography” category, but it lets me access all the porn sites. Does this happen to you too? I have the 203 Development Build: master/9b7ed567

I had version 203 Development Build: master/e9a5fbb3, and to rule out any problems, I lowered the MIME type to 202 and updated again.

Now I’m on version 203 Development Build: master/9b7ed567, but I’m still having the same problem.

And into pornography:

In www.ipfire.org - Search Results For: pornhub.com, appears:

But nothing, not works for my.

Any comments are welcome.

Bye.

You have restricted the access zone to only be for the Green network. If you are using the web proxy then your traffic to the dns system will not be coming from green but from IPFire itself and therefore will not be blocked.

This is covered in the IPFire documentation. See at the bottom of the List restriction section.

https://www.ipfire.org/docs/configuration/firewall/dns#list-restriction

The simplest situation for most users is to use the default settings and not edit the access settings.

If you want to stay with your Green access selected then disable the use of the web proxy via the browsers.

If you want to be covered by the DNS Firewall irrespective of if the browser is using the web proxy or not then disable all the Network Zones.
In your case press Ctrl + click the mouse button on the Green selection and it will be deselected.

First of all, thank you for the quick response.

I’m sorry to say I followed your instructions and it’s still not working. I even cleared the Squid cache, like the browser’s F5, Ctrl+F5, and Ctrl+R, and it still accesses without problems. I seem to recall that it worked with version 202.

In “messages” nothing:

Thanks.

For me it also is working with CU203, the same as CU202, the only difference being that is uses knot-resolver in place of unbound.

I would have suggested clearing the caches but it looks like you have done that.

Just to confirm, when you say that you cleared the squid cache, you mean that you pressed the Clear Cache button at the bottom of the Web Proxy WUI page.

You don’t have to go searching through the messages file you can go to Logs - System Logs and select Domain Name System from the drop down box and it will show you both the unbound and knot-resolver logs for the rpz.
In there you can choose a date back when you had CU202 in place and you should be able to find those entries, as well as seeing of there is anything from the current period.

To simplify the test you could set your browser to use the system proxy or no proxy and then it guarantees that the traffic will go directly to the DNS system.

I just tested it out on my CU203 system (Development Build: master/e9a5fbb3)
and selected the same categories as you did and then tried to access pornhub.com with the browser setup with using system proxy

The browser came back with

and in the system logs I had the following

16:01:48 supervisord:  captured stdio output from kresd0[1825]: Called for pornhub.com.localdomain.com. (1)
16:01:48 kresd[1825]:  [rules ] => local data applied, user: 192.168.200.10, name: pornhub.com. 

You should also be able to find the successful startup of knot in that log. It should look similar to the following

15:54:51 supervisord:  success: policy-loader entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
15:54:51 supervisord:  spawned: 'policy-loader' with pid 1822
15:54:51 knot_resolver.controller.supervi:  Supervisord is already running, we will just update its config...
15:54:51 knot_resolver.controller:  Selected controller 'supervisord'
15:54:51 knot_resolver.controller:  Available subprocess controllers are ('supervisord',)
15:54:51 knot_resolver.controller:  Starting service manager auto-selection...
15:54:51 knot_resolver.manager.logger:  Changing logging level to 'INFO'
15:54:51 knot_resolver.manager.server:  Loading configuration from '/etc/knot-resolver/config.yaml' file.
15:54:51 supervisord:  spawned: 'manager' with pid 1819
15:54:50 supervisord:  notify: injected $NOTIFY_SOCKET into event loop
15:54:50 supervisord:  supervisord started with pid 1776
15:54:50 supervisord:  Server 'unix_http_server' running without any HTTP authentication checking
15:54:50 supervisord:  RPC interface 'fast' initialized
15:54:50 supervisord:  RPC interface 'supervisor' initialized
15:54:50 supervisord:  RPC interface 'sd_notify' initialized
15:54:50 supervisord:  RPC interface 'manager_integration' initialized
15:54:50 supervisord:  RPC interface 'patch_logger' initialized
15:54:49 knot_resolver.manager.server: Exec requested with arguments:  ['/usr/bin/supervisord', 'supervisord', '--configuration', '/run/knot-resolver/supervisord.conf']
15:54:49 knot_resolver.controller.supervi:  We want supervisord to restart us when needed, we will therefore exec() it and let it start us again.
15:54:49 knot_resolver.controller:  Selected controller 'supervisord'
15:54:49 knot_resolver.controller:  Available subprocess controllers are ('supervisord',)
15:54:49 knot_resolver.controller:  Starting service manager auto-selection...
15:54:49 knot_resolver.manager.logger:  Changing logging level to 'INFO'
15:54:49 knot_resolver.manager.server:  Loading configuration from '/etc/knot-resolver/config.yaml' file.

If you don’t see anything like that then you need to show what log messages you do see when knot has been started.

For me, after selecting the Pornography category, the DNS firewall works according to the configuration:

; <<>> DiG 9.10.6 <<>> pornohub.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4288
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;pornohub.com. IN A

;; AUTHORITY SECTION:
pornohub.com. 60 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800

;; Query time: 6 msec
;; SERVER: 192.168.101.1#53(192.168.101.1)
;; WHEN: Sat Jun 20 16:28:41 CEST 2026
;; MSG SIZE rcvd: 100

; <<>> DiG 9.10.6 <<>> ipfire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3473
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;ipfire.org. IN A

;; ANSWER SECTION:
ipfire.org. 86400 IN A 81.3.27.38

;; Query time: 76 msec
;; SERVER: 192.168.101.1#53(192.168.101.1)
;; WHEN: Sat Jun 20 16:33:00 CEST 2026
;; MSG SIZE rcvd: 55

IPFire 2.29 (aarch64) - Core-Update 203 Development Build: master/8024c29c

I don’t use a proxy.

Hi everyone!

Since I have Proxmox, I reverted a snapshot I had of version 202, and now it seems to be working.

And:

Now, knowing for sure that version 202 works well, I’m going to update the testing version 203.

I’ll try it and let you know…

Thanks!.

Nothing, not working…

After updating to version 203 without making any further changes, it’s not working, and I can access Pornhub without any problems.

It worked with version 202. With version 203, it doesn’t work.

What could be the problem?

I’m open to suggestions. Should I open a support ticket on Bugzilla?

I’ve disabled Squid. I’ve removed the proxy from the Windows 10 settings. I’ve assigned a static IP address to Windows 10 using IPFire DNS. I’ve cleared the Firefox cache. I can still access it.

IPFire 2.29 (aarch64) - Core-Update 203 working ok

; <<>> DiG 9.10.6 <<>> pornohub.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2413
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;pornohub.com. IN A

;; AUTHORITY SECTION:
pornohub.com. 60 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800

;; Query time: 5 msec
;; SERVER: 192.168.101.1#53(192.168.101.1)
;; WHEN: Sat Jun 20 20:47:09 CEST 2026
;; MSG SIZE rcvd: 100

20:47:09 kresd[1785]: [rules ] => local data applied, user: 192.168.101.10, name: pornohub.com.

The question is how the DNS configuration is set on ipfire ?

For me:

[root@bs ~]# dig pornhub.com

; <<>> DiG 9.20.23 <<>> pornhub.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51313
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;pornhub.com.                   IN      A

;; ANSWER SECTION:
pornhub.com.            5462    IN      A       66.254.114.41

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Jun 22 06:47:24 CEST 2026
;; MSG SIZE  rcvd: 56

[root@bs ~]#

With the active category, I can access it without any problem. I shouldn’t have to.

try
kresctl cache clear pornhub.com

What is your DNS configuration (dns.cgi page)?

The dig query from IPFire itself isn’t filtered, in my opinion. The query should be run from a host, e.g., from the green network. My question is, what does the DNS configuration look like on IPFire?

Hi @pscar13

Hier my terminal:

[root@bs ~]# kresctl cache clear pornhub.com
count: 7
not_apex: to clear proofs of non-existence call cache.clear('com.')
round: 1
subtree: com.

Unfortunately, even after doing this, I’m still getting the same problem. The Core 202 was working perfectly.

and @alexand. My dns configuration:

Thanks!.

Try changing your DNS configuration as a test.
Disable Google DNS (8.8.8.8, 8.8.4.4)
Change the query mode to standard UDP:

In my opinion, if additional DNS servers are configured, the DNS firewall does not work properly (203)

same issue with your config
The websites pornub.com and youporn.com remain accessible.

[root@ipfireTest ~]# dig xfr.dbl.ipfire.org

; <<>> DiG 9.20.23 <<>> xfr.dbl.ipfire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 6517
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; EDE: 12 (NSEC Missing): (V5T7: forwarded EDE code)
;; QUESTION SECTION:
;xfr.dbl.ipfire.org.            IN      A

;; Query time: 202 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Jun 22 18:56:38 CEST 2026
;; MSG SIZE  rcvd: 77

RPZ Zone file can’t upload

Something is blocking queries, Default firewall behavior outgoing (disable) ?

[root@ipfire ~]# dig xfr.dbl.ipfire.org

; <<>> DiG 9.20.23 <<>> xfr.dbl.ipfire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18754
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;xfr.dbl.ipfire.org. IN A

;; ANSWER SECTION:
xfr.dbl.ipfire.org. 17565 IN CNAME primary.dbl.ipfire.org.
primary.dbl.ipfire.org. 17565 IN A 81.3.27.55

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Jun 22 19:05:30 CEST 2026
;; MSG SIZE rcvd: 85

[root@ipfire ~]#

Yes, same hier!.

[root@bs ~]# dig xfr.dbl.ipfire.org

; <<>> DiG 9.20.23 <<>> xfr.dbl.ipfire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61572
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; EDE: 12 (NSEC Missing): (V5T7: forwarded EDE code)
;; QUESTION SECTION:
;xfr.dbl.ipfire.org.            IN      A

;; Query time: 351 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Tue Jun 23 08:20:20 CEST 2026
;; MSG SIZE  rcvd: 77

[root@bs ~]#

What could be happening? I’m telling you, with version 202 there were no problems, and when I updated to 203, without changing anything, it stopped working.

@alexand, I’m going to try what you suggested. With this configuration:

Respond this:


[root@bs ~]# dig xfr.dbl.ipfire.org

; <<>> DiG 9.20.23 <<>> xfr.dbl.ipfire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2727
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;xfr.dbl.ipfire.org.            IN      A

;; ANSWER SECTION:
xfr.dbl.ipfire.org.     21600   IN      CNAME   primary.dbl.ipfire.org.
primary.dbl.ipfire.org. 21600   IN      A       81.3.27.55

;; Query time: 90 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Tue Jun 23 08:25:22 CEST 2026
;; MSG SIZE  rcvd: 85

[root@bs ~]#

Thks

Nothing. I’ve purged all caches, both IPFire and Firefox, and cleared all Knot cache tables with kresctl cache clear . and I still can’t log in.

It’s crazy.

Guauuuu, I did everything you suggested, only using IPFire’s DNS, and after restarting, it started working!!!

|09:03:19 |kresd[3633]: |[rules ] => local data applied, user: 127.0.0.1, name: xvideos.com.|
|---|---|---|
|09:03:19 |kresd[3634]: |[rules ] => local data applied, user: 10.254.0.89, name: xvideos.com.|
|09:03:11 |kresd[3635]: |[rules ] => local data applied, user: 127.0.0.1, name: xnxx.com.|
|09:03:11 |kresd[3634]: |[rules ] => local data applied, user: 127.0.0.1, name: xnxx.com.|
|09:03:11 |kresd[3633]: |[rules ] => local data applied, user: 127.0.0.1, name: xnxx.com.|
|09:03:11 |kresd[3634]: |[rules ] => local data applied, user: 10.254.0.89, name: xnxx.com.|
|09:03:08 |kresd[3635]: |[rules ] => local data applied, user: 10.254.0.89, name: client.wns.windows.com.|
|09:03:04 |kresd[3633]: |[rules ] => local data applied, user: 127.0.0.1, name: pornhub.com.|
|09:03:04 |kresd[3635]: |[rules ] => local data applied, user: 127.0.0.1, name: pornhub.com.|
|09:03:04 |kresd[3633]: |[rules ] => local data applied, user: 127.0.0.1, name: pornhub.com. |

The DNS configuration is this:

Thanks!.