The amazing pfSense Community Edition forms the first of my three-layer home internet security firewall and gateway. I have a dual-WAN setup with subscriptions to both Verizon FiOS and Comcast Xfinity, with the LAN side feeding into a Sophos UTM 9 which is further protected by ClearOS.
I run pfSense in a virtual machine. However, there are excellent dedicated firewall routers with pfSense preinstalled available that you can simply plug in between your WAN and LAN, like this one (includes my Amazon affiliate link):
I am a huge fan of blocklists and over the years settled down to a functional set of IP and DNSBL blocklists used with the wonderful pfBlockerNG package on my installation of pfSense Community open-source router firewall.
I have completely disabled IPv6; all of the following blocklists are for IPv4, and for DNSBL, domain names.
For the IP blocklists, the top-level blocklist groups are Level-1, Level-2, Level-3, Level-4 and SANYALnet.
|pfBlockerNG on pfSense - top level IP (IPv4) blocklist groups|
Level-1 IP Blocklist
|pfBlockerNG Level-1 IP Blocklist sources|
Incoming as well as outgoing connections from / to blocklisted IPs are blocked for these highest risk IP addresses. Of particular concern in modern times are the command-and-control (CNC) botnets particularly infecting digital security and surveillance systems, cameras, routers, televisions, DVD players and all sorts of devices making up the Internet of Things (IoT). The Level-1 IP BL is updated every hour, and the group members are:
Level-2 IP Blocklist
In addition to IoT C&C botnets, the other primary threat today is from Ransomware. I only have Firehol Level 2, Ransomware Tracker IP blacklists from abuse.ch including CryptoWall, Locky, TeslaCrypt, TorrentLocker C&C and Payment, and Zeus tracker and ci badguys IP deny blocklists at my level 2, which is also configured to block all outgoing as well as incoming connections. Level 2 IP blocklists are updated every 2 hours.
Level-3 IP Blocklist
|pfBlockerNG Level-3 IP Blocklist sources|
IP addresses in my level 3 blocklist are denied on the incoming side only, i.e. I allow connections initiated from inside my home LAN out to these IPs to go through. The level 3 IP blacklist addresses are updated every 4 hours. The sources are:
Level-4 IP Blocklist
|pfBlockerNG Level-4 IP Blocklist sources|
There are only a couple of blacklist sources for my level 4, including Firehol Level 4, and Malware Domain List IP addresses the equivalent domains of which are also included in my list of DNSBL lists separately. Level 4 is configured to block inbound connections only and updated every 8 hours.
SANYALnet IP Blocklist
|pfBlockerNG SANYALnet IP Blocklist sources|
The SANYALnet group is a collection of blocklists I maintain myself based on the brute force attacks and intrusion attempts logged by my own servers. This group is updated every hour to minimize on-going attacks.
pfBlockerNG DNSBL Feeds
|pfBlockerNG DNSBL Feeds DNS Groups|
The DNSBL configuration redirects domain name lookups for blocked domains to my own "httpd410server" DNS sinkhole.
I have grouped the DNSBL feeds into three groups.
Zero-day Threat Domain Blocklist Group
|pfBlockerNG DNSBL Zero-Day Threat Domain Blocklist|
General Domain Blocklist Group
|pfBlockerNG DNSBL General Domain Blocklist Group|
This group contains a collection of malware, ransomware, adware, spyware, tracker and generally undesirable domain blocklists updated once every day. This includes advertising services, thus making my pfSense firewall an effective ad blocker for all devices on my entire home network.
I turned the Eladkarako and Immortal Long Lived Malware Domains blocklists off because they were too generic and were blocking too many websites used by folks in my home. If you wish, you can turn them on for a more secure DNSBL at the cost of filtering out some websites that are otherwise useful.
- Use with care: http://raw.githubusercontent.com/eladkarako/hosts.eladkarako.com/master/_raw__hosts.txt
- Use with care: http://mirror1.malwaredomains.com/files/immortal_domains.txt
Hosts File Format Blocklists
|pfBlockerNG DNSBL General hosts File Format Blocklist Group|
pfBlockerNG DNSBL Custom Domain Whitelist
|pfSense pfBlockerNG DNSBL Custom Domain Whitelist|
Sometimes a domain blocklist included in pfSense pfBlockerNG DNSBL configuration will block URLs that you find useful and want to visit. Instead of digging through the logs to figure out which list is blocking your desired domain and disabling the entire list, you can simply add the domains that should not be blocked in the nifty Custom Domain Whitelist feature included as part of the DNSBL configuration.
Consolidated IP and DNSBL BlocklistsI make consolidated IP address and Domain Name blocklists available for free public use from my VPS at the following links; feel free to use them.
- Consolidated IP Address Blocklist
- Consolidated Domain Name Blocklist (This is NOT pfBlockerNG compatible, but useful for folks running dnsmasq daemon on their internet gateway)
pfSense pfBlockerNG in Action
With the pfBlockerNG setup for IP and DNS Blocklists described above, I do see domains and IPs blocked all the time - here is a typical example of pfBlockerNG's "Alert" screen that shows the last 25 IP addresses and domains blocked at the time of writing:
|pfSense pfBlockerNG Active Blocked IP Addresses and Domains|
A pfBlockerNG force reload log looks like this:
Hope you find this useful and please share the IP and domain blocklists you have found and use in comments below.