Giter Club home page Giter Club logo

blocklists's Introduction

This repository is a collection of DNS-based blocklists that can be set at rethinkdns/configure for use with any DNS over HTTPS client, like the RethinkDNS + Firewall android app. As of 2021, close to 200 blocklists are supported totaling 5.5 million domain name entries.

To add a new blocklist fork and edit blocklistConfig.json, and a new entry which looks like this:

    {
        "vname": "OISD (full)",
        "format": "domains",
        "group": "privacy",
        "subg": "rethinkdns-recommended",
        "url": "https://raw.githubusercontent.com/ookangzheng/dbl-oisd-nl/master/dbl.txt"
    }
  1. vname

    • a string, human-readable name of the blocklist.
    • may be empty, but preferably not.
  2. format

    • a non-empty string, identifies a particular blocklist file-format.
    • supported file-formats: domains, hosts, abp.
  3. group

    • a non-empty string, buckets blocklists into a group.
    • current in-use groups are: privacy, security, parentalcontrol.
  4. subg

    • a string, further buckets blocklists into a sub-group within a group.
    • examples of some sub-groups: gambling, dating, piracy, porn, social-networks, affiliate-tracking-domain, threat-intelligence-feeds.
    • may be empty, but preferably not.
  5. url

    • a non-empty string, points to a url where the blocklist exists.
    • should be a well-formed http url; example: https://fanboy.co.nz/r/fanboy-ultimate.txt.

Submit a pull-request of your fork to have it considered for an inclusion in the default RethinkDNS implementation of both the client and the resolver.

Development

If you're a developer looking to experiment with the code-base or generate your own compressed blocklist, read on.

  1. Download blocklist files.
        # this python-script parses `blocklistConfig.json` and downloads corresponding
        # blocklists in to `./blocklistfiles` directory.
        python3 download.py
  2. Create and upload to S3; a compressed, compact radix-trie of domains present in downloaded blocklists.
        # this nodejs script parses downloaded files in the ./blocklistfiles directory to create
        # a compressed, compact radix-trie and related files in the ./result directory.
        node --max-old-space-size=12288 build.js
  3. Upload to S3
        # set aws environment variables for ubuntu/mac, like so:
        export AWS_ACCESS_KEY = "access-key with s3 permissions"
        export AWS_SECRET_ACCESS_KEY = "secret-key with s3 permissions"
        export AWS_BUCKET_NAME = "s3 bucket-name to upload the files to"
        # environment variable for windows like so:
        set AWS_ACCESS_KEY = "aws access key to acccess s3"
        set AWS_SECRET_ACCESS_KEY = "aws secret key to access s3"
        set AWS_BUCKET_NAME = "aws bucket name where files to be uploaded"
        # installs the aws-sdk for nodejs
        npm install aws-sdk
        # this nodejs script uploads compact radix-trie files in ./result directory to the specified S3 bucket.
        node upload.js

blocklists's People

Contributors

arfshl avatar badmojr avatar bongochong avatar elliotwutingfeng avatar ignoramous avatar mtxadmin avatar santhosh-ponnusamy avatar shuvashish76 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.