Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different client filter configuration #435

Open
Kleinhirn opened this issue Oct 26, 2018 · 57 comments
Open

Different client filter configuration #435

Kleinhirn opened this issue Oct 26, 2018 · 57 comments

Comments

@Kleinhirn
Copy link

Hi,

is it possible to add a function for different client filter configuration.
I want to set different filters for my pc`s in network - do you can make this?

  • childen pc with parent control
  • different filter for PC/Laptop/Smartphone

Thanks

@AnthonyBe
Copy link

Was thinking same.

Specifically around children, being able to group their devices by MAC address and then provide the additional safe search and parental control settings on that group.

@alexsannikov
Copy link

That would be great to have specific settings for specific device based on devicename/MAC/IP.
I would apply Parent control & multiple filtering lists for kid's tablet, but allowed some resources for my smart or PC.

@Orava2
Copy link

Orava2 commented Apr 4, 2019

I would like to set different upstream DNS servers for children and adults.

@ameshkov
Copy link
Member

ameshkov commented Apr 6, 2019

So here's what is requested:

  1. General settings (browsing security / safe search / parental control) per client
  2. Different filters per client
  3. Different DNS servers per client

Number 1 is relatively easy. 2 and 3 are quite harder, though.

@ameshkov
Copy link
Member

ameshkov commented Jun 7, 2019

Number 1 is done: #727

@vtolstov
Copy link

vtolstov commented Jan 4, 2020

Any ETA for this issue ?

@ameshkov
Copy link
Member

ameshkov commented Jan 6, 2020

@vtolstov 1 and 3 are done.

What for 2, most likely we'll use a different approach to it -- see #1081

@ameshkov ameshkov closed this as completed Jan 6, 2020
@ameshkov ameshkov reopened this Jan 6, 2020
@ghost
Copy link

ghost commented Jan 6, 2020

#1081 https://github.com/AdguardTeam/AdGuardHome/wiki/Hosts-Blocklists#-ctag
Offer an option to add single or several tags for whole filter list then we can assign them for clients

@ameshkov
Copy link
Member

ameshkov commented Mar 5, 2022

Yes, there is:)

@zzyonn
Copy link

zzyonn commented Mar 5, 2022

Upgraded to 0.108 Beta, but not found this possibility :s

@ameshkov
Copy link
Member

ameshkov commented Mar 5, 2022

There is a chance, it's not done yet:)

@zzyonn
Copy link

zzyonn commented Mar 5, 2022

There is a chance, it's not done yet:)

Oupss sorry, my bad ..

@privacy-advo
Copy link

It's been almost 4 years. It would be great to finally see the feature.
v0.107.16? 👍

@useronegit
Copy link

I really hope it will be added soon, for me it would be the best feature for Adguard Home

@privacy-advo
Copy link

privacy-advo commented Nov 20, 2022

+1
@ameshkov, is there a way the community could make it happen?

@gyCfjSnO

This comment was marked as off-topic.

@privacy-advo

This comment was marked as off-topic.

@Knot3n

This comment was marked as duplicate.

@gyCfjSnO

This comment was marked as duplicate.

@AnthonyBe

This comment was marked as off-topic.

@Knot3n

This comment was marked as duplicate.

@adrianmihalko

This comment was marked as duplicate.

@bvandevliet

This comment was marked as duplicate.

@gyCfjSnO

This comment was marked as duplicate.

@lux5am
Copy link

lux5am commented Jan 1, 2024

I want this too. I want unknown devices to be unfiltered. My own devices with much aggressive AdBlock list. Some grandma certified AdBlock list for some known devices. Adult/gambling for others and so on. Currently it's not possibly, there's only 1 toggle to enable/disable global filters and custom filters. I setup nextdns server just for this at the moment.

@RainmakerRaw
Copy link

Six years later... It's such a shame, because per-client filter list selection is the one killer feature AGH is missing. I ended up giving up, and now run Blocky on my LAN. It too is a single GO binary, one static YAML file, and I can list filters and assign clients or groups to them. Now ads and malware are blocked by default, but for kids also gambling, NSFW, enforced safesearch and piracy sites are blocked. I really hope you guys manage to finally integrate this some day, whether in the current AGH or the (at some point) AG DNS based rewrite.

@privacy-advo
Copy link

Six years later... It's the one killer feature AGH is missing.

@ameshkov @ainar-g
Any chance we will see this? Maybe even a cancellation would help people. We really are waiting for it.

@ainar-g
Copy link
Contributor

ainar-g commented Feb 5, 2024

It is still planned. The main challenge is that the current filtering infrastructure is not designed to work with any custom engines. The design for a new system is ongoing, but it's still a challenge, as there are a lot of things to take into account, including some of the features being in conflict with each other. Simply copying filtering engines for each client would increase RAM consumption, for example, and we're already having issues reported about that every once in a while. Additionally, there are requirements of thread safety and general performance, e.g. filters updating must not block DNS processing for all other clients or that two clients shouldn't end up with different snapshots of the same filter.

In the meantime, there are workarounds:

  • The blocked services feature has had an upgrade, and in case some following this issue had missed that, you can assign blocked services per-client and also schedule them. So blocking e.g. TikTok during a certain time of day has been possible for a few months now.
  • The $client filtering-rule syntax also still works, and if you don't have that many rules, you can put them into a list.

@AnthonyBe
Copy link

Thanks @ainar-g , appreciate the explanation.

Equally, AG 'made' this problem by building some key features of AGH's functionality around the presumption of people using it's built-in DHCP server. Ironically, the built-in DHCP server cannot be used by users of AGH on Windows (feature not supported), so this isn't even a matter of choice as to whether to use AGH DHCP (yes, I could choose to use a different OS, but that is now compounding a bigger problem/solution).

Your community of users (including myself here #961) flagged this back in 2019, as a design direction that would create a lot of limitations (to put it politely :) ). There was ample time and opportunity to change course of AGH development. But you didn't. So, here we (still) are.

I am in no way implying that this is an easy problem to solve. I've been using AG products for a lot of years and I know you don't shy away from tough challenges. I imagine this is a conversation that more likely resolved around time, effort, priority, ROI, breadth of benefit, etc. I've worked in IT most of my life, so I get it. I am half-expecting the "we need to re-write the AGH code from scratch, to fix this, pull in a lot of the on-going development features from the public AG DNS product, and allow AGH and AG DNS to share common feature through more common code between the products".

@privacy-advo
Copy link

Thanks @ainar-g
I'm very happy about $client. Not being able to use different configs made me write a 5k+ regex $client list myself over the years. : )
Nevertheless this eats up a lot of time, highly anticipate the feature. Good to hear it's still on the horizon.

(If AG paid DNS wouldn't have a 1k limit, I would use it. But when using default deny, 1k is not enough.)

@hoang-rio
Copy link
Contributor

I'm try implementting this feature by my self at https://github.com/abpvn/AdGuardHome/releases
This implement just like run multiple AdGuardHome server by clone current filtering engine per client. It's will got performance issue (memory leak, high CPU ussage) when running with a lot of client.

Someone does not enough pattient to waiting for new optimized filtering engine for per client filter list can try my implement. It's not the best but it work

@ubergeek77
Copy link

ubergeek77 commented Nov 5, 2024

Would it be reasonable in the current filtering system to, say:

  • Spin up my own custom service that pulls an upstream blocklist, adds a $client of my choice to each entry, then returns the result as text
  • Put the URL of this custom service in AGH as a blocklist, instead of the "real" blocklist
  • AGH now treats this as a blocklist, it will act as though every entry has the client I want, with the benefit of regular blocklist updates still working

Is that the best approach for now, or is $client an expensive operation that should only be used sparingly?

Happy to hear any clever workarounds people have thought of as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests