How to use Chomper Internet blocker for Linux to increase productivity

last updated in Categories Command Line Hacks

Chomper is a free and open source Python cli for Linux desktop. It lets you block access to distracting websites for specified periods of time. The program is intended to help you with issues being productive on a desktop due to Internet distractions. One can set a period to block websites. Until that timer expires, you will be unable to access sites.

How to install Chomper Internet blocker for Linux desktop

Obviously, you must have Python 3.6 and pip3 installed on your system. For testing purpose I am using Ubuntu Linux 17.10. If pip3 is not installed, run the following apt command/apt-get command:
$ sudo apt install python3-pip -y
Install pipenv:
$ pip3 install --user pipenv
export PATH="$HOME/.local/bin:$PATH"

Clone the repo:
$ git clone https://github.com/aniketpanjwani/chomper.git
Type the following commands:
$ cd chomper
$ make init

Howto install Chomper Internet blocker for Linux to increase productivity
To activate this project’s virtualenv, run the following:
$ pipenv shell
mitmproxy is an interactive console program that allows traffic flows to be intercepted, inspected, modified and replayed. Type the following command to start proxy server:
$ mitmdump
Sample outputs:

Proxy server listening at http://*:8080

You need to exit mitmdump by pressing Ctrl-C. There should now be various certificate files in ~/.mitmproxy
$ ls -l ~/.mitmproxy
Sample outputs:

total 24
-rw-rw-r-- 1 vivek vivek 1318 Feb 20 11:30 mitmproxy-ca-cert.cer
-rw-rw-r-- 1 vivek vivek 1140 Feb 20 11:30 mitmproxy-ca-cert.p12
-rw-rw-r-- 1 vivek vivek 1318 Feb 20 11:30 mitmproxy-ca-cert.pem
-rw-rw-r-- 1 vivek vivek 2529 Feb 20 11:30 mitmproxy-ca.p12
-rw-rw-r-- 1 vivek vivek 3022 Feb 20 11:30 mitmproxy-ca.pem
-rw-rw-r-- 1 vivek vivek  770 Feb 20 11:30 mitmproxy-dhparam.pem

Next import these certificates to your web browser:

Google Chrome

Go to Settings > Advanced Settings > Manage Certificates > Authorities. Click import, select mitmproxy-ca.pem, tick all three boxes, and click OK.

Firefox

Go Preferences > Privacy and Security > Certificates > View Certificates > Authorities. Click import, select mitmproxy-ca.pem, tick all three boxes, and click OK.

Enable IPv4/IPv6 traffic forwarding

Edit /etc/sysctl.d/99-sysctl.conf file:
$ sudo vi /etc/sysctl.d/99-sysctl.conf
Make sure following entries are set/uncommented:
net.ipv6.conf.all_forwarding=1
net.ipv4.ip_forward=1

Reload the sysctl changes using the following command:
$ sudo sysctl -p

How to use Chomper

Simply use config file as follows:
$ cat ~/chomper/data/rules.yaml
Sample outputs:

coding:
  - block_type:
      - whitelist
  - addresses:
    - github.com/coleifer/peewee
    - stackoverflow.com
    - unix.stackexchange.com
    - aws.amazon.com
    - upwork.com
    - doc.peewee-orm.com
    - pandas.pydata.org
    - python.org
    - amazonaws.com
    - amazon.com/ap/signin
    - cloudfront.net
email:
  - block_type:
      - whitelist
  - addresses:
      - mail.google.com
allon:
  - block_type:
      - blacklist
  - addresses:
      - cyberciti.biz
alloff:
  - block_type:
      - whitelist 
  - addresses:
      - cyberciti.biz

Customize file as per your needs.

How to run script

Run it as follows to allow coding sites for 30 minutes and block everything else:
$ ~/chomper/bin/chomper coding 30
chomper-demo
Chomper is an Internet blocker for Linux desktop works, but it is not very user-friendly for new users. If you are a sysadmin or developer, it should be easy to set up. I am looking forward to seeing a GUI option for the Chomper. For more info see the official project github repo here.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 0 comments/add one below):