Chomper: herramienta de línea de comandos para bloquear sitios web en Linux

Chomper es una herramienta de código abierto que se utiliza para crear una lista de sitios web que se incluirán en la lista negra o en la lista blanca durante la sesión de navegación de un usuario. Chomper es una herramienta basada en terminal escrita en Python. Esto significa que se opera completamente desde la terminal. El motivo detrás de su diseño es ayudar a las personas a evitar distracciones en Internet y concentrarse en visitar sitios web productivos durante las horas de trabajo y también ayuda a bloquear temporalmente sitios web en su escritorio Linux. Chomper también se puede utilizar como una herramienta de control parental, por ejemplo, para limitar los sitios visitados por los niños.

Cómo funciona Chomper

A diferencia de otros bloqueadores que usan el archivo de hosts de Linux para filtrar direcciones IP y nombres de dominio, Chomper filtra las solicitudes salientes a través de un proxy transparente. Esto hace que Chomper sea ideal para filtrar contenido web a nivel de URL. Lo que debe hacer es completar la lista de qué bloquear y qué incluir en la lista blanca, Chomper hará el resto por usted.

Instalación de Chomper en Linux

La única forma de instalar Chomper en este momento es compilándolo a partir del código fuente. Un requisito previo para esto es la instalación de git, make y cmake. Dado que esta configuración se realiza en Ubuntu 16.04, todos los departamentos instalados son específicos de Ubuntu.

$ sudo apt-get install git cmake build-essential curl python-pip

Una vez hecho esto, proceda a instalar pyenv. Para esto, evitaremos la instalación manual y usaremos un instalador en su lugar.

# curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 2099 100 2099 0 0 2011 0 0:00:01 0:00:01 --:--:-- 2012
Cloning into '/home/jmutai/.pyenv'
.....

Cargue pyenv automáticamente modificando ~ / .bash_profile Archivo:

$ vim ~/.bash_profile

Luego añade:

export PATH="/home/jmutai/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Para cargar el env manualmente, obtenga el archivo en su sesión actual.

$ source ~/.bash_profile
$ pyenv versions
* system (set by /home/jmutai/.pyenv/version)

Clonar Chomper de git.

$ git clone https://github.com/aniketpanjwani/chomper.git
$ cd chomper
$ make init

El hacer init El comando descargará paquetes específicos de chomper y preparará el entorno. Si opta por instalar CPython 3.6, es posible que tarde unos minutos en finalizar la configuración. Entonces deberías ver:

To activate this project's virtualenv, run the following:
$ pipenv shell
....

Ahora inicie shell:

$ pipenv shell
$ mitmdump
# mitmdump
Proxy server listening at https://*:8080

Una vez que mitmdump comience por primera vez, salga de él usando una combinación de teclas: [ Ctrl+C Ctrl+C ]. Se generarán varios archivos de certificados.

# ls ~/.mitmproxy
mitmproxy-ca-cert.cer mitmproxy-ca-cert.pem mitmproxy-ca.pem
mitmproxy-ca-cert.p12 mitmproxy-ca.p12 mitmproxy-dhparam.pem

Necesitas importar mitmproxy-ca.pem certificado a su navegador.

Chrome : Vaya a Configuración> Configuración avanzada> Administrar certificados> Autoridades. Haga clic en Importar, seleccione mitmproxy-ca.pem, marque las tres casillas y haga clic en Aceptar

Firefox: Vaya a Preferencias> Privacidad y seguridad> Certificados> Ver certificados> Autoridades. Haga clic en Importar, seleccione mitmproxy-ca.pem, marque las tres casillas y haga clic en Aceptar.

Lo siguiente que debe hacer es habilitar el reenvío de IP.

# vim /etc/sysctl.d/99-sysctl.conf

Agregar:

net.ipv4.ip_forward=1
net.ipv6.conf.all_forwarding=1

Save y luego ejecuta:

# sysctl -p

Usando Chomper

Chomper se configura utilizando archivos de sintaxis YAML con tres niveles.

  • El primer nivel define los nombres de las reglas.
  • El segundo nivel define si una regla es una lista negra o una lista blanca.
  • El tercer nivel define las direcciones involucradas en una regla.

A continuación se muestra un archivo de configuración simple con algunas listas negras y listas blancas

$ cat data/rules.yaml
work_allow:
 - block_type:
     - whitelist
 - addresses:
     - linoxide.com
     - stackoverflow.com

work_block:
 - block_type:
     - blacklist
 - addresses:
     - facebook.com
     - twitter.com
     - youtube.com

Al ejecutar la aplicación chomper ubicada debajo compartimiento directorio, se requieren dos argumentos.

  • El nombre de la regla
  • El tiempo de bloque en minutos

Para example para ejecutar la regla work_block durante 20 minutos. Yo ejecutaré

# cd bin
# ./chomper work_block 20
New block in effect until 2018-02-20 23:34:08.

Esta regla bloquea sitios web específicos. Intente acceder a cualquiera de los sitios enumerados. Debería recibir un mensaje de banner que diga “¡El sitio web ha sido bloqueado por Chomper! “.

Conclusión

Hemos cubierto todas las cosas clave que necesita para comenzar a usar Chomper. Esta herramienta parece interesante. Todavía está fresco pero en desarrollo activo. La versión actual solo funciona para sistemas Linux, pero el desarrollador tiene como objetivo entregar una versión para MacOS y una GUI para ella. Disfruta usando Chomper.