I’m reiterating this request here, even though I’ve also posted it on the campaign page a while back, so that other users can contribute or show their support for the idea.
I think that network-level ad-blocking would be particularly useful for mobile devices, smart TVs and other devices that include a browser, but for which ad-blocking solutions are lacking. Chrome on Android doesn’t support extensions, so the Firefox-based AdBlockPlus browser is the only viable solution for browsing without being bombarded by scamy and persistent ads that try to push dodgy performance or security apps through fake warnings: “your phone’s battery is damaged”, “you phone is insecure”, “your phone is slow,” etc. Also browser-based ad blocking doesn’t block the ads displayed inside other apps, the majority of which are served over HTTP and are vulnerable to man-in-the-middle modification.
The benefit of network-based ad blocking is also that since these routers will support OpenVPN servers you can VPN back into your own network whenever you take the mobile device outside the house too and have the ad blocking applied at all times.
As far as implementation goes it shouldn’t be too difficult. The EasyList that’s at the core of AdBlockPlus filtering is GPL and can be converted for something like privoxy, or maybe even an nginx-based transparent proxy. It just needs converting on a regular basis and kept up to date. A privoxy-based example is available for asuswrt-merlin via entware: https://github.com/RMerl/asuswrt-merlin/wiki/How-to-use-Adblock-Plus-filter-subscriptions-to-provide-advertisement-filtering-to-devices
Another option is DNS-based ad-blocking, like Pi-Hole for RPi: https://github.com/jacobsalmela/pi-hole DNS-based ad-blocking might be less effective and prone to false positives (blocking more than ads), it’s more efficient in terms of resource use (no proxy that has to do real-time filtering) and it’s harder for the site to detect that you used ad-blocking (some sites detect adblockers and refuse to show the content).
Yes, I know that technically users can implement these themselves if they wish, but it would be much more useful to have it as a service/feature that gets updated and maintained by the Turris team, instead of having users manually check for filter list updates, etc.