block

package module
v0.0.0-...-31b32bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

README

block

Name

block - blocks domains by using pi-hole's block lists.

Description

The block plugin will block any domain that is on the block lists. The block lists are downloaded on startup or otherwise once a week.

For a domain that is blocked we will return a NXDOMAIN response.

THIS IS A PROOF OF CONCEPT. IT IS NOT PRODUCTION QUALITY.

Syntax

block

Metrics

If monitoring is enabled (via the prometheus directive) the following metric is exported:

  • coredns_block_count_total{server} - counter of total number of blocked domains.

The server label indicates which server handled the request, see the metrics plugin for details.

Examples

Block all domain on the block list.

. {
  forward . 9.9.9.9
  block
}

On startup the block lists are downloaded, and assuming 005.example.org is on the list, it will be blocked, including any subdomains.

[INFO] plugin/block: Block lists updated: 226126 domains added
[INFO] plugin/block: Blocked 005.example.org.
[INFO] plugin/block: Blocked www.005.example.org.

Bugs

Block currently requires a working resolver to fetch the downloads. This should be re-worked to use the proxy/forwarder (if defined).

Documentation

Overview

Package example is a CoreDNS plugin that prints "example" to stdout on every packet received.

It serves as an example CoreDNS plugin with numerous code comments.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Block

type Block struct {
	sync.RWMutex

	Next plugin.Handler
	// contains filtered or unexported fields
}

Block is the block plugin.

func New

func New() *Block

func (*Block) Name

func (b *Block) Name() string

Name implements the Handler interface.

func (*Block) ServeDNS

func (b *Block) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the plugin.Handler interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL