Show HN: Chomper – An Internet Blocker for Linux
github.com
github.com
However, neither of these programs support Linux, and the only similar program hasn't been developed in over 7 years (http://svn.jklmnop.net/projects/SelfControl.html). So, I wrote Chomper. Any feedback is appreciated, but what's most useful is if you try installing it and tell me if you like it!
1. It's browser independent. You have to import security certificates for each browser, but this is a step which will eventually be automated (https://github.com/aniketpanjwani/chomper/issues/8).
2. In both Firefox and Chrome, you can enter Private Browsing/Incognito mode, where extensions are automatically disabled, so you'll be able to evade blocks. It doesn't matter if you're in incognito mode while Chomper is running - you'll still get blocked.
3. It's usually trivially easy to disable or uninstall browser extensions. Chomper is marginally more difficult to disable when you have root privileges. However, unlike browser extensions, you have the option of tying your hands so that it is entirely impossible to remove a block (https://github.com/aniketpanjwani/chomper#hardcore-mode).
You severely underestimate us procrastinators. We'd sooner wipe our disk than work. ;-)
1. Would it be possible to do this through mitmproxy? You are the person to ask, after all :P .
2. Does this approach allow you to also filter sites which use certificate pinning? That seems more important, since it would be a practical advantage, rather than simply more convenient installation.
3. Could you filter at the URL level with SNI, e.g. block amazon.com/gp/video/*, but not block the rest of amazon.com? From what I've just started reading about SNI, you would only see "amazon.com" and nothing else.
2. I think this should answer it: http://docs.mitmproxy.org/en/stable/features/passthrough.htm...
3. No, you only see the hostname.
There are some websites which due to certificate pinning will not be properly filtered through the proxy (http://docs.mitmproxy.org/en/stable/certinstall.html#certifi...). For example, while Chomper is running, even if Dropbox is not on a blacklist, it probably will not properly sync. Eventually, I'll add the ability to make exceptions for these websites if desired.
It's been ad-hoc tested on my computer and on a fresh Linux installation. There's really no components right now worth unit testing, since it was really just a lot of configuration work. Once I start adding more complicated filter rules, I'll write formal unit tests.
Does that answer your questions?
To be clear, compared to browsers you do loose some advanced mechanisms such as HPKP, Certificate Transparency log enforcement, Extended Validation certs, or revocation checking. I don't want to downplay this, but I would argue that this is not too significant for the average user, whereas mitmproxy is often a substantial improvement over what other non-browser software is doing.