Updated sep/23/10 15:47
installeer squid met:
# apt-get install squid
De kans is groot dat squid nu reeds actief is en werkt voor de machine localhost; je kan dit testen met:
# telnet localhost 3128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get http://www.perdu.com/index.html
<html><head><title>Vous Etes Perdu ?</title></head><body><h1>Perdu sur l'Internet ?</h1><h2>Pas de panique, on va vous aider</h2><strong><pre> * <----- vous êtes ici</pre></strong></body></html>
Connection closed by foreign host.
of ook met de volgende foute url:
# telnet localhost 3128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get http://www.perdu.non
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H2>The requested URL could not be retrieved</H2>
<HR noshade size="1px">
<P>While trying to retrieve the URL:<A HREF="http://www.perdu.non/">http://www.perdu.non/</A>
<P>The following error was encountered:
<BLOCKQUOTE>Unable to determine IP address from host name for<I>www.perdu.non</I></BLOCKQUOTE>
<P>The dnsserver returned:
<BLOCKQUOTE>Name Error: The domain name does not exist.</BLOCKQUOTE>
<P>This means that:
<PRE> The cache was not able to resolve the hostname presented in the URL. Check if the address is correct. </PRE>
<P>Your cache administrator is <A HREF="mailto:webmaster">webmaster</A>.
<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated Thu, 10 Jun 2010 10:11:15 GMT by cassandra (squid/2.7.STABLE3)
</ADDRESS>
</BODY></HTML>
Connection closed by foreign host.
configureer squid nu voor je lokaal netwerk:
# vim /etc/squid/squid.conf
plaats het volgende in het begin van de configuratiefile:
# ...
visible_hostname <uw hostnaam>
http_port 3128
...
zoek in de squid.conf file naar "acl localnet" en voeg de volgende tekst in vetjes toe (ook de hekjes om het bestaande localnet af te punten):
...
# acl localnet src 10.0.0.0/8
# acl localnet src 172.16.0.0/12
# acl localnet src 192.168.0.0/16
acl localnet 172.16.0.0/16
...
http_access allow localnet
http_access allow localhost
# /etc/init.d/squid restart
Als squid draait, kan je eerst op je eigen machine en daarna op een andere machine de internet-browser configureren met de proxy gegevens van jouw squid,
vb.: http proxy: 172.16.31.15 port: 3128
en daarna test je of je kunt surfen via deze proxy.
squidGuard is een domain blocker. Hij kan werken met blacklists (alles in de blacklist wordt geblokkeerd) of met whitelists (alleen domeinen in de whitelist worden toegestaan)
In deze documentatie benoemen we squidGuard zoals zijn binary geschreven wordt, met een hoofdletter G in het midden. Erg standvastig zijn de makers van squidGuard niet geweest. Het pakket installeren met apt-get doen we zonder hoofdletter, als volgt:
# apt-get install squidguard
Installeer de blacklist in de directory /var/lib/squidguard/db/
# tar -xvf shallalist.tar.gz
# mv BL/* /var/lib/squidguard/db/
Pas squid.conf aan en voeg de volgende regel toe, ergens bovenaan:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidguard.conf |
# CONFIG FILE FOR SQUIDGUARD # minimum configuratie dbhome /var/lib/squidguard/db logdir /var/log/squid dest webtv { domainlist webtv/domains urllist webtv/urls } acl { default { pass !webtv all redirect http://www.perdu.com/index.html } } |
Omdat squidGuard een plug-in is moeten we hem opstarten vanaf squid:
Nu gaan we de configuratie aanpassen zodat die nuttig wordt:
dbhome /var/lib/squidguard/db logdir /var/log/squid src admins { ip 172.16.31.101/32 } src nt12 { ip 172.16.31.0/28 127.0.0.0/8 } dest webtv { domainlist webtv/domains urllist webtv/urls } dest news { domainlist news/domains urllist news/urls } acl { nt12 { pass !webtv !news all redirect http://www.perdu.com/index.html } } acl { admins { pass all } } acl { default { pass none redirect http://localhost } } |
In dit eerste geval gebeurt er niets want 172.16.31.101 is lid van admins.
# echo "http://www.vrt.be 172.16.31.101/ - - GET" | squidGuard -c /etc/squid/squidguard.conf -d
2010-06-10 13:06:37 [4596] init domainlist /var/lib/squidguard/db/webtv/domains
2010-06-10 13:06:37 [4596] init urllist /var/lib/squidguard/db/webtv/urls
2010-06-10 13:06:37 [4596] squidGuard 1.2.0 started (1276167997.108)
2010-06-10 13:06:37 [4596] squidGuard ready for requests (1276167997.113)
2010-06-10 13:06:37 [4596] squidGuard stopped (1276167997.115)
In het volgende geval wordt vrt.be geblokkeerd:
# echo "http://www.vrt.be 172.16.31.1/ - - GET" | squidGuard -c /etc/squid/squidguard.conf -d
2010-06-10 13:06:53 [4598] init domainlist /var/lib/squidguard/db/webtv/domains
2010-06-10 13:06:53 [4598] init urllist /var/lib/squidguard/db/webtv/urls
2010-06-10 13:06:53 [4598] squidGuard 1.2.0 started (1276168013.063)
2010-06-10 13:06:53 [4598] squidGuard ready for requests (1276168013.068)
http://www.perdu.com/index.html 172.16.31.1/- - -
2010-06-10 13:06:53 [4598] squidGuard stopped (1276168013.069)
In een derde geval wordt alles geblokkeerd:
# echo "http://www.google.be 192.168.0.1/ - - GET" | squidGuard -c /etc/squid/squidguard.conf -d
2010-06-10 13:10:38 [4609] init domainlist /var/lib/squidguard/db/webtv/domains
2010-06-10 13:10:38 [4609] init urllist /var/lib/squidguard/db/webtv/urls
2010-06-10 13:10:38 [4609] squidGuard 1.2.0 started (1276168238.882)
2010-06-10 13:10:38 [4609] squidGuard ready for requests (1276168238.887)
http://localhost 192.168.0.1/- - -
2010-06-10 13:10:38 [4609] squidGuard stopped (1276168238.889)
url_rewrite_children 2Er worden dan maar 2 instanties opgestart van squidGuard, ipv de gebruikelijke vijf.
dbhome /var/lib/squidguard/db
logdir /var/log/squid
src admins { ip 172.16.31.101/32 }
src nt12 { ip 172.16.31.0/28
127.0.0.0/8 }src innocent { ip 172.16.31.128/25 }
dest webtv {
domainlist webtv/domains
urllist webtv/urls
}
dest whitelist {
domainlist wlist/domains
urllist wlist/urls
}
acl { innocent { pass whitelist none
redirect http://localhost/white.html
}
}
acl { nt12 { pass !webtv all
redirect http://www.perdu.com/index.html
}
}
acl { admins { pass all } }
acl { default { pass none
redirect http://localhost
}
}