- Effectively troubleshoot CP Secure Web Filtering (Webroot)
- Understand logs from CP Secure Web Filtering (Webroot)
- Ensure the service is running:
- Webroot proxies connections to port 53531. Via the CLI, run "netstat -a | grep 53531"
- Ensure the Cradlepoint can reach bcap15.brightcloud.com (7.2.60 and older) or api.bcti.brightcloud.com (7.2.70 or newer) over TCP port 443 to perform category/reputation lookups.
- Clear caches:
- System - this can be done on a Windows machine by running the following command in the CLI - ipconfig /flushdns
- Browser
- Webroot - How to clear the CP-Secure Web Filter (Webroot) local cache
- Use the "Log Only" option
- When the Log Only option is selected, CP Secure Web Filter will create an INFO level log message describing which policy or policies would have blocked the target URL.
- In this example, indeed.com could be blocked by the pre-defined cateogory "Job Search" as well as a Custom Category (in this example named "BLOCK_INDEED.COM"):
- 05:01:23 PM INFO wf-webroot 192.168.22.28 would be blocked requesting indeed.com policy (test) category (BLOCK_INDEED.COM), but 'log only mode' is enabled for this network, using default behavior.
- 05:01:23 PM INFO wf-webroot 192.168.22.28 would be blocked requesting indeed.com policy (test) category (Job Search), but 'log only mode' is enabled for this network, using default behavior.
- In this example, indeed.com could be blocked by the pre-defined cateogory "Job Search" as well as a Custom Category (in this example named "BLOCK_INDEED.COM"):
- When the Log Only option is selected, CP Secure Web Filter will create an INFO level log message describing which policy or policies would have blocked the target URL.
- Check debug logs (example in Additional Information):
- Set system logging to debug level
- Enable verbose webfilter logging (this will not persist through reboot):
- In the CLI, type "set control/webfilter/enable_verbose_logging true
- Generate traffic that should be filtered and review the logs
- tcpdump on port 53 (example in Additional Information):
- If Webroot is blocking traffic, it will respond to a DNS request with a 198.51.100.91 IP address
- Ensure the correct rules are being hit in the firewall:
- netfilter -s will show hit counts on specific rules. In the following output, we see that traffic matching the lan_wr ipset with a destination of port 53 is proxied to port 53531:
- [admin@AER2200-abc: /]$ netfilter -s
7: --protocol tcp -m tcp --dport 53 -m set --match-set lan_wr src,src -j REDIRECT --to-port 53531 (packets: 0, bytes: 0)
8: --protocol tcp -m tcp --dport 53 -m set --match-set lan_all src,src -m set ! --match-set lan_router dst -j REDIRECT (packets: 0, bytes: 0)
9: --protocol udp -m udp --dport 53 -m set --match-set lan_wr src,src -j REDIRECT --to-port 53531 (packets: 0, bytes: 0)
10: --protocol udp -m udp --dport 53 -m set --match-set lan_all src,src -m set ! --match-set lan_router dst -j REDIRECT (packets: 0, bytes: 0) - [admin@AER2200-abc: /]$ ipset list lan_wr
set lan_wr:
0.0.0.0/0,primarylan1
set lan_wr6:
::/0,primarylan1
- [admin@AER2200-abc: /]$ netfilter -s
- netfilter -s will show hit counts on specific rules. In the following output, we see that traffic matching the lan_wr ipset with a destination of port 53 is proxied to port 53531:
- CP Secure Web Filter interacts with the dnsmasq service
- You may not see traffic going out the WAN because dnsmasq caches
- dnsmasq does have a limit to how many requests it can service. When it hits that limit it will just start dropping requests
- The Webroot queue can fill up although this typically occurs due to an issue unrelated to Webroot (e.g. WAN interface is down)
In the example below, Webroot blocks a request for indeed.com because the Job Search category is blocked:
[admin@AER2200-abc: /]$ log -f
04:48:20 PM DEBUG wf-webroot handle_udp_connection : client ('192.168.22.28', 55082)
04:48:20 PM DEBUG wf-webroot handle_udp_connection: que request for indeed.com from 192.168.22.28:55082
04:48:20 PM DEBUG wf-webroot process_queue_data - client: ('192.168.22.28', 55082)
04:48:20 PM DEBUG wf-webroot dns_req_urlname: indeed.com []
04:48:20 PM DEBUG wf-webroot is_special_dns_domain - split DNS match: [] known_host match []
04:48:20 PM DEBUG wf-webroot is_special_dns_domain - returning: False
04:48:20 PM DEBUG wf-webroot Lookup w/Rep: indeed.com for 192.168.22.28:55082
04:48:20 PM DEBUG wf-webroot Lookup cache miss on: indeed.com - Not Found
04:48:20 PM DEBUG wf-webroot lookup_callback: sending resp back ('indeed.com', 'indeed.com', [(26, 83)], 81, 1)
04:48:20 PM DEBUG wf-webroot uncat: False defblk: False lookup_results: ('indeed.com', 'indeed.com', [(26, 83)], 81, 1)
04:48:20 PM DEBUG wf-webroot lookup_results : ('indeed.com', 'indeed.com', [(26, 83)], 81, 1) blocked : True reason : policy reason_val 26
04:48:20 PM INFO wf-webroot 192.168.22.28 blocked requesting indeed.com reason is policy (test) category (Job Search)
04:48:20 PM DEBUG wf-webroot DNS Response (b'\xber\x81\x80\x00\x01\x00\x01\x00\x00\x00\x00\x06indeed\x03com\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\x1e\x00\x04\xc63d[')
[admin@AER2200-abc: /]$ tcpdump -i any port 53 -n
16:48:20.256555 ethertype IPv4, IP 192.168.22.28.55082 > 192.168.22.1.53: 48754+ A? indeed.com. (28)
16:48:20.256555 IP 192.168.22.28.55082 > 192.168.22.1.53: 48754+ A? indeed.com. (28)
16:48:20.256555 IP 192.168.22.28.55082 > 192.168.22.1.53: 48754+ A? indeed.com. (28)
16:48:20.338442 IP 192.168.22.1.53 > 192.168.22.28.55082: 48754 1/0/0 A 198.51.100.91 (44)
16:48:20.338732 IP 192.168.22.1.53 > 192.168.22.28.55082: 48754 1/0/0 A 198.51.100.91 (44)
16:48:20.338996 ethertype IPv4, IP 192.168.22.1.53 > 192.168.22.28.55082: 48754 1/0/0 A 198.51.100.91 (44)