个人工具

“UbuntuHelp:MoBlock”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示同一用户的10个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/MoBlock}}
 
{{From|https://help.ubuntu.com/community/MoBlock}}
 
{{Languages|UbuntuHelp:MoBlock}}
 
{{Languages|UbuntuHelp:MoBlock}}
MoBlock is an application that enables you to block internet traffic based on large lists of IP address ranges in order to protect your privacy. It uses a file in PeerGuardian format (guarding.p2p).
+
MoBlock is an application that enables you to block internet traffic based on large lists of IP address ranges in order to protect your privacy. It uses a file in PeerGuardian format (guarding.p2p) or an ipfilter.dat.
There are plans to make it the official PeerGuardian for Linux.
+
The [http://sourceforge.net/projects/peerguardian/develop upcoming PeerGuardian for Linux] is based on the MoBlock fork NFBlock, blockcontrol and mobloquer.
Note: Firestarter and most iptables firewalls do not work with MoBlock. If you want a firewall that works with MoBlock, you can try FireHOL. See the '''[http://ubuntuforums.org/showpost.php?p=1114891&postcount=1 instructions for FireHOL users]''' (scroll down). You may also try '''[http://iplist.sourceforge.net/ iplist]''' by '''[http://forums.phoenixlabs.org/member.php?u=8022 uljanow]'''.  Also consider that routers can make software firewalls on your computer redundant.
+
Note: Since version 0.9 RC1 MoBlock no longer conflicts with other firewalls. But you have to make sure that MoBlock is started after them and the iptables rules don't get changed later. You may also try '''[http://iplist.sourceforge.net/ iplist]''' by '''[http://forums.phoenixlabs.org/member.php?u=8022 uljanow]'''.  Also consider that routers can make software firewalls on your computer redundant.
 
== Add Repository ==
 
== Add Repository ==
 
=== Add the correct gpg key to the apt keyring ===
 
=== Add the correct gpg key to the apt keyring ===
All repositories use this. In terminal, type the following.
+
For '''hardy''' and '''intrepid''' type the following in terminal '''(there´s a new key since 2009-08-20)''':
 
<pre><nowiki>
 
<pre><nowiki>
gpg --keyserver wwwkeys.eu.pgp.net --recv 9072870B
+
gpg --keyserver wwwkeys.eu.pgp.net --recv 58712F29
gpg --export --armor 9072870B | sudo apt-key add -
+
gpg --export --armor 58712F29 | sudo apt-key add -
 +
</nowiki></pre>
 +
For '''jaunty and and later versions''' type the following in terminal:
 +
<pre><nowiki>
 +
gpg --keyserver keyserver.ubuntu.com --recv 9C0042C8
 +
gpg --export --armor 9C0042C8 | sudo apt-key add -
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Add specific repository for release ===
 
=== Add specific repository for release ===
You must use a repository for your specific release (i.e. Ubuntu 7.10)
+
You have to add the repository sources to your /etc/apt/sources.list:
==== Ubuntu 7.10 ("Gutsy Gibbon") 32-bit ====
+
Add to /etc/apt/sources.list
+
 
<pre><nowiki>
 
<pre><nowiki>
deb http://moblock-deb.sourceforge.net/debian gutsy main
+
gksu gedit /etc/apt/sources.list
deb-src http://moblock-deb.sourceforge.net/debian gutsy main
+
 
</nowiki></pre>
 
</nowiki></pre>
==== Ubuntu 7.04 ("Feisty Fawn") 32-bit ====
+
In Kubuntu, replace gksu with kdesu.
Add to /etc/apt/sources.list
+
Add the two lines for your specific release (i.e. Ubuntu 9.04):
 +
==== Ubuntu 10.04 ("Lucid Lynx") 32-bit and 64-bit ====
 
<pre><nowiki>
 
<pre><nowiki>
deb http://moblock-deb.sourceforge.net/debian feisty main
+
deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu lucid main
deb-src http://moblock-deb.sourceforge.net/debian feisty main
+
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu lucid main
 
</nowiki></pre>
 
</nowiki></pre>
==== Ubuntu 6.10 ("Edgy Eft") 32-bit ====
+
==== Ubuntu 9.10 ("Karmic Koala") 32-bit, 64-bit and lpia ====
These instructions are currently broken, most likely due to a a bug in lsb init-functions (lsb-base).
+
Add to /etc/apt/sources.list
+
 
<pre><nowiki>
 
<pre><nowiki>
deb http://moblock-deb.sourceforge.net/debian etch main
+
deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu karmic main
deb-src http://moblock-deb.sourceforge.net/debian etch main
+
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu karmic main
 
</nowiki></pre>
 
</nowiki></pre>
==== Ubuntu 6.06 ("Dapper Drake") 32-bit ====
+
==== Ubuntu 9.04 ("Jaunty Jackalope") 32-bit, 64-bit and lpia ====
These instructions have not been confirmed to work. Please report in '''[http://ubuntuforums.org/showthread.php?t=192559 this thread]''' if they are valid.
+
Add to /etc/apt/sources.list
+
 
<pre><nowiki>
 
<pre><nowiki>
deb http://moblock-deb.sourceforge.net/debian etch main
+
deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu jaunty main
deb-src http://moblock-deb.sourceforge.net/debian etch main
+
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu jaunty main
 
</nowiki></pre>
 
</nowiki></pre>
==== 64-bit packages ====
+
==== Ubuntu 8.10 ("Intrepid Ibex") 32-bit and 64-bit ====
These repositories do not contain 64-bit packages. You can either create your own from source or use a user-built packages.
+
===== Ubuntu 7.10 ("Gutsy Gibbon") =====
+
Ubuntu 7.10 64-bit '''[http://ubuntuforums.org/attachment.php?attachmentid=50321&d=1195167855 moblock-nfq package]''' 0.8-29 (Hosted by Ubuntu Forums)
+
===== Ubuntu 7.04 ("Feisty Fawn") =====
+
Ubuntu 7.04 64-bit '''[http://moblock-deb.sourceforge.net/moblock-nfq_0.8-21+feisty_amd64.deb moblock-nfq package]''' 0.8-21
+
== Package Installation ==
+
=== Using Repositories ===
+
MoBlock checks traffic that is sent to the iptables QUEUE (deprecated) or NFQUEUE (new) target. So there are two packages, moblock-ipq and moblock-nfq. Depending on your package of choice you need either the ip_queue or xt_NFQUEUE kernel module loaded. Unless you have a Linux kernel older than 2.6.14, you should use the moblock-nfq package with the new target.
+
==== Ubuntu 7.10 ("Gutsy Gibbon") and Ubuntu 7.04 ("Feisty Fawn") ====
+
Add the repositories using the above instructions.
+
* Via '''[[UbuntuHelp:Synaptic|Synaptic Package Manager]]'''
+
* Via apt-get
+
 
<pre><nowiki>
 
<pre><nowiki>
sudo apt-get install moblock-nfq
+
deb http://moblock-deb.sourceforge.net/debian intrepid main
 +
deb-src http://moblock-deb.sourceforge.net/debian intrepid main
 
</nowiki></pre>
 
</nowiki></pre>
==== Ubuntu 6.10 ("Edgy Eft") ====
+
==== Ubuntu 8.04 ("Hardy Heron") 32-bit and 64-bit ====
These instructions are currently broken, most likely due to a a bug in lsb init-functions (lsb-base).
+
Add the repositories using the above instructions.
+
Then, you need to install two netfilter lib packages.
+
'''[http://www.ubuntuforums.org/attachment.php?attachmentid=20162&stc=1&d=1164741758 libnfnetlink]''' (Hosted by Ubuntu Forums)
+
'''[http://www.ubuntuforums.org/attachment.php?attachmentid=20163&stc=1&d=1164741758 libnetfilter-queue]''' (Hosted by Ubuntu Forums)
+
Finally, install the moblock-nfq package from the repository.
+
* Via '''[[UbuntuHelp:Synaptic|Synaptic Package Manager]]'''
+
* Via apt-get
+
 
<pre><nowiki>
 
<pre><nowiki>
sudo apt-get install moblock-nfq
+
deb http://moblock-deb.sourceforge.net/debian hardy main
 +
deb-src http://moblock-deb.sourceforge.net/debian hardy main
 
</nowiki></pre>
 
</nowiki></pre>
==== Ubuntu 6.06 ("Dapper Drake") ====
+
==== Special note for all Ubuntu distributions ====
These instructions have not been confirmed to work. Please report in '''[http://ubuntuforums.org/showthread.php?t=192559 this thread]''' if they are valid.
+
Make sure that the "universe" section is activated in your sources.list. You need something like this (replace YOURDIST with e.g. your distribution codename like hardy or karmic)
Add the repositories using the above instructions.
+
<pre><nowiki>
Then, you need to install two netfilter lib packages.
+
deb http://archive.ubuntu.com YOURDIST main universe
'''[http://www.ubuntuforums.org/attachment.php?attachmentid=20165&stc=1&d=1164742172 libnfnetlink]''' (Hosted by Ubuntu Forums)
+
</nowiki></pre>
'''[http://www.ubuntuforums.org/attachment.php?attachmentid=20166&stc=1&d=1164742172 libnetfilter-queue]''' (Hosted by Ubuntu Forums)
+
== Package Installation ==
Finally, install the moblock-nfq package from the repository.
+
Install the packages moblock and blockcontrol (previously moblock-control). If you want a graphical interface you can also install mobloquer.
 
* Via '''[[UbuntuHelp:Synaptic|Synaptic Package Manager]]'''
 
* Via '''[[UbuntuHelp:Synaptic|Synaptic Package Manager]]'''
* Via apt-get
+
* Via aptitude
 
<pre><nowiki>
 
<pre><nowiki>
sudo apt-get install moblock-nfq
+
sudo aptitude update
 +
sudo aptitude install moblock blockcontrol
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Compile a package ===
 
=== Compile a package ===
If you want to make your own MoBlock binary package from source and install it, you can use the following instructions. Most users will not need to compile a package, but this can be used for 64-bit packages (although user-built packages are provided above), or for an older release (you will also have to compile netfilter lib packages).
+
If you want to make your own MoBlock binary package from source and install it, you can use the following instructions. Most users will not need to compile a package, but this can be used for unsupported architectures or for an older release (you may also have to compile netfilter lib packages).
 
First, make sure you have added a source repository for your release. Then, run the following in terminal.
 
First, make sure you have added a source repository for your release. Then, run the following in terminal.
 
<pre><nowiki>
 
<pre><nowiki>
sudo apt-get update
+
mkdir ~/moblock-deb-packages
sudo apt-get install fakeroot
+
cd ~/moblock-deb-packages
mkdir moblock
+
 
cd moblock
+
sudo aptitude update
sudo apt-get build-dep -y moblock
+
sudo aptitude install fakeroot
apt-get source moblock
+
sudo apt-get build-dep -y moblock blockcontrol mobloquer
cd moblock-*
+
 
dpkg-buildpackage -rfakeroot
+
apt-get source moblock blockcontrol mobloquer
cd ..
+
 
sudo dpkg -i moblock-nfq*.deb
+
cd ~/moblock-deb-packages/moblock-0.9~rc2
sudo apt-get purge -y build-essential debhelper dpatch dpkg-dev g++ g++-4.1 gettext html2text intltool-debian iptables-dev libc6-dev libnetfilter-queue-dev libnfnetlink-dev libstdc++6-4.1-dev linux-libc-dev patch po-debconf
+
dpkg-buildpackage -uc -us -tc -rfakeroot
 +
sudo dpkg -i ~/moblock-deb-packages/moblock_0.9~rc2-*.deb
 +
 
 +
cd ~/moblock-deb-packages/blockcontrol-1.3
 +
dpkg-buildpackage -uc -us -tc -rfakeroot
 +
sudo dpkg -i ~/moblock-deb-packages/blockcontrol_*_all.deb
 +
 
 +
cd ~/moblock-deb-packages/mobloquer-0.6
 +
dpkg-buildpackage -uc -us -tc -rfakeroot
 +
sudo dpkg -i ~/moblock-deb-packages/mobloquer_*.deb
 +
 
 
sudo apt-get install -f
 
sudo apt-get install -f
 
</nowiki></pre>
 
</nowiki></pre>
 
Some of these commands can be combined into one, but this lets you make changes like adding a patch if necessary and explains the process better.
 
Some of these commands can be combined into one, but this lets you make changes like adding a patch if necessary and explains the process better.
Explanation: the directory moblock is created and the current working directory is changed to it. Moblock's development dependencies are then installed. The MoBlock source package is downloaded and the current working directory is changed to it. The source and binary packages are built and the working directory is moved one directory up. Then the moblock-nfq*.deb is installed and its dependencies are installed. Finally, the development dependencies (including configuration files) are removed.
+
Explanation: in your home directory the directory moblock-deb-packages is created. Then the current working directory is changed to it. The development dependencies of the packages moblock, blockcontrol and mobloquer are then installed. Then the three source packages are downloaded.
You can also use this '''[http://ubuntuforums.org/attachment.php?attachmentid=50325&d=1195170638 shell script]''' (hosted by Ubuntu Forums). Make sure it is executable. In Ubuntu, you can right click it and click on properties. In the tab Permissions make sure Allow executing this file as program is checked. Then close and double click on the file. Click the button Run in Terminal.
+
For the three packages one after the other the current working directory is changed to the source directory, the source and binary packages are built and the package is installed. As a last step eventually missing dependencies are installed.
 
=== Install a package ===
 
=== Install a package ===
Use the instructions at the '''[[UbuntuHelp:InstallingSoftware]''' page under '''[|InstallingSoftware#head-c0628aa246e0b55ea2009705d1b5a84ede8736b5:Installing downloaded packages]]'''
+
Use the instructions at the '''[[UbuntuHelp:InstallingSoftware]]''' page under '''[[UbuntuHelp:InstallingSoftware#head-c0628aa246e0b55ea2009705d1b5a84ede8736b5|Installing downloaded packages|InstallingSoftware#head-c0628aa246e0b55ea2009705d1b5a84ede8736b5|Installing downloaded packages]]'''
 
== Configuration and Usage ==
 
== Configuration and Usage ==
The packages contain a moblock-control script with the following features:
+
blockcontrol features include:
 
* start and stop MoBlock (including handling of the iptables rules if desired)
 
* start and stop MoBlock (including handling of the iptables rules if desired)
 
* update the specified blocklists from online sources
 
* update the specified blocklists from online sources
第108行: 第100行:
 
* modify the blocklist and whitelist IPs and ports
 
* modify the blocklist and whitelist IPs and ports
 
The logfiles are rotated daily.
 
The logfiles are rotated daily.
In the default configuration MoBlock starts at system boot and some preconfigured blocklists are updated once a day. You can specify the blocklists to use in /etc/moblock/blocklists.list. Everything else (automatic start and update, iptables handling, IP and port whitelisting) is configured in /etc/moblock/moblock.conf. This is important especially if MoBlock blocks sites that it should not block.
+
In the default configuration MoBlock starts at system boot and some preconfigured blocklists are updated once a day. You can specify the blocklists to use in /etc/blockcontrol/blocklists.list. Everything else (automatic start and update, iptables handling, IP and port whitelisting) is configured in /etc/blockcontrol/blockcontrol.conf. This is important especially if MoBlock blocks sites that it should not block. A list of all available configuration options is in /usr/lib/blockcontrol/blockcontrol.defaults (Don't edit the latter file, but put your changes in /etc/blockcontrol/blockcontrol.conf.)
 
=== Start MoBlock ===
 
=== Start MoBlock ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control start
+
sudo blockcontrol start
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Stop MoBlock ===
 
=== Stop MoBlock ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control stop
+
sudo blockcontrol stop
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Restart MoBlock ===
 
=== Restart MoBlock ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control restart
+
sudo blockcontrol restart
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Rebuild Blocklist ===
 
=== Rebuild Blocklist ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control reload
+
sudo blockcontrol reload
 
</nowiki></pre>
 
</nowiki></pre>
 
Moblock is then reloaded.
 
Moblock is then reloaded.
 
=== Update Blocklists ===
 
=== Update Blocklists ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control update
+
sudo blockcontrol update
 
</nowiki></pre>
 
</nowiki></pre>
 
Moblock is then reloaded.
 
Moblock is then reloaded.
 
=== MoBlock Status ===
 
=== MoBlock Status ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control status
+
sudo blockcontrol status
 
</nowiki></pre>
 
</nowiki></pre>
 
It receives the iptables settings and the status of the MoBlock daemon.
 
It receives the iptables settings and the status of the MoBlock daemon.
 
=== Test MoBlock ===
 
=== Test MoBlock ===
 
<pre><nowiki>
 
<pre><nowiki>
sudo moblock-control test
+
sudo blockcontrol test
 
</nowiki></pre>
 
</nowiki></pre>
 
The test has been known to have problems in older versions of MoBlock. Look at the log to check if you are unsure. This can be done interactively (this command will show you the log in real-time).
 
The test has been known to have problems in older versions of MoBlock. Look at the log to check if you are unsure. This can be done interactively (this command will show you the log in real-time).
第144行: 第136行:
 
tail -f /var/log/moblock.log
 
tail -f /var/log/moblock.log
 
</nowiki></pre>
 
</nowiki></pre>
 +
=== Search in the blocklists ===
 +
<pre><nowiki>
 +
sudo blockcontrol search PATTERN
 +
</nowiki></pre>
 +
Search for a pattern in your blocklists. This helps you to find out, which blocklist is responsible for a certain block.
 
== Frequently Asked Questions (FAQ) ==
 
== Frequently Asked Questions (FAQ) ==
 +
=== I cannot connect to the internet any more! ===
 +
MoBlock may block your complete LAN, including your router, gateway and/or DNS server. Normally this traffic is whitelisted automatically as long as you keep the default setting ''WHITE_LOCAL="1"''. But if you have problems follow these instructions:
 +
You have to whitelist your LAN. If you don't know your local IP check it with "sudo ifconfig". It's the value after "inet addr:" of the interface that you use for networking. For wired connections this might be "eth0", for wireless connections "wlan0".
 +
Example: You found out that your IP is 192.168.0.39. Then your LAN will most probably cover the IP range 192.168.0.1-192.168.0.255. Then you need to whitelist this range for incoming and outgoing connections.
 +
Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)
 +
<pre><nowiki>
 +
gksu gedit /etc/blockcontrol/blockcontrol.conf
 +
</nowiki></pre>
 +
and add these lines:
 +
<pre><nowiki>
 +
WHITE_IP_IN="192.168.0.0/24"
 +
WHITE_IP_OUT="192.168.0.0/24"
 +
</nowiki></pre>
 +
Do a
 +
<pre><nowiki>
 +
blockcontrol restart
 +
</nowiki></pre>
 +
when you have changed these settings.
 
=== Some applications cannot connect to the internet any more! ===
 
=== Some applications cannot connect to the internet any more! ===
No ports are whitelisted by default. So, if the IP address your application is trying to reach, is in the blocklist, it is blocked.
+
There are several possibilities to solve your problems:
To change that, locate line 68 in /etc/moblock/moblock.conf
+
<ol><li>Use less or other blocklists
 +
</li><li>Whitelist IPs
 +
</li><li>Whitelist ports
 +
</li><li>Advanced whitelisting</li></ol>
 +
 
 +
For each possibility you can learn how to do it in another question here on the page. But now, which is the best solution for you?
 +
Generally you should first decide on the correct set of blocklists. The default setting is quite paranoid, so you may choose less blocklists.
 +
Now, if you need to allow (whitelist) certain traffic, it depends on the application that has problems: If the application only needs to connect to one or a few servers, with fixed IPs, then you should whitelist IPs. There are also some allow lists (e.g. for some games) e.g. on iblocklist.com.
 +
But if you want to connect to many other computers, where you don't know the IP, or where the IPs may be even changing frequently, then you should do port whitelisting. Per default moblock whitelists the outgoing http (80) and https (443) ports, in order to allow an easier websurfing. Keep in mind that malicious hosts may abuse these ports for their own purposes.
 +
=== MoBlock closed the port for my torrent client. How do I open it again? ===
 +
Don't do that! Why did you install MoBlock? Probably to check your torrent client's  traffic. Right!? So you must not open that port. Otherwise you could just uninstall Moblock, the effect would be nearly the same.
 +
MoBlock does not close ports. It checks all traffic for certain IPs. So on the same port some traffic from good IPs is allowed, and some from bad IPs is blocked. So you could just ignore the "closed port" warning.
 +
What happens on your side is, that your torrent client tells an testhost to try to connect to you. Now, probably this testhost is in the blocklist, so it gets blocked. This does not necessarily imply that this testhost is evil, because MoBlock from moblock-deb.sourceforge.net has quite a paranoid default blocklist setup.
 +
Solution 1:Only choose those blocklists that you really want to use.
 +
Solution 2: Check the logfile in mobloquer when you do the port check in azureus. Some IP should get blocked then. Just allow this IP.
 +
=== How do I find out which IP or port was blocked? ===
 +
To learn, what gets blocked I recommend that you use mobloquer. There you see live every blocked IP and you can whitelist it directly.
 +
Or you follow the logfile live
 
<pre><nowiki>
 
<pre><nowiki>
gksu gedit /etc/moblock/moblock.conf
+
tail -f /var/log/moblock.log
 +
</nowiki></pre>
 +
There you can see which IP gets blocked.
 +
You can even get more information about what is being blocked. First you need to set in /etc/blockcontrol/blockcontrol.conf
 +
<pre><nowiki>
 +
LOG_IPTABLES="LOG --log-level info"
 +
</nowiki></pre>
 +
and do a
 +
<pre><nowiki>
 +
sudo blockcontrol restart
 +
</nowiki></pre>
 +
Then you can issue
 +
<pre><nowiki>
 +
sudo tail -f /var/log/syslog
 +
</nowiki></pre>
 +
Now you can see live the IP, the port, and protocol of blocked packets. Further you can see whether it is an incoming or outgoing connection. With this information you can do the whitelisting that is described in other questions here.
 +
=== How do I choose what blocklists to use? ===
 +
To find out which blocklist is responsible for a blocked packet, have a look at the DESCRIPTION of the blocked packet in /var/log/moblock.log and then issue
 +
<pre><nowiki>
 +
blockcontrol search DESCRIPTION
 +
</nowiki></pre>
 +
This will give you the name of the blocklist.
 +
You can learn more about available blocklists in /usr/share/doc/blockcontrol/README.blocklists.gz or on http://iblocklist.com/.
 +
When you have decided which blocklists you want to use you edit /etc/blockcontrol/blocklists.list
 +
<pre><nowiki>
 +
gksu gedit /etc/blockcontrol/blocklists.list
 
</nowiki></pre>
 
</nowiki></pre>
 
In Kubuntu, replace gksu with kdesu.
 
In Kubuntu, replace gksu with kdesu.
 +
Uncomment the blocklists, that is, remove the hash (#) to enable certain blocklists or comment them out by adding a hash before the blocklists to disable them.
 +
Do a
 
<pre><nowiki>
 
<pre><nowiki>
#WHITE_TCP_OUT="http https"
+
sudo blockcontrol reload
 
</nowiki></pre>
 
</nowiki></pre>
Uncomment the code, that is, remove the hash (#).
+
when you have changed these settings.
 +
=== How can I allow (whitelist) traffic on certain ports? ===
 +
If the IP address that your application is trying to reach is in the blocklist, it will be blocked. But you can allow traffic for specific ports. The ports 80 (http) and 443 (https) are whitelisted by default.
 +
To allow traffic also on other ports edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)
 +
<pre><nowiki>
 +
gksu gedit /etc/blockcontrol/blockcontrol.conf
 +
</nowiki></pre>
 +
and add/edit this line:
 
<pre><nowiki>
 
<pre><nowiki>
 
WHITE_TCP_OUT="http https"
 
WHITE_TCP_OUT="http https"
 
</nowiki></pre>
 
</nowiki></pre>
 +
Do a
 +
<pre><nowiki>
 +
blockcontrol restart
 +
</nowiki></pre>
 +
when you have changed these settings.
 
See? By default port 80 and 443 (also called http and https) is configured, for outgoing connections.
 
See? By default port 80 and 443 (also called http and https) is configured, for outgoing connections.
In effect, you can now browse blocked ips, with firefox/konqueror or any other browser.
+
In effect, you can browse blocked IPs, with firefox/konqueror or any other browser.
If you know the port number of an application you use, then this is the place to put it. If you want to put a range of ports, use the format "startport:endport".
+
If you have an application, that connects to many different IPs, then this is the place to allow traffic for it. If you want to put a range of ports, use the format "startport:endport".
=== But why can I not just remove the IP address from the blocklist instead? ===
+
[http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers List of port numbers at wikipedia].
You can. Find out what you want to whitelist by checking /var/log/moblock.log. This can be done interactively (this command will show you the log in real-time).
+
'''Do not add the privacy needing application's port here (for most people this will be torrent and other P2P tools)! It's the point of MoBlock to check their traffic. Keep the list small, to get a better protection.'''
 +
=== How can I allow (whitelist) traffic to certain IPs? ===
 +
Find out what you want to whitelist by checking /var/log/moblock.log. This can be done interactively (this command will show you the log in real-time).
 
<pre><nowiki>
 
<pre><nowiki>
 
tail -f /var/log/moblock.log
 
tail -f /var/log/moblock.log
 
</nowiki></pre>
 
</nowiki></pre>
Then, edit /etc/moblock/moblock.conf
+
There are 3 different ways:
 +
'''1. Whitelist an IP range in allow.p2p'''
 +
This is also the correct place for allow lists!
 +
Edit /etc/blockcontrol/allow.p2p (in Kubuntu, replace gksu with kdesu)
 
<pre><nowiki>
 
<pre><nowiki>
gksu gedit /etc/moblock/moblock.conf
+
gksu gedit /etc/blockcontrol/allow.p2p
 
</nowiki></pre>
 
</nowiki></pre>
In Kubuntu, replace gksu with kdesu.
+
If you want to whitelist the IP range "192.168.178.1 -  192.168.178.255 and the IP 123.123.123.123 add this:
To whitelist one specific IP, edit the following part.
+
 
<pre><nowiki>
 
<pre><nowiki>
# Do a "moblock-control restart" when you have changed these settings.
+
192.168.178.1-192.168.178.255
IP_TCP_IN=""
+
123.123.123.123-123.123.123.123
IP_UDP_IN=""
+
IP_TCP_OUT=""
+
IP_UDP_OUT=""
+
IP_TCP_FORWARD=""
+
IP_UDP_FORWARD=""
+
 
</nowiki></pre>
 
</nowiki></pre>
Separate IP addresses with a whitespace.
+
Do a
To whitelist a whole range you can use a search phrase, such as Google, Hotmail, or an actual IP address range (as specified in the blocklists), edit the following part.
+
<pre><nowiki>
 +
sudo blockcontrol restart
 +
</nowiki></pre>
 +
when you have changed these settings.
 +
'''2. Whitelist an IP'''
 +
Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)
 +
<pre><nowiki>
 +
gksu gedit /etc/blockcontrol/blockcontrol.conf
 +
</nowiki></pre>
 +
To whitelist IPs add the following variables:
 +
<pre><nowiki>
 +
WHITE_IP_IN=""
 +
WHITE_IP_OUT=""
 +
WHITE_IP_FORWARD=""
 +
</nowiki></pre>
 +
Insert e.g. "192.168.178.1" to whitelist a single IP,
 +
or e.g. "192.168.178.0/24" to whitelist an IP range (192.168.178.0 - 192.168.178.255)
 +
or e.g. "192.168.0.0/16" to whitelist a bigger IP range (192.168.0.0 - 192.168.255.255)
 +
Separate IP addresses with a whitespace. So you might have an entry like this:
 +
<pre><nowiki>
 +
WHITE_IP_IN="192.168.0.0/24"
 +
WHITE_IP_OUT="192.168.0.0/24 123.123.123.123 234.234.234.234"
 +
</nowiki></pre>
 +
Do a
 +
<pre><nowiki>
 +
sudo blockcontrol restart
 +
</nowiki></pre>
 +
when you have changed these settings.
 +
Alternatively you might use ''mobloquer'' for adding IPs to these variables.
 +
'''Use a search phrase'''
 +
You can also use a search phrase, such as Google, Hotmail, or an actual IP address range (as specified in the blocklists). Add the following variable to /etc/blockcontrol/blockcontrol.conf:
 
<pre><nowiki>
 
<pre><nowiki>
# Do a "moblock-control reload" when you have changed these settings.
 
 
IP_REMOVE=""
 
IP_REMOVE=""
 
</nowiki></pre>
 
</nowiki></pre>
Separate phrases with a semicolon.
+
Separate phrases with a semicolon. So you might have an entry like this:
Remember to reload or restart MoBlock after modifying the configuration.
+
=== How do I choose what blocklists to include in the update function? ===
+
Edit /etc/moblock/blocklists.list
+
 
<pre><nowiki>
 
<pre><nowiki>
gksu gedit /etc/moblock/blocklists.list
+
IP_REMOVE="google;yahoo;altavista"
 
</nowiki></pre>
 
</nowiki></pre>
In Kubuntu, replace gksu with kdesu.
+
Do a
Uncomment the blocklists, that is, remove the hash (#) to enable certain blocklists or comment them out by adding a hash before the blocklists to disable them.
+
<pre><nowiki>
 +
sudo blockcontrol reload
 +
</nowiki></pre>
 +
when you have changed these settings.
 +
=== How can I allow (whitelist) traffic for a combination of IPs, ports, or applications? ===
 +
This is advanced stuff, and you won't find a complete answer here, sorry!
 +
You can specify your own iptables rules in /etc/blockcontrol/iptables-custom-insert.sh. So you can whitelist any combination of ports, IPs, and (if your kernel supports it) traffic that originates from certain users or applications. Please note that most kernels do not support to whitelist traffic per application. This is a concept from the MS Windows world, and not very widespread in the Linux world.
 +
The file /usr/share/doc/blockcontrol/examples/iptables-custom-insert.sh yields some examples.
 +
=== Some services (avahi, webmin, ftpd, sshd, ...) on my MoBlock machine aren't available to other machines any more! ===
 +
Allow all traffic to the port that the service is listening on for INCOMING connections
 +
Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)
 +
<pre><nowiki>
 +
gksu gedit /etc/blockcontrol/blockcontrol.conf
 +
</nowiki></pre>
 +
E.g. for ssh allow all incoming traffic on port 22
 +
<pre><nowiki>
 +
WHITE_TCP_IN="22"
 +
</nowiki></pre>
 +
If you only want to connect from certain hosts with specific IPs, you can allow all traffic from them by using the WHITE_IP_IN variable or /etc/blockcontrol/allow.p2p.
 +
=== Is it possible to specify a network interface where moblock operates on ===
 +
You can allow (whitelist) traffic on all other interfaces.
 +
Add to /etc/blockcontrol/iptables-custom-insert.sh:
 +
<pre><nowiki>
 +
iptables -I INPUT -i [DEVICENAME] -j RETURN
 +
iptables -I OUTPUT -o [DEVICENAME] -j RETURN
 +
iptables -I FORWARD -i [DEVICENAME] -j RETURN
 +
iptables -I FORWARD -o [DEVICENAME] -j RETURN
 +
</nowiki></pre>
 +
And to /etc/blockcontrol/iptables-custom-remove.sh:
 +
<pre><nowiki>
 +
iptables -D INPUT -i [DEVICENAME] -j RETURN
 +
iptables -D OUTPUT -o [DEVICENAME] -j RETURN
 +
iptables -D FORWARD -i [DEVICENAME] -j RETURN
 +
iptables -D FORWARD -o [DEVICENAME] -j RETURN</nowiki></pre>
 +
Replace [DEVICENAME] with the device name, e.g. eth0.
 +
Please have a look at <code><nowiki>man iptables</nowiki></code> to understand that stuff.
 +
=== My internet is slow since I installed MoBlock! ===
 +
Indeed MoBlock blocks quite much traffic: That's its purpose, but it can be a pain, too.
 +
In default installations outgoing traffic is REJECTED, if it is blocked by MoBlock. This makes sure that the sending application is notified immediately that its traffic was blocked (in contrast to DROPped packets, where no notification is sent, so that the application waits quite long and then gives up). So verify via
 +
<pre><nowiki>
 +
sudo blockcontrol show_config
 +
</nowiki></pre>
 +
if you have these settings:
 +
<pre><nowiki>
 +
REJECT="1"
 +
REJECT_OUT="REJECT"
 +
</nowiki></pre>
 +
You also might reduce the number of used blocklists, and allow traffic to certain IPs or ports. Have a look at the previous questions to learn how.
 
=== How do I keep it installed, without having it run at startup? ===
 
=== How do I keep it installed, without having it run at startup? ===
Edit /etc/moblock/moblock.conf.
+
Edit /etc/blockcontrol/blockcontrol.conf:
 
<pre><nowiki>
 
<pre><nowiki>
gksu gedit /etc/moblock/moblock.conf
+
gksu gedit /etc/blockcontrol/blockcontrol.conf
 
</nowiki></pre>
 
</nowiki></pre>
 
In Kubuntu, replace gksu with kdesu.
 
In Kubuntu, replace gksu with kdesu.
Set the following.
+
Set the following:
 
<pre><nowiki>
 
<pre><nowiki>
MOBLOCK_INIT="0"
+
INIT="0"
 
</nowiki></pre>
 
</nowiki></pre>
 
=== What happens when I install MoBlock the first time? ===
 
=== What happens when I install MoBlock the first time? ===
It will download a new blocklist for you during installation, and start it as a deamon. In other words, it will start automatically everytime you boot up.
+
First you will be prompted to configure MoBlock via some so called "debconf" questions. Then it will download some blocklists for you during installation (be patient, this may take a while), and start it as a daemon.
 +
Now it will start automatically everytime you boot up and make a daily update of the blocklists - unless you configure blockcontrol otherwise.
 +
=== I tried to install MoBlock but I'm stuck on a screen with a Moblock warning ===
 +
This is a so called "debconf" question. Read the text and confirm by pressing "OK". If your debconf interface doesn't support your mouse, then you have to use your keyboard: hit the "TAB" key until "OK" is highlighted and then press "RETURN".
 +
You may also do a "sudo dpkg-reconfigure debconf" and select "Gnome" as your interface. Then you can use your mouse for debconf questions.
 
=== I have a custom compiled kernel. Moblock does not work. ===
 
=== I have a custom compiled kernel. Moblock does not work. ===
 +
MoBlock depends on netfilter support in the kernel. There are two possibilities:
 +
'''Netfilter support as kernel modules (recommended):'''
 +
Enable netfilter support in xconfig, or in the kernel source config file as modules.
 +
'''Netfilter support built-in directly in the kernel:'''
 
Enable netfilter support in xconfig, or in the kernel source config file.
 
Enable netfilter support in xconfig, or in the kernel source config file.
 +
blockcontrol will then make sure that the netfilter support is available to MoBlock.
 
=== How do I change automatic updating? ===
 
=== How do I change automatic updating? ===
MoBlock automatically updates its blocklists everyday. To configure automatic updating, edit /etc/moblock/moblock.conf.
+
MoBlock automatically updates its blocklists everyday. To configure automatic updating, edit //etc/blockcontrol/blockcontrol.conf:
 
<pre><nowiki>
 
<pre><nowiki>
gksu gedit /etc/moblock/moblock.conf
+
gksu gedit /etc/blockcontrol/blockcontrol.conf
 
</nowiki></pre>
 
</nowiki></pre>
 
The number in the following setting enables (1) or disables (2) automatic updating.
 
The number in the following setting enables (1) or disables (2) automatic updating.
 
<pre><nowiki>
 
<pre><nowiki>
MOBLOCK_CRON="1"
+
CRON="1"
 
</nowiki></pre>
 
</nowiki></pre>
 
To disable automatic updating, set the following.
 
To disable automatic updating, set the following.
 
<pre><nowiki>
 
<pre><nowiki>
MOBLOCK_CRON="0"
+
CRON="0"
 +
</nowiki></pre>
 +
=== MoBlock fails to start or stop ===
 +
Have a look at /var/log/blockcontrol.log and /var/log/moblock.log. In most cases an incorrect configuration option is the reason. If you don't understand the logfiles post them in the forum (please do this in CODE tags).
 +
If you think you messed thinks up you can make a clean reinstall:
 +
<pre><nowiki>
 +
aptitude purge moblock blockcontrol mobloquer
 +
aptitude install moblock blockcontrol mobloquer
 
</nowiki></pre>
 
</nowiki></pre>
 
== Credits ==
 
== Credits ==
Special thanks to '''[http://ubuntuforums.org/member.php?u=50108 pelle.k]''' for the Ubuntu Forums '''[http://ubuntuforums.org/showthread.php?p=1114891 thread]''' this is derived from, the MoBlock Debian Packages maintainer '''[http://ubuntuforums.org/member.php?u=228584 jre]''', and the contributors to MoBlock. The Ubuntu 7.10 64-bit package and source page shell script were provided by '''[http://ubuntuforums.org/member.php?u=182332 daradib]'''. The Ubuntu 7.04 64-bit package  was provided by '''[http://ubuntuforums.org/member.php?u=58418 minijoe]'''. The Ubuntu 6.06 netfilter lib packages were provided by '''[http://ubuntuforums.org/member.php?u=14921 foxy123]'''.
+
Special thanks to '''[http://ubuntuforums.org/member.php?u=50108 pelle.k]''' for the Ubuntu Forums '''[http://ubuntuforums.org/showthread.php?p=1114891 thread]''' this is derived from, the MoBlock Debian Packages maintainer '''[http://ubuntuforums.org/member.php?u=228584 jre]''', and the contributors to MoBlock.
 
== Further Reading ==
 
== Further Reading ==
* '''[http://ubuntuforums.org/showthread.php?t=192559 MoBlock thread where people have asked questions]'''
+
* '''[http://ubuntuforums.org/showthread.php?t=803183 MoBlock thread where people have asked questions]'''
 
* '''[http://moblock.berlios.de/ MoBlock Homepage]'''
 
* '''[http://moblock.berlios.de/ MoBlock Homepage]'''
 
* '''[http://moblock-deb.sourceforge.net/ MoBlock Debian Packages]'''
 
* '''[http://moblock-deb.sourceforge.net/ MoBlock Debian Packages]'''
第233行: 第392行:
 
* '''[http://ubuntuforums.org/showpost.php?p=1114891&postcount=1 Instructions for FireHOL users (scroll down)]'''
 
* '''[http://ubuntuforums.org/showpost.php?p=1114891&postcount=1 Instructions for FireHOL users (scroll down)]'''
 
----
 
----
[[category:CategoryDocumentation]]
+
[[category:CategoryInternet]] [[category:CategoryNetworking]]
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月19日 (三) 23:26的最新版本

MoBlock is an application that enables you to block internet traffic based on large lists of IP address ranges in order to protect your privacy. It uses a file in PeerGuardian format (guarding.p2p) or an ipfilter.dat. The upcoming PeerGuardian for Linux is based on the MoBlock fork NFBlock, blockcontrol and mobloquer. Note: Since version 0.9 RC1 MoBlock no longer conflicts with other firewalls. But you have to make sure that MoBlock is started after them and the iptables rules don't get changed later. You may also try iplist by uljanow. Also consider that routers can make software firewalls on your computer redundant.

目录

Add Repository

Add the correct gpg key to the apt keyring

For hardy and intrepid type the following in terminal (there´s a new key since 2009-08-20):

gpg --keyserver wwwkeys.eu.pgp.net --recv 58712F29
gpg --export --armor 58712F29 | sudo apt-key add -

For jaunty and and later versions type the following in terminal:

gpg --keyserver keyserver.ubuntu.com --recv 9C0042C8
gpg --export --armor 9C0042C8 | sudo apt-key add -

Add specific repository for release

You have to add the repository sources to your /etc/apt/sources.list:

gksu gedit /etc/apt/sources.list

In Kubuntu, replace gksu with kdesu. Add the two lines for your specific release (i.e. Ubuntu 9.04):

Ubuntu 10.04 ("Lucid Lynx") 32-bit and 64-bit

deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu lucid main

Ubuntu 9.10 ("Karmic Koala") 32-bit, 64-bit and lpia

deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu karmic main

Ubuntu 9.04 ("Jaunty Jackalope") 32-bit, 64-bit and lpia

deb http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/jre-phoenix/ppa/ubuntu jaunty main

Ubuntu 8.10 ("Intrepid Ibex") 32-bit and 64-bit

deb http://moblock-deb.sourceforge.net/debian intrepid main
deb-src http://moblock-deb.sourceforge.net/debian intrepid main

Ubuntu 8.04 ("Hardy Heron") 32-bit and 64-bit

deb http://moblock-deb.sourceforge.net/debian hardy main
deb-src http://moblock-deb.sourceforge.net/debian hardy main

Special note for all Ubuntu distributions

Make sure that the "universe" section is activated in your sources.list. You need something like this (replace YOURDIST with e.g. your distribution codename like hardy or karmic)

deb http://archive.ubuntu.com YOURDIST main universe

Package Installation

Install the packages moblock and blockcontrol (previously moblock-control). If you want a graphical interface you can also install mobloquer.

sudo aptitude update
sudo aptitude install moblock blockcontrol

Compile a package

If you want to make your own MoBlock binary package from source and install it, you can use the following instructions. Most users will not need to compile a package, but this can be used for unsupported architectures or for an older release (you may also have to compile netfilter lib packages). First, make sure you have added a source repository for your release. Then, run the following in terminal.

mkdir ~/moblock-deb-packages
cd ~/moblock-deb-packages

sudo aptitude update
sudo aptitude install fakeroot
sudo apt-get build-dep -y moblock blockcontrol mobloquer

apt-get source moblock blockcontrol mobloquer

cd ~/moblock-deb-packages/moblock-0.9~rc2
dpkg-buildpackage -uc -us -tc -rfakeroot
sudo dpkg -i ~/moblock-deb-packages/moblock_0.9~rc2-*.deb

cd ~/moblock-deb-packages/blockcontrol-1.3
dpkg-buildpackage -uc -us -tc -rfakeroot
sudo dpkg -i ~/moblock-deb-packages/blockcontrol_*_all.deb

cd ~/moblock-deb-packages/mobloquer-0.6
dpkg-buildpackage -uc -us -tc -rfakeroot
sudo dpkg -i ~/moblock-deb-packages/mobloquer_*.deb

sudo apt-get install -f

Some of these commands can be combined into one, but this lets you make changes like adding a patch if necessary and explains the process better. Explanation: in your home directory the directory moblock-deb-packages is created. Then the current working directory is changed to it. The development dependencies of the packages moblock, blockcontrol and mobloquer are then installed. Then the three source packages are downloaded. For the three packages one after the other the current working directory is changed to the source directory, the source and binary packages are built and the package is installed. As a last step eventually missing dependencies are installed.

Install a package

Use the instructions at the UbuntuHelp:InstallingSoftware page under Installing downloaded packages|InstallingSoftware#head-c0628aa246e0b55ea2009705d1b5a84ede8736b5|Installing downloaded packages

Configuration and Usage

blockcontrol features include:

  • start and stop MoBlock (including handling of the iptables rules if desired)
  • update the specified blocklists from online sources
  • use local blocklists
  • modify the blocklist and whitelist IPs and ports

The logfiles are rotated daily. In the default configuration MoBlock starts at system boot and some preconfigured blocklists are updated once a day. You can specify the blocklists to use in /etc/blockcontrol/blocklists.list. Everything else (automatic start and update, iptables handling, IP and port whitelisting) is configured in /etc/blockcontrol/blockcontrol.conf. This is important especially if MoBlock blocks sites that it should not block. A list of all available configuration options is in /usr/lib/blockcontrol/blockcontrol.defaults (Don't edit the latter file, but put your changes in /etc/blockcontrol/blockcontrol.conf.)

Start MoBlock

sudo blockcontrol start

Stop MoBlock

sudo blockcontrol stop

Restart MoBlock

sudo blockcontrol restart

Rebuild Blocklist

sudo blockcontrol reload

Moblock is then reloaded.

Update Blocklists

sudo blockcontrol update

Moblock is then reloaded.

MoBlock Status

sudo blockcontrol status

It receives the iptables settings and the status of the MoBlock daemon.

Test MoBlock

sudo blockcontrol test

The test has been known to have problems in older versions of MoBlock. Look at the log to check if you are unsure. This can be done interactively (this command will show you the log in real-time).

tail -f /var/log/moblock.log

Search in the blocklists

sudo blockcontrol search PATTERN

Search for a pattern in your blocklists. This helps you to find out, which blocklist is responsible for a certain block.

Frequently Asked Questions (FAQ)

I cannot connect to the internet any more!

MoBlock may block your complete LAN, including your router, gateway and/or DNS server. Normally this traffic is whitelisted automatically as long as you keep the default setting WHITE_LOCAL="1". But if you have problems follow these instructions: You have to whitelist your LAN. If you don't know your local IP check it with "sudo ifconfig". It's the value after "inet addr:" of the interface that you use for networking. For wired connections this might be "eth0", for wireless connections "wlan0". Example: You found out that your IP is 192.168.0.39. Then your LAN will most probably cover the IP range 192.168.0.1-192.168.0.255. Then you need to whitelist this range for incoming and outgoing connections. Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)

gksu gedit /etc/blockcontrol/blockcontrol.conf

and add these lines:

WHITE_IP_IN="192.168.0.0/24"
WHITE_IP_OUT="192.168.0.0/24"

Do a

blockcontrol restart

when you have changed these settings.

Some applications cannot connect to the internet any more!

There are several possibilities to solve your problems:

  1. Use less or other blocklists
  2. Whitelist IPs
  3. Whitelist ports
  4. Advanced whitelisting

For each possibility you can learn how to do it in another question here on the page. But now, which is the best solution for you? Generally you should first decide on the correct set of blocklists. The default setting is quite paranoid, so you may choose less blocklists. Now, if you need to allow (whitelist) certain traffic, it depends on the application that has problems: If the application only needs to connect to one or a few servers, with fixed IPs, then you should whitelist IPs. There are also some allow lists (e.g. for some games) e.g. on iblocklist.com. But if you want to connect to many other computers, where you don't know the IP, or where the IPs may be even changing frequently, then you should do port whitelisting. Per default moblock whitelists the outgoing http (80) and https (443) ports, in order to allow an easier websurfing. Keep in mind that malicious hosts may abuse these ports for their own purposes.

MoBlock closed the port for my torrent client. How do I open it again?

Don't do that! Why did you install MoBlock? Probably to check your torrent client's traffic. Right!? So you must not open that port. Otherwise you could just uninstall Moblock, the effect would be nearly the same. MoBlock does not close ports. It checks all traffic for certain IPs. So on the same port some traffic from good IPs is allowed, and some from bad IPs is blocked. So you could just ignore the "closed port" warning. What happens on your side is, that your torrent client tells an testhost to try to connect to you. Now, probably this testhost is in the blocklist, so it gets blocked. This does not necessarily imply that this testhost is evil, because MoBlock from moblock-deb.sourceforge.net has quite a paranoid default blocklist setup. Solution 1:Only choose those blocklists that you really want to use. Solution 2: Check the logfile in mobloquer when you do the port check in azureus. Some IP should get blocked then. Just allow this IP.

How do I find out which IP or port was blocked?

To learn, what gets blocked I recommend that you use mobloquer. There you see live every blocked IP and you can whitelist it directly. Or you follow the logfile live

tail -f /var/log/moblock.log

There you can see which IP gets blocked. You can even get more information about what is being blocked. First you need to set in /etc/blockcontrol/blockcontrol.conf

LOG_IPTABLES="LOG --log-level info"

and do a

sudo blockcontrol restart

Then you can issue

sudo tail -f /var/log/syslog

Now you can see live the IP, the port, and protocol of blocked packets. Further you can see whether it is an incoming or outgoing connection. With this information you can do the whitelisting that is described in other questions here.

How do I choose what blocklists to use?

To find out which blocklist is responsible for a blocked packet, have a look at the DESCRIPTION of the blocked packet in /var/log/moblock.log and then issue

blockcontrol search DESCRIPTION

This will give you the name of the blocklist. You can learn more about available blocklists in /usr/share/doc/blockcontrol/README.blocklists.gz or on http://iblocklist.com/. When you have decided which blocklists you want to use you edit /etc/blockcontrol/blocklists.list

gksu gedit /etc/blockcontrol/blocklists.list

In Kubuntu, replace gksu with kdesu. Uncomment the blocklists, that is, remove the hash (#) to enable certain blocklists or comment them out by adding a hash before the blocklists to disable them. Do a

sudo blockcontrol reload

when you have changed these settings.

How can I allow (whitelist) traffic on certain ports?

If the IP address that your application is trying to reach is in the blocklist, it will be blocked. But you can allow traffic for specific ports. The ports 80 (http) and 443 (https) are whitelisted by default. To allow traffic also on other ports edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)

gksu gedit /etc/blockcontrol/blockcontrol.conf

and add/edit this line:

WHITE_TCP_OUT="http https"

Do a

blockcontrol restart

when you have changed these settings. See? By default port 80 and 443 (also called http and https) is configured, for outgoing connections. In effect, you can browse blocked IPs, with firefox/konqueror or any other browser. If you have an application, that connects to many different IPs, then this is the place to allow traffic for it. If you want to put a range of ports, use the format "startport:endport". List of port numbers at wikipedia. Do not add the privacy needing application's port here (for most people this will be torrent and other P2P tools)! It's the point of MoBlock to check their traffic. Keep the list small, to get a better protection.

How can I allow (whitelist) traffic to certain IPs?

Find out what you want to whitelist by checking /var/log/moblock.log. This can be done interactively (this command will show you the log in real-time).

tail -f /var/log/moblock.log

There are 3 different ways: 1. Whitelist an IP range in allow.p2p This is also the correct place for allow lists! Edit /etc/blockcontrol/allow.p2p (in Kubuntu, replace gksu with kdesu)

gksu gedit /etc/blockcontrol/allow.p2p

If you want to whitelist the IP range "192.168.178.1 - 192.168.178.255 and the IP 123.123.123.123 add this:

192.168.178.1-192.168.178.255
123.123.123.123-123.123.123.123

Do a

sudo blockcontrol restart

when you have changed these settings. 2. Whitelist an IP Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)

gksu gedit /etc/blockcontrol/blockcontrol.conf

To whitelist IPs add the following variables:

WHITE_IP_IN=""
WHITE_IP_OUT=""
WHITE_IP_FORWARD=""

Insert e.g. "192.168.178.1" to whitelist a single IP, or e.g. "192.168.178.0/24" to whitelist an IP range (192.168.178.0 - 192.168.178.255) or e.g. "192.168.0.0/16" to whitelist a bigger IP range (192.168.0.0 - 192.168.255.255) Separate IP addresses with a whitespace. So you might have an entry like this:

WHITE_IP_IN="192.168.0.0/24"
WHITE_IP_OUT="192.168.0.0/24 123.123.123.123 234.234.234.234"

Do a

sudo blockcontrol restart

when you have changed these settings. Alternatively you might use mobloquer for adding IPs to these variables. Use a search phrase You can also use a search phrase, such as Google, Hotmail, or an actual IP address range (as specified in the blocklists). Add the following variable to /etc/blockcontrol/blockcontrol.conf:

IP_REMOVE=""

Separate phrases with a semicolon. So you might have an entry like this:

IP_REMOVE="google;yahoo;altavista"

Do a

sudo blockcontrol reload

when you have changed these settings.

How can I allow (whitelist) traffic for a combination of IPs, ports, or applications?

This is advanced stuff, and you won't find a complete answer here, sorry! You can specify your own iptables rules in /etc/blockcontrol/iptables-custom-insert.sh. So you can whitelist any combination of ports, IPs, and (if your kernel supports it) traffic that originates from certain users or applications. Please note that most kernels do not support to whitelist traffic per application. This is a concept from the MS Windows world, and not very widespread in the Linux world. The file /usr/share/doc/blockcontrol/examples/iptables-custom-insert.sh yields some examples.

Some services (avahi, webmin, ftpd, sshd, ...) on my MoBlock machine aren't available to other machines any more!

Allow all traffic to the port that the service is listening on for INCOMING connections Edit /etc/blockcontrol/blockcontrol.conf (in Kubuntu, replace gksu with kdesu)

gksu gedit /etc/blockcontrol/blockcontrol.conf

E.g. for ssh allow all incoming traffic on port 22

WHITE_TCP_IN="22"

If you only want to connect from certain hosts with specific IPs, you can allow all traffic from them by using the WHITE_IP_IN variable or /etc/blockcontrol/allow.p2p.

Is it possible to specify a network interface where moblock operates on

You can allow (whitelist) traffic on all other interfaces. Add to /etc/blockcontrol/iptables-custom-insert.sh:

iptables -I INPUT -i [DEVICENAME] -j RETURN
iptables -I OUTPUT -o [DEVICENAME] -j RETURN
iptables -I FORWARD -i [DEVICENAME] -j RETURN
iptables -I FORWARD -o [DEVICENAME] -j RETURN

And to /etc/blockcontrol/iptables-custom-remove.sh:

iptables -D INPUT -i [DEVICENAME] -j RETURN
iptables -D OUTPUT -o [DEVICENAME] -j RETURN
iptables -D FORWARD -i [DEVICENAME] -j RETURN
iptables -D FORWARD -o [DEVICENAME] -j RETURN

Replace [DEVICENAME] with the device name, e.g. eth0. Please have a look at man iptables to understand that stuff.

My internet is slow since I installed MoBlock!

Indeed MoBlock blocks quite much traffic: That's its purpose, but it can be a pain, too. In default installations outgoing traffic is REJECTED, if it is blocked by MoBlock. This makes sure that the sending application is notified immediately that its traffic was blocked (in contrast to DROPped packets, where no notification is sent, so that the application waits quite long and then gives up). So verify via

sudo blockcontrol show_config

if you have these settings:

REJECT="1"
REJECT_OUT="REJECT"

You also might reduce the number of used blocklists, and allow traffic to certain IPs or ports. Have a look at the previous questions to learn how.

How do I keep it installed, without having it run at startup?

Edit /etc/blockcontrol/blockcontrol.conf:

gksu gedit /etc/blockcontrol/blockcontrol.conf

In Kubuntu, replace gksu with kdesu. Set the following:

INIT="0"

What happens when I install MoBlock the first time?

First you will be prompted to configure MoBlock via some so called "debconf" questions. Then it will download some blocklists for you during installation (be patient, this may take a while), and start it as a daemon. Now it will start automatically everytime you boot up and make a daily update of the blocklists - unless you configure blockcontrol otherwise.

I tried to install MoBlock but I'm stuck on a screen with a Moblock warning

This is a so called "debconf" question. Read the text and confirm by pressing "OK". If your debconf interface doesn't support your mouse, then you have to use your keyboard: hit the "TAB" key until "OK" is highlighted and then press "RETURN". You may also do a "sudo dpkg-reconfigure debconf" and select "Gnome" as your interface. Then you can use your mouse for debconf questions.

I have a custom compiled kernel. Moblock does not work.

MoBlock depends on netfilter support in the kernel. There are two possibilities: Netfilter support as kernel modules (recommended): Enable netfilter support in xconfig, or in the kernel source config file as modules. Netfilter support built-in directly in the kernel: Enable netfilter support in xconfig, or in the kernel source config file. blockcontrol will then make sure that the netfilter support is available to MoBlock.

How do I change automatic updating?

MoBlock automatically updates its blocklists everyday. To configure automatic updating, edit //etc/blockcontrol/blockcontrol.conf:

gksu gedit /etc/blockcontrol/blockcontrol.conf

The number in the following setting enables (1) or disables (2) automatic updating.

CRON="1"

To disable automatic updating, set the following.

CRON="0"

MoBlock fails to start or stop

Have a look at /var/log/blockcontrol.log and /var/log/moblock.log. In most cases an incorrect configuration option is the reason. If you don't understand the logfiles post them in the forum (please do this in CODE tags). If you think you messed thinks up you can make a clean reinstall:

aptitude purge moblock blockcontrol mobloquer
aptitude install moblock blockcontrol mobloquer

Credits

Special thanks to pelle.k for the Ubuntu Forums thread this is derived from, the MoBlock Debian Packages maintainer jre, and the contributors to MoBlock.

Further Reading