====== PFSense - DNS - Block DNS Requests ======
Block any DNS requests sent to a host other than the pfSense.
**NOTE:** Benefits include:
* To prevent various types of malware or DNS hijacking DNS queries.
* Centralized monitoring and logging.
----
===== Allow DNS Requests to the pfSense box =====
Create a firewall to allow any requests on port 53 to the pfSense box.
Navigate to **Firewall -> Rules -> LAN**.
Add a new firewall rule.
* Action: **Pass**.
* Disabled: **Not Checked**.
* Interface: **LAN**.
* Address Family: **IPv4**.
* Protocol: **TCP/UDP**.
* Source:
* Invert Match: **Not Checked**.
* Source: **Any**.
* Destination:
* Invert Match: **Not Checked**.
* Destination: **This firewall (self)**.
* Destination Port Range - From: **DNS (53)**.
* Destination Port Range - To: **DNS (53)**.
* Log: **Not Checked**.
* Description: **Allow DNS to pfSense**.
----
===== Block ALL LAN traffic on port 53 (DNS) =====
Create a firewall rule to block ALL LAN traffic on port 53 (DNS).
**IMPORTANT:** This rule must be below the above ALLOW rule.
Navigate to **Firewall -> Rules -> LAN**.
Add a new firewall rule.
* Action: **Block**.
* Disabled: **Not Checked**.
* Interface: **LAN**.
* Address Family: **IPv4**.
* Protocol: **TCP/UDP**.
* Source:
* Invert Match: **Not Checked**.
* Source: **Any**.
* Destination:
* Invert Match: **Not Checked**.
* Destination: **Any**.
* Destination Port Range - From: **DNS (53)**.
* Destination Port Range - To: **DNS (53)**.
* Log: **Not Checked**.
* Description: **Block DNS to anywhere**.
----
===== Test =====
On a client device, set DNS to point to an external DNS provider, such as Google.
* Set the DNS on the client to 8.8.8.8
Try to do a nslookup against an external site.
nslookup google.com
returns:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 172.217.169.78
Name: google.com
Address: 2a00:1450:4009:819::200e
**NOTE:** This shows the server handling the DNS query is 192.168.1.1 which is the IP of the pfSense.
Great!
----
Try to do a ping an external site to ensure this works too.
----