How can I add static DNS entry in Debian and block some sites?

15,052

Solution 1

Easiest way is probably to use dnsmasq

Install dnsmasq

$ sudo apt-get install dnsmasq

and add this line to /etc/dnsmasq.conf

address=/deviantart.com/127.0.0.1

This will block deviantart.com and all its subdomains.

Note: For ubuntu see this post.

Solution 2

You cannot use wildcards in /etc/hosts. You will need to add every subhost separately.

Tell us more about the problem. Do you want to block traffic originating from your machine only, from the whole network? Only WWW traffic?

If you want to block all traffic to deviantart:

 host deviantart.com gives 199.15.160.100

 iptables -A OUTPUT -d 199.15.160.100 -j DROP

This will DROP all packages going to deviantart.com. This IP can change of course but you can check it periodically. If you want this to be persistent you would probably need to add this line to some /etc/rc.local script or appropriate for your distro.

Share:
15,052

Related videos on Youtube

nothing-special-here
Author by

nothing-special-here

Maciej Kowalski Freelance - Ruby / JRuby / Rails / Backbone / AngularJS / Ember.js

Updated on September 18, 2022

Comments

  • nothing-special-here
    nothing-special-here over 1 year

    OK I'm admin noob.

    Is there a way for adding static DNS entry?

    I already tried to modify /etc/hosts file but without success.

    Here is my hosts file:

    127.0.0.1   localhost
    127.0.1.1   hitsu
    127.0.1.1   www.deviantart.com
    127.0.1.1   deviantart.com
    127.0.1.1   www.youtube.com
    127.0.1.1   youtube.com
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    

    Eveyrything is fine, but when I enter for example adc.deviantart.com I still get the page.

    Is there a way to block that sites?

    I am trying to increase productivity in work via disabling off-topic sites.

    EDIT

    Well I would like to block all sites from deviantart something like

    127.0.0.1 *.deviantart.com

    Browser add-ons/extensions are a good solutions, but I use multiple browsers (chrome, opera etc) so it will be probably easier to block this in linux.

    EDIT #2

    There are some solutions for this problem eg https://github.com/leftnode/get-shit-done

    However it won't work for multidomains..

  • nothing-special-here
    nothing-special-here almost 11 years
    I want to block specific traffic only for my machine.
  • Darek
    Darek almost 11 years
    So you can add all subdomains to /etc/hosts or use iptables like in my eidt
  • nothing-special-here
    nothing-special-here almost 11 years
    I have edited my answer and added more info.
  • nothing-special-here
    nothing-special-here almost 11 years
    I don't know bash. Can I use Ruby or other dynamic languages at /etc/rc.local scripts? Do you other tools which can do the same job?
  • Darek
    Darek almost 11 years
    Nope. Just write there: /usr/sbin/iptables -A OUTPUT -d 199.15.160.100 -j DROP