pihole on unraid not blocking ads with pfsense
-
So I seem to have this working now. In general setup, I checked the box for disable dns forwarder, which removed the dns server entry of 127.0.0.1. DNS Resolver is enabled with DNSSEC and DNS Query Forwarding. Pihole is set with Cloudflare as the DNS servers. And pfSense is set with Pihole as the DNS server and the only server. Thanks for everyone's help.
-
I thought I'd give an update. For the most part, this setup has been working. However I am getting some domains blocked. When I go into pihole via command line to whitelist, pihole says the domain is not blocked. So pfsense must be blocking it. Also wanted to mention that pfsense is not giving pihole's IP address to my clients. The clients show the router and dns server as the same IP address vs pfsense as the router and pihole as the dns. What could be the problem?
-
@mlaustin said in pihole on unraid not blocking ads with pfsense:
I thought I'd give an update. For the most part, this setup has been working. However I am getting some domains blocked. When I go into pihole via command line to whitelist, pihole says the domain is not blocked. So pfsense must be blocking it. Also wanted to mention that pfsense is not giving pihole's IP address to my clients. The clients show the router and dns server as the same IP address vs pfsense as the router and pihole as the dns. What could be the problem?
I suspect the answer is very simple. Whatever device is providing DHCP on your network needs to also be providing clients your pihole server's IP as the DNS server to use. DHCP tells clients what IP address to take, where to ask for DNS services and what gateway to use. Sounds like your DHCP setup is missing the DNS part or else is giving out an IP that is not your pihole server.
But may I ask another question? Why go to all the hassle of using pihole and having to fight with DNS? Just put an ad block plugin on your browsers. I use uBlock Origin on Chrome and I see zero adds of any type on web sites I visit, and I don't have to monkey around with DNS. There are also uBlock Origin clients for other browsers. Same with YouTube videos. I have a YouTube ad blocker and never see any ads on YouTube (nor Facebook). Maybe if your browsing is primarily from mobile devices instead of PCs, then pihole might be needed (as the ad block clients for mobile devices are sparse). I personally detest using a mobile device for general web browsing (the screen is too small and you have to scroll most web sites for 10 miles to see all the content).
If you still want to use pihole, then you need to make sure that server's IP address is handed to all clients in your network for them to use as the DNS server. Typically that is handled by properly configuring whatever is providing DHCP on your network. Of course you can also manually assign the DNS server IP address.
-
I have been running pihole for quite some time... This is how I set it up... I have pihole running on on an actual pi In my dmz network 192.168.3/24
All clients point to pihole directly via setting dhcpd on pfsense to hand this out. pihole then forwards to pfsense.. Pfsense then "RESOLVES" using dnssec.
This allows me if I want to just ask pfsense IP directly for something if I don't want to be be blocked by piholes list. If I want a device to not use pihole, i just setup that device to use pfsense for dns.
On pihole I just set it to foward PTRs for rfc1918, ie uncheck
"Never forward reverse lookups for private IP ranges"This requires min config on both unbound and pihole. No need to setup any conditional forwards, still get to "resolve" and use dnssec per setting on unbound. And also host overrides set on unbound work, etc.
-
@bmeeks said in pihole on unraid not blocking ads with pfsense:
@mlaustin said in pihole on unraid not blocking ads with pfsense:
I thought I'd give an update. For the most part, this setup has been working. However I am getting some domains blocked. When I go into pihole via command line to whitelist, pihole says the domain is not blocked. So pfsense must be blocking it. Also wanted to mention that pfsense is not giving pihole's IP address to my clients. The clients show the router and dns server as the same IP address vs pfsense as the router and pihole as the dns. What could be the problem?
I suspect the answer is very simple. Whatever device is providing DHCP on your network needs to also be providing clients your pihole server's IP as the DNS server to use. DHCP tells clients what IP address to take, where to ask for DNS services and what gateway to use. Sounds like your DHCP setup is missing the DNS part or else is giving out an IP that is not your pihole server.
But may I ask another question? Why go to all the hassle of using pihole and having to fight with DNS? Just put an ad block plugin on your browsers. I use uBlock Origin on Chrome and I see zero adds of any type on web sites I visit, and I don't have to monkey around with DNS. There are also uBlock Origin clients for other browsers. Same with YouTube videos. I have a YouTube ad blocker and never see any ads on YouTube (nor Facebook). Maybe if your browsing is primarily from mobile devices instead of PCs, then pihole might be needed (as the ad block clients for mobile devices are sparse). I personally detest using a mobile device for general web browsing (the screen is too small and you have to scroll most web sites for 10 miles to see all the content).
If you still want to use pihole, then you need to make sure that server's IP address is handed to all clients in your network for them to use as the DNS server. Typically that is handled by properly configuring whatever is providing DHCP on your network. Of course you can also manually assign the DNS server IP address.
pfSense is providing DHCP, so it should be handing out pihole's IP address.
-
@mlaustin said in pihole on unraid not blocking ads with pfsense:
pfSense is providing DHCP, so it should be handing out pihole's IP address.
OK, but make sure that within the DHCP settings in pfSense you have specifically specified your pihole server's IP address for DNS. The default for pfSense will be to send the firewall's address to clients for use as the DNS server. Configure your settings as @johnpoz suggested. You don't have to have pihole on bare metal or in a DMZ, though. Just make sure within the pfSense DHCP settings for all of your local firewall interfaces that pfSense is configured to tell your network clients to use pihole for DNS.
-
Thanks for the quick responses. Ok, I did uncheck the box the @johnpoz suggested within pihole. I did not have the pihole IP under DNS servers within DHCP as it states below it will use the default servers under general setup, which is where I have pihole specified. So I assumed it would issue that out as the DHCP. By adding the DNS in DHCP, the pihole address is now delivered on refresh. And instantly sites that were not working are working. So hopefully I have resolved this issue.
Let me ask a follow up question to some other settings. Do I still need to have pihole as the only listed DNS server under general setup? Or can I remove it now that it is in DHCP setting and just use backup DNS servers there (or can leave it as well as add backup servers)? Also within that same area, can I now check this box "Do not use the DNS Forwarder/DNS Resolver as a DNS server for the firewall" which will add the localhost 127.0.0.1 as a DNS server? One more thing, within DNS resolver do I still need to check "Enable Forwarding Mode"?
-
You would not have pihole setup anywhere in pfsense other then in the dhcpd handing out to clients. Pfsense ONLY points to itself which resolves (out of the box config).
Pihole FORWARDS to pfsense IP, which then resolves.
clients ONLY ask pihole, pihole ONLY forwards to pfsense. Pfsense then resolves anything it gets asks.. Pihole will not forward to pfsense stuff that it blocks.
-
@johnpoz said in pihole on unraid not blocking ads with pfsense:
You would not have pihole setup anywhere in pfsense other then in the dhcpd handing out to clients. Pfsense ONLY points to itself which resolves (out of the box config).
Pihole FORWARDS to pfsense IP, which then resolves.
clients ONLY ask pihole, pihole ONLY forwards to pfsense. Pfsense then resolves anything it gets asks.. Pihole will not forward to pfsense stuff that it blocks.
I want to make sure I understand this correctly. Because in phole, I have the DNS servers set for cloudflare. I don't have any DNS servers setup in pfsense other than pihole. So should I then remove the DNS servers from phole and put cloudflare as DNS in pfsense? Then I'm guessing I would put pfSense's IP address in pihole. So it goes something like this, DHCP DNS -> pihole -> pfsense -> pfSense DNS.
-
You essentially have two options:
A. Use pfSense as a DNS Resolver:
- No need to add any Additional DNS Servers under General Setup in pfSense
- Under DNS Resolver settings in pfSense, make sure DNSSEC is enabled and forwarding mode is disabled (unchecked)
- Pi-hole needs to be setup to forward its DNS traffic to pfSense.
- If you have DNS mappings (Host Overrides) in pfSense you'll want to uncheck "Never forward reverse lookups for private IP ranges" under Pi-hole's DNS settings.
- Make sure your clients DNS points to Pi-Hole
B. Use pfSense as the DNS Forwarder to Cloudflare (i.e. Cloudflare is the DNS Resolver):
- Add the IP's of Cloudflare's DNS servers under General Setup in pfSense.
- Under DNS Resolver settings in pfSense, you can disable DNSSEC if you want (because pfSense is now just forwarding requests and not resolving them) and make sure that forwarding mode is enabled (checked).
- to 5) remain the same.
One other thing you can also think about doing is setting up NAT Redirection rules to make sure that DNS traffic that is not bound for Pi-hole is then redirected to go through Pi-hole (so nothing can circumvent it). This is useful in situations where devices may have their DNS server settings hard coded - I've seen some IoT devices behave like this.
Hope this helps.
-
Thanks. Both scenarios worked out. I will use scenario A.
-
@johnpoz said in pihole on unraid not blocking ads with pfsense:
I have been running pihole for quite some time... This is how I set it up... I have pihole running on on an actual pi In my dmz network 192.168.3/24
All clients point to pihole directly via setting dhcpd on pfsense to hand this out. pihole then forwards to pfsense.. Pfsense then "RESOLVES" using dnssec.
This allows me if I want to just ask pfsense IP directly for something if I don't want to be be blocked by piholes list. If I want a device to not use pihole, i just setup that device to use pfsense for dns.
On pihole I just set it to foward PTRs for rfc1918, ie uncheck
"Never forward reverse lookups for private IP ranges"This requires min config on both unbound and pihole. No need to setup any conditional forwards, still get to "resolve" and use dnssec per setting on unbound. And also host overrides set on unbound work, etc.
John would you one day be able to do a step by step on how you got it working like that sounds perfect with what i am wanting to do. I sometimes find pfsense quite complicated 90% of the time.
-
I kind of just did, when I told you how I have it setup.. Didn't I.. What step is missing there ;)
-
@johnpoz said in pihole on unraid not blocking ads with pfsense:
I kind of just did, when I told you how I have it setup.. Didn't I.. What step is missing there ;)
Nevermind thanks anyway.
-
Do you need a picture on how to setup dhcp to point to the pihole IP? Do you need picture on how to setup pihole to point to pfsense IP? Just a bit confused to what other info you would need?
-
@johnpoz said in pihole on unraid not blocking ads with pfsense:
Do you need a picture on how to setup dhcp to point to the pihole IP? Do you need picture on how to setup pihole to point to pfsense IP? Just a bit confused to what other info you would need?
Not really a picture tho it might help. I know you told us what you have set up I just wouldn't know how to set it up this way. I was hoping you could give a run down and the setting you did to achieve this.
-
Again - already did..
You set dhcp server in pfsense to point to pihole IP.
You set pihole to forward to pfsense IP..What else is there to know?
Clients now ask pihole, stuff that is not blocked gets forwarded to pfsense. It answers for local stuff, and resolves public stuff and answers back to pihole, which sends it back to client.
One thing I would do is let pihole do PTR.. So uncheck
"Never forward reverse lookups for private IP ranges" -
@johnpoz said in pihole on unraid not blocking ads with pfsense:
Again - already did..
You set dhcp server in pfsense to point to pihole IP.
You set pihole to forward to pfsense IP..What else is there to know?
Clients now ask pihole, stuff that is not blocked gets forwarded to pfsense. It answers for local stuff back to pihole, which sends it back to client.
One thing I would do is let pihole do PTR.. So uncheck
"Never forward reverse lookups for private IP ranges"So
SystemGeneral Setup DNS Servers 10.0.0.22 (which is my pihole)
now on pihole
Upstream DNS Servers
points to pfsense 10.0.0.1Never forward non-FQDNs
Never forward reverse lookups for private IP ranges
Use DNSSEC
All ticked?Can't seem to find PTR in the dns options unless Never forward reverse lookups for private IP ranges is it?
-
@X2LR said in pihole on unraid not blocking ads with pfsense:
SystemGeneral Setup DNS Servers 10.0.0.22 (which is my pihole)
No where did I say anything about that??
You don't do anything to unbound, or pfsense other than change the IP that gets handed to clients in the dhcp server settings.
never forward non-fqdn - checked!
never private - unchecked
use dnssec - uncheck, its POINTLESS on a forwarder.. Pointless!! Unbound will do your dnssec for you out of the box. -
@johnpoz said in pihole on unraid not blocking ads with pfsense:
@X2LR said in pihole on unraid not blocking ads with pfsense:
SystemGeneral Setup DNS Servers 10.0.0.22 (which is my pihole)
No where did I say anything about that??
You don't do anything to unbound, or pfsense other than change the IP that gets handed to clients in the dhcp server settings.
Sorry you are correct I miss read. Is there others correct?