├── .gitattributes ├── .github ├── FUNDING.yml ├── docs │ ├── domain-routing.svg │ └── ip-routing.svg └── workflows │ └── build-ci.yml ├── .gitignore ├── .idea ├── .gitignore ├── keenetic-pbr-go.iml ├── modules.xml └── vcs.xml ├── LICENSE ├── Makefile ├── README.en.md ├── README.md ├── VERSION ├── go.mod ├── go.sum ├── keen-pbr.example.conf ├── lib ├── commands │ ├── apply.go │ ├── apply_test.go │ ├── common.go │ ├── dns.go │ ├── dnsmasq_config.go │ ├── download.go │ ├── interfaces.go │ ├── self_check.go │ ├── undo.go │ └── upgrade_config.go ├── config │ ├── config.go │ ├── config_test.go │ ├── types.go │ ├── types_test.go │ ├── validator.go │ └── validator_test.go ├── hashing │ ├── md5proxy.go │ └── md5proxy_test.go ├── keenetic │ ├── common.go │ ├── rci.go │ └── rci_test.go ├── lists │ ├── common.go │ ├── common_test.go │ ├── dnsmasq_generator.go │ ├── domain_store.go │ ├── domain_store_test.go │ ├── downloader.go │ ├── downloader_test.go │ ├── hash_comparator.go │ ├── hash_comparator_test.go │ └── ipset_importer.go ├── log │ ├── logger.go │ └── logger_test.go ├── networking │ ├── config_checker.go │ ├── config_checker_test.go │ ├── interfaces.go │ ├── iproute.go │ ├── iproute_test.go │ ├── iprule.go │ ├── ipset.go │ ├── iptables.go │ ├── iptables_test.go │ ├── mocks_test.go │ ├── network.go │ ├── network_test.go │ └── shell.go └── utils │ ├── bitset.go │ ├── bitset_test.go │ ├── files.go │ ├── files_test.go │ ├── ips.go │ ├── ips_test.go │ ├── paths.go │ ├── paths_test.go │ ├── validator.go │ └── validator_test.go ├── main.go ├── package ├── entware │ └── keen-pbr │ │ ├── Makefile │ │ ├── conffiles │ │ ├── postinst │ │ └── postrm └── etc │ ├── cron.daily │ └── 50-keen-pbr-lists-update.sh │ ├── dnsmasq.conf.keen-pbr │ ├── dnsmasq.d │ └── 100-keen-pbr.conf │ ├── init.d │ └── S80keen-pbr │ ├── keen-pbr │ ├── defaults │ ├── keen-pbr.conf │ └── local.lst │ └── ndm │ ├── ifstatechanged.d │ └── 50-keen-pbr-routing.sh │ └── netfilter.d │ └── 50-keen-pbr-fwmarks.sh ├── packages.mk └── repository.mk /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/docs/domain-routing.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.github/docs/domain-routing.svg -------------------------------------------------------------------------------- /.github/docs/ip-routing.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.github/docs/ip-routing.svg -------------------------------------------------------------------------------- /.github/workflows/build-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.github/workflows/build-ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.idea/.gitignore -------------------------------------------------------------------------------- /.idea/keenetic-pbr-go.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.idea/keenetic-pbr-go.iml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/Makefile -------------------------------------------------------------------------------- /README.en.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/README.en.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/README.md -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 2.2.2 2 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/go.sum -------------------------------------------------------------------------------- /keen-pbr.example.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/keen-pbr.example.conf -------------------------------------------------------------------------------- /lib/commands/apply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/apply.go -------------------------------------------------------------------------------- /lib/commands/apply_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/apply_test.go -------------------------------------------------------------------------------- /lib/commands/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/common.go -------------------------------------------------------------------------------- /lib/commands/dns.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/dns.go -------------------------------------------------------------------------------- /lib/commands/dnsmasq_config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/dnsmasq_config.go -------------------------------------------------------------------------------- /lib/commands/download.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/download.go -------------------------------------------------------------------------------- /lib/commands/interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/interfaces.go -------------------------------------------------------------------------------- /lib/commands/self_check.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/self_check.go -------------------------------------------------------------------------------- /lib/commands/undo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/undo.go -------------------------------------------------------------------------------- /lib/commands/upgrade_config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/commands/upgrade_config.go -------------------------------------------------------------------------------- /lib/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/config.go -------------------------------------------------------------------------------- /lib/config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/config_test.go -------------------------------------------------------------------------------- /lib/config/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/types.go -------------------------------------------------------------------------------- /lib/config/types_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/types_test.go -------------------------------------------------------------------------------- /lib/config/validator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/validator.go -------------------------------------------------------------------------------- /lib/config/validator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/config/validator_test.go -------------------------------------------------------------------------------- /lib/hashing/md5proxy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/hashing/md5proxy.go -------------------------------------------------------------------------------- /lib/hashing/md5proxy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/hashing/md5proxy_test.go -------------------------------------------------------------------------------- /lib/keenetic/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/keenetic/common.go -------------------------------------------------------------------------------- /lib/keenetic/rci.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/keenetic/rci.go -------------------------------------------------------------------------------- /lib/keenetic/rci_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/keenetic/rci_test.go -------------------------------------------------------------------------------- /lib/lists/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/common.go -------------------------------------------------------------------------------- /lib/lists/common_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/common_test.go -------------------------------------------------------------------------------- /lib/lists/dnsmasq_generator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/dnsmasq_generator.go -------------------------------------------------------------------------------- /lib/lists/domain_store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/domain_store.go -------------------------------------------------------------------------------- /lib/lists/domain_store_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/domain_store_test.go -------------------------------------------------------------------------------- /lib/lists/downloader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/downloader.go -------------------------------------------------------------------------------- /lib/lists/downloader_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/downloader_test.go -------------------------------------------------------------------------------- /lib/lists/hash_comparator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/hash_comparator.go -------------------------------------------------------------------------------- /lib/lists/hash_comparator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/hash_comparator_test.go -------------------------------------------------------------------------------- /lib/lists/ipset_importer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/lists/ipset_importer.go -------------------------------------------------------------------------------- /lib/log/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/log/logger.go -------------------------------------------------------------------------------- /lib/log/logger_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/log/logger_test.go -------------------------------------------------------------------------------- /lib/networking/config_checker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/config_checker.go -------------------------------------------------------------------------------- /lib/networking/config_checker_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/config_checker_test.go -------------------------------------------------------------------------------- /lib/networking/interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/interfaces.go -------------------------------------------------------------------------------- /lib/networking/iproute.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/iproute.go -------------------------------------------------------------------------------- /lib/networking/iproute_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/iproute_test.go -------------------------------------------------------------------------------- /lib/networking/iprule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/iprule.go -------------------------------------------------------------------------------- /lib/networking/ipset.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/ipset.go -------------------------------------------------------------------------------- /lib/networking/iptables.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/iptables.go -------------------------------------------------------------------------------- /lib/networking/iptables_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/iptables_test.go -------------------------------------------------------------------------------- /lib/networking/mocks_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/mocks_test.go -------------------------------------------------------------------------------- /lib/networking/network.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/network.go -------------------------------------------------------------------------------- /lib/networking/network_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/network_test.go -------------------------------------------------------------------------------- /lib/networking/shell.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/networking/shell.go -------------------------------------------------------------------------------- /lib/utils/bitset.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/bitset.go -------------------------------------------------------------------------------- /lib/utils/bitset_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/bitset_test.go -------------------------------------------------------------------------------- /lib/utils/files.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/files.go -------------------------------------------------------------------------------- /lib/utils/files_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/files_test.go -------------------------------------------------------------------------------- /lib/utils/ips.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/ips.go -------------------------------------------------------------------------------- /lib/utils/ips_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/ips_test.go -------------------------------------------------------------------------------- /lib/utils/paths.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/paths.go -------------------------------------------------------------------------------- /lib/utils/paths_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/paths_test.go -------------------------------------------------------------------------------- /lib/utils/validator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/validator.go -------------------------------------------------------------------------------- /lib/utils/validator_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/lib/utils/validator_test.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/main.go -------------------------------------------------------------------------------- /package/entware/keen-pbr/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/entware/keen-pbr/Makefile -------------------------------------------------------------------------------- /package/entware/keen-pbr/conffiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/entware/keen-pbr/conffiles -------------------------------------------------------------------------------- /package/entware/keen-pbr/postinst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/entware/keen-pbr/postinst -------------------------------------------------------------------------------- /package/entware/keen-pbr/postrm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/entware/keen-pbr/postrm -------------------------------------------------------------------------------- /package/etc/cron.daily/50-keen-pbr-lists-update.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/cron.daily/50-keen-pbr-lists-update.sh -------------------------------------------------------------------------------- /package/etc/dnsmasq.conf.keen-pbr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/dnsmasq.conf.keen-pbr -------------------------------------------------------------------------------- /package/etc/dnsmasq.d/100-keen-pbr.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/dnsmasq.d/100-keen-pbr.conf -------------------------------------------------------------------------------- /package/etc/init.d/S80keen-pbr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/init.d/S80keen-pbr -------------------------------------------------------------------------------- /package/etc/keen-pbr/defaults: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/keen-pbr/defaults -------------------------------------------------------------------------------- /package/etc/keen-pbr/keen-pbr.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/keen-pbr/keen-pbr.conf -------------------------------------------------------------------------------- /package/etc/keen-pbr/local.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/keen-pbr/local.lst -------------------------------------------------------------------------------- /package/etc/ndm/ifstatechanged.d/50-keen-pbr-routing.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/ndm/ifstatechanged.d/50-keen-pbr-routing.sh -------------------------------------------------------------------------------- /package/etc/ndm/netfilter.d/50-keen-pbr-fwmarks.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/package/etc/ndm/netfilter.d/50-keen-pbr-fwmarks.sh -------------------------------------------------------------------------------- /packages.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/packages.mk -------------------------------------------------------------------------------- /repository.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maksimkurb/keen-pbr/HEAD/repository.mk --------------------------------------------------------------------------------