Prior to starting DNSFilter, I spent most of my career in Information Security, working for companies like ITA Software (acquired by Google) and Veracode, finding ways to get around normal system behaviors. As a result, I have a lot of experience in getting around and through networks.
I’m going to step through various methods of getting around network restrictions, whether it's content filtering appliances, firewalls, captive portal, etc. I’ll explain the method, why it works, and what to do to prevent it.
This is probably the first method users think about using. It’s simple and effective; when it works. Negatives are that it adds latency to your traffic, as you’re going through the intermediary network, and the farther away it is from where you are, the slower your Internet usage will be.
Typical ports to firewall:
TCP 1723
UDP 500
TCP 1701
TCP 80
TCP 443
UDP 1194
These cover most commercial VPN services, but realistically, the VPN could be operating on any port., especially if you roll your own, on a VPS like DigitalOcean
Basic prevention would be to block VPN ports which are not being used for other purposes (You can’t block 80 or 443 in this easy manner).
You can also block access to the providers websites (and VPN end-point hostnames) using DNSFilter’s “Proxy and Filter Avoidance” Threat Category
If you have a linux box on the net — whether an inexpensive VPS, or easy-to-use Provider like DigitalOcean, you should be able to ssh -D 8080 user@server and have a conveniently encrypted SOCKS 5 proxy listening on port 8080. Configure your browser of choice, and you’re off to the races.
Most SSH daemons listen on the default port 22; though port 2222 is also becoming a popular alternative to avoid brute-force password attempts. Firewalling these outbound ports will eliminate most attempts; but keep in mind that SSHD can be configured to listen on any port.
There are many websites out there which will either list random, anonymous proxies (These come and go quickly!) or provide you a proxy service, similar to VPN providers. These typically provide less security protection than an ssh tunneled proxy; but are easier to set up, as they don’t require you to have a pre-configured server outside the network.
Common TCP ports to firewall are: 8080, 1080, 3128, 8081, 843.
These can also be blocked with DNSFilter’s “Proxy and Filter Avoidance” Threat Category.
Quickly searching the Internet, you can come across websites which will proxy other website content for you. Alternative versions of this include archive.org, google cache, and translation services.
This typically only works for text and image-based site content; and not interactive applications which require authentication.
These services cannot be "firewalled", as they operate on ports 80 and 443, but you can restrict access to some of them with DNSFilter’s “Translation Sites” Threat Category.
As a last-ditch effort on very restrictive networks, some folks will try to tunnel their traffic through other protocols not designed to handle traffic.
In my experience these are fun to play with, and you could leak small amounts of data, but they’re impractical for standard Internet use due to low bandwidth and high latency.
DNSFilter's content filtering can detect and block DNS Tunneling attempts through our recursive resolvers.
Certainly there are other prevention measures, and other means of getting around protected networks, but this covers the most common methods. Keep in mind that Security is typically best in an onion-layers of security model: One prevention method will not be 100% effective 100% of the time, but you can increase the hurdles you put in front of malicious users or attackers by implementing some of these methods.