I’m a big fan of Untangle NG Firewall — a Linux based unified threat management system that offers edge protection, such as virus detection, content filtering, intrusion detection, a policy-based general purpose firewall, ad blocking, VPN access, and many other features.
I wrote some scripts that customize the firewall a little more to my liking, and their available on github.
Web Filter Lite Update Script: This script updates the Web Filter Lite database with a more comprehensive database.
Block IP blocks by Country in Firewall: This script adds entry to the Untangle Firewall that blocks the CIDR (IP blocks) assigned to a country. In theory, it blocks traffic to and/or from the target country.
If you’re looking for an affordable appliance, check out JLTCTech on Amazon.com.