imported>SylvainBeucler |
imported>SylvainBeucler |
Ligne 1 : |
Ligne 1 : |
− | == Installation == | + | == Installation client == |
| | | |
− | Compilation (Debian 5.0 Lenny):
| + | apt-get install munin-node |
− | cd /usr/src/
| + | apt-get install munin-plugins-extra # facultatif |
− | wget http://www.squidguard.org/Downloads/squidGuard-1.4.tar.gz
| |
− | tar xzf squidGuard-1.4.tar.gz
| |
− | cd squidGuard-1.4
| |
− | apt-get install build-essential | |
− | apt-get install libdb-dev | |
− | ./configure --with-squiduser=proxy
| |
− | make | |
− | make install
| |
| | | |
− | Création des répertoires:
| + | Modifier les autorisations: |
− | mkdir -p /var/lib/squidguard/db/ | + | sed -i -e 's,^allow .*,allow ^(192\\.168\\..*|210\\.92\\.24\\..*)$,' /etc/munin/munin-node.conf |
− | mkdir -p /var/log/squidguard/
| + | /etc/init.d/munin-node restart |
− | chown proxy: /var/log/squidguard/ | |
| | | |
− | Rotation des logs:
| + | Ouvrir le pare-feu port 4949/tcp |
− | <pre>
| + | iptables -A INPUT -p tcp --dport munin -j ACCEPT |
− | cat <<EOF > /etc/logrotate.d/squidguard
| |
− | /var/log/squidguard/*.log {
| |
− | daily
| |
− | compress
| |
− | delaycompress
| |
− | rotate 10
| |
− | nocreate
| |
− | }
| |
− | EOF
| |
− | </pre>
| |
| | | |
− | == La liste noire ==
| + | Si la détection des plugins ne s'est pas produite, <code>/etc/munin/plugins</code> est vide. Relancer la détection: |
| + | munin-node-configure --shell | sh |
| + | Noter que la détection de certains plugins nécessite des bibliothèques ou programmes annexes, qui dans le paquet Debian sont notés en ''Suggests'', dont pas nécessairement installés. |
| | | |
− | On récupère celle de Toulouse quotidiennement:
| + | Vérifiez également que le nom complet de la machine cliente (hostname -f) correspond à la configuration du serveur. |
− | cat <<EOF > /etc/cron.daily/liste_noire_de_toulouse
| |
− | #!/bin/bash
| |
− | # Refresh DB
| |
− | rsync -aq rsync://ftp.univ-tlse1.fr/blacklist/ /var/lib/squidguard/db/blacklist/
| |
− | # Cf. http://www.squidguard.org/Doc/configure.html
| |
− | squidGuard -C all
| |
− | chown -R proxy: /var/lib/squidguard/db/blacklist/
| |
− | EOF
| |
− | chmod 755 /etc/cron.daily/liste_noire_de_toulouse
| |
| | | |
− | == Configuration == | + | == Installation serveur == |
| | | |
− | Dans <code>/usr/local/squidGuard/squidGuard.conf</code>:
| + | apt-get install munin |
| | | |
− | dbhome /var/lib/squidguar/db/blacklist/dest
| + | http://localhost/munin/ |
− | logdir /var/log/squidguard
| |
| | | |
− | Pour créer le fichier de configuration, on peut s'appuyer sur les scripts suivants:
| + | Rafraîchi par cron toutes les 5 minutes. |
− | * Déclaration des listes:
| |
− | <pre>
| |
− | cd /var/lib/squidguard/db/blacklist/dest/
| |
− | ls */usage | xargs grep -l black | xargs -n1 dirname | (
| |
− | while read list; do
| |
− | echo "dest $list {"
| |
− | if [ -f "$list/domains" ]; then
| |
− | echo " domainlist $list/domains"
| |
− | fi
| |
− | if [ -f "$list/urls" ]; then
| |
− | echo " urllist $list/urls"
| |
− | fi
| |
− | if [ -f "$list/expressions" ]; then
| |
− | echo " expressionlist $list/expressions"
| |
− | fi
| |
− | echo "}"
| |
− | done
| |
− | )
| |
− | </pre>
| |
− | * Références dans le block <code>default</code>:
| |
− | echo $(ls */usage | xargs grep -l black | xargs -n1 dirname | while read list; do echo '!'$list; done)
| |
− | | |
− | Ce qui nous donne par exemple:
| |
− | <pre>
| |
− | #
| |
− | # CONFIG FILE FOR SQUIDGUARD
| |
− | #
| |
− | | |
− | dbhome /var/lib/squidguard/db/blacklist/dest
| |
− | logdir /var/log/squidguard
| |
− | | |
− | #
| |
− | # DESTINATION CLASSES:
| |
− | #
| |
− | | |
− | dest adult {
| |
− | domainlist adult/domains
| |
− | urllist adult/urls
| |
− | expressionlist adult/expressions
| |
− | }
| |
− | dest agressif {
| |
− | domainlist agressif/domains
| |
− | urllist agressif/urls
| |
− | }
| |
− | dest astrology {
| |
− | domainlist astrology/domains
| |
− | urllist astrology/urls
| |
− | }
| |
− | dest audio-video {
| |
− | domainlist audio-video/domains
| |
− | urllist audio-video/urls
| |
− | }
| |
− | dest blog {
| |
− | domainlist blog/domains
| |
− | urllist blog/urls
| |
− | }
| |
− | dest celebrity {
| |
− | domainlist celebrity/domains
| |
− | urllist celebrity/urls
| |
− | }
| |
− | dest dangerous_material {
| |
− | domainlist dangerous_material/domains
| |
− | urllist dangerous_material/urls
| |
− | }
| |
− | dest dating {
| |
− | domainlist dating/domains
| |
− | urllist dating/urls
| |
− | }
| |
− | dest drogue {
| |
− | domainlist drogue/domains
| |
− | urllist drogue/urls
| |
− | }
| |
− | dest filehosting {
| |
− | domainlist filehosting/domains
| |
− | urllist filehosting/urls
| |
− | }
| |
− | dest financial {
| |
− | domainlist financial/domains
| |
− | }
| |
− | dest forums {
| |
− | domainlist forums/domains
| |
− | urllist forums/urls
| |
− | expressionlist forums/expressions
| |
− | }
| |
− | dest gambling {
| |
− | domainlist gambling/domains
| |
− | urllist gambling/urls
| |
− | }
| |
− | dest games {
| |
− | domainlist games/domains
| |
− | urllist games/urls
| |
− | }
| |
− | dest hacking {
| |
− | domainlist hacking/domains
| |
− | urllist hacking/urls
| |
− | }
| |
− | dest malware {
| |
− | domainlist malware/domains
| |
− | urllist malware/urls
| |
− | expressionlist malware/expressions
| |
− | }
| |
− | dest manga {
| |
− | domainlist manga/domains
| |
− | urllist manga/urls
| |
− | }
| |
− | dest marketingware {
| |
− | domainlist marketingware/domains
| |
− | urllist marketingware/urls
| |
− | }
| |
− | dest mixed_adult {
| |
− | domainlist mixed_adult/domains
| |
− | urllist mixed_adult/urls
| |
− | }
| |
− | dest mobile-phone {
| |
− | domainlist mobile-phone/domains
| |
− | urllist mobile-phone/urls
| |
− | }
| |
− | dest phishing {
| |
− | domainlist phishing/domains
| |
− | urllist phishing/urls
| |
− | }
| |
− | dest publicite {
| |
− | domainlist publicite/domains
| |
− | urllist publicite/urls
| |
− | expressionlist publicite/expressions
| |
− | }
| |
− | dest radio {
| |
− | domainlist radio/domains
| |
− | urllist radio/urls
| |
− | }
| |
− | dest reaffected {
| |
− | domainlist reaffected/domains
| |
− | urllist reaffected/urls
| |
− | }
| |
− | dest redirector {
| |
− | domainlist redirector/domains
| |
− | urllist redirector/urls
| |
− | expressionlist redirector/expressions
| |
− | }
| |
− | dest sect {
| |
− | domainlist sect/domains
| |
− | urllist sect/urls
| |
− | }
| |
− | dest shopping {
| |
− | domainlist shopping/domains
| |
− | urllist shopping/urls
| |
− | }
| |
− | dest strict_redirector {
| |
− | domainlist strict_redirector/domains
| |
− | urllist strict_redirector/urls
| |
− | expressionlist strict_redirector/expressions
| |
− | }
| |
− | dest strong_redirector {
| |
− | domainlist strong_redirector/domains
| |
− | urllist strong_redirector/urls
| |
− | expressionlist strong_redirector/expressions
| |
− | }
| |
− | dest tricheur {
| |
− | domainlist tricheur/domains
| |
− | urllist tricheur/urls
| |
− | }
| |
− | dest warez {
| |
− | domainlist warez/domains
| |
− | urllist warez/urls
| |
− | expressionlist warez/expressions
| |
− | }
| |
− | dest webmail {
| |
− | domainlist webmail/domains
| |
− | urllist webmail/urls
| |
− | }
| |
− | | |
− | acl {
| |
− | default {
| |
− | pass !adult !agressif !astrology !audio-video !blog !celebrity !dangerous_material !dating !drogue !filehosting !financial !forums !gambling !games !hacking !malware !manga !marketingware !mixed_adult !mobile-phone !phishing !publicite !radio !reaffected !redirector !sect !shopping !strict_redirector !strong_redirector !tricheur !warez !webmail all
| |
− | redirect http://192.168.1.1/bloque.html
| |
− | }
| |
− | }
| |
− | </pre>
| |
− | | |
− | == Squid ==
| |
− | | |
− | apt-get install squid3
| |
− | | |
− | Dans <code>/etc/squid3/squid.conf</code> (modifiez/décommentez les lignes correspondantes dans la configuration par défaut):
| |
− | acl localnet src 10.0.0.0/8
| |
− | http_access allow localnet
| |
− | url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf
| |
− | | |
− | Configuration proxy transparent:
| |
− | http_port 3128 transparent
| |
− | Dans iptables:
| |
− | iptables -t nat -A PREROUTING -i eth-local -p tcp --dport 80 -j REDIRECT --to-port 3128
| |
− | | |
− | == Page d'erreur ==
| |
− | | |
− | On pourra installer un petit serveur web sur lequel rediriger les requêtes en cas de page bloquée:
| |
− | apt-get install lighttpd
| |
− | | |
− | Dans <code>/var/www/bloque.html</code>:
| |
− | <meta http-equiv="content-type" value="text/html;charset=UTF-8" />
| |
− | Cette page est bloquée.
| |
− | | |
− | Dans <code>/usr/local/squidGuard/squidGuard.conf</code>:
| |
− | acl {
| |
− | defaut {
| |
− | ...
| |
− | redirect http://192.168.1.1/bloque.html
| |
− | | |
− | | |
− | == Liens ==
| |
− | | |
− | * [http://www.squidguard.org/Doc/configure.html Documentation SquidGuard]: principes de configuration et configuration minimale
| |
− | * [http://cri.univ-tlse1.fr/blacklists/configuration_squidguard.php Blacklists UT1 : squidguard.conf]: exemple de configuration de l'université de Toulouse
| |
− | * [http://www.fido-fr.net/linux_proxy_transparent.shtml Proxy transparent simplement avec linux et SQUID]: configuration proxy transparent Squid
| |
Installation client
apt-get install munin-node
apt-get install munin-plugins-extra # facultatif
Modifier les autorisations:
sed -i -e 's,^allow .*,allow ^(192\\.168\\..*|210\\.92\\.24\\..*)$,' /etc/munin/munin-node.conf
/etc/init.d/munin-node restart
Ouvrir le pare-feu port 4949/tcp
iptables -A INPUT -p tcp --dport munin -j ACCEPT
Si la détection des plugins ne s'est pas produite, /etc/munin/plugins
est vide. Relancer la détection:
munin-node-configure --shell | sh
Noter que la détection de certains plugins nécessite des bibliothèques ou programmes annexes, qui dans le paquet Debian sont notés en Suggests, dont pas nécessairement installés.
Vérifiez également que le nom complet de la machine cliente (hostname -f) correspond à la configuration du serveur.
Installation serveur
apt-get install munin
http://localhost/munin/
Rafraîchi par cron toutes les 5 minutes.