Parents control open source projects

I'm here to introduce my Parental Control Open Source project at https://github.com/gl-inet/parental-control. This project is currently integrated into the glinet 4.2.0 firmware or higher.

This project implements the following functions

  1. Manage device groups and dynamically adjust Internet access policies according to schedules.
  2. Support application feature identification
  3. Support temporary modification of Internet access policies
  4. Prohibit unmanaged devices from accessing the Internet

In the open source community, there are already many open source projects of this type, but some of them are too simple to realize the application of DPI, and some projects are too heavy and need to occupy a lot of resources. Therefore, I developed this project, which can realize simple and efficient DPI function without occupying a lot of hardware resources. This project works in kernel space, and almost all devices running openwrt system can work.

I have detailed how to use this project in the project readme. If you have any questions, you can directly give feedback on github.

3 Likes

Seems nice, thanks for sharing and great work, Currently is there any webui / web interface with luci exist?.

What is parental_control.lua ? , is it for luci ?

hi,

this looks very interesting! may i have some questions/comments pls:

  • here an app can have only three features or there is no such limit? [and there seems to be a typo/formatting problem regarding comma],
  • here similar question: dict feature is limited to 3 elements only, or what seems later to be the case that it is not limited, so maybe 1,2, .. N syntax would be clearer,
  • host/domain name fuzzy logic - could you please elaborate? you mean a matching substring is enough to mark a domain name? is there any kind of shorter/longer matching differentiation? i.e. www.example.com vs www.sub.example.com vs example.com, can i distinguish any sub-domain of example.com from example.com? like https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html -S syntax where more specific domains take precedence over less specific domains?
  • host/domain name - do you do real DNS resolution and follow-up tracking? i.e. in case of a service using CDN, are you track somehow the leaf host as well which is different than the original high level domain name so a) the original domain filter will not match and b) it is dynamic so might not be easy to find a matching rule?

thank you!

parental_control.lua is use for glinet UI.
luci doesn't have a UI yet, but I'll add one.

Are you going to send the PR to the main openwrt repo?

There is no limit on the number of feature and dict.

I've added comments and written examples in the readme

I get the domain name from the request protocol of http or https and match it, so it has nothing to do with DNS.

I think this project does not meet the requirements of openwrt at present, and I will do it if there is a chance in the future.

thank you! so your solution relies on http, thanks for clarification.