Bonjour, aujourd’hui on se retrouve pour configurer un Serveur proxy avec Squid, gérér les blacklist avec squidguard et mettre en place un antivirus avec clamav.
Très utilisé par les lycées et entreprise, le proxy permet entre autre de :
- Changer son IP
- Bloquer l’accès à certains sites ou domaines
- Avoir une fonction de cache lorsque les utilisateurs sont nombreux et/ou que la bande passante est faible
Je vais essayer d’être le plus clair et le plus explicite possible dans mon tutoriel afin que de chez vous cela marche facilement, si vous avez des erreurs ou des questions, laissez un commentaire.
Nous allons nous y prendre en trois parties :
I – Squid
II – SquidGuard
III – Clamav
Ne perdons pas de temps, comme d’habitude, mettez à jour votre serveur.
apt-get update && apt-get upgrade
I – Squid
On installe Squid
apt-get -y install squid3
nano /etc/squid3/squid.conf
Puis ajoutez les lignes ci-dessous a l’emplacement que je vous indique ( pour savoir a quelle ligne vous êtes, faites ctrl+c sous nano), vous pouvez les mettre à la fin du fichier, mais chez moi ça n’a pas fonctionné, je vous conseille donc de suivre mon conseil.
acl lan src 10.0.0.0/24
http_access allow lan
url_rewrite_program /usr/bin/squidGuard
request_header_access Referer deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
visible_hostname proxy.florian
forwarded_for off
systemctl restart squid3
apt-get -y install squidguard
systemctl restart squid3
tar -xzf blacklists.tar.gz
cp -R blacklists/* /var/lib/squidguard/db/
cp /etc/squidguard/squidGuard.conf /etc/squidguard/squidGuard.back
nano etc/squidguard/squidGuard.conf
# CONFIG FILE FOR SQUIDGUARD
#
# Caution: do NOT use comments inside { }dbhome /var/lib/squidguard/db
logdir /var/log/squid3dest agressif {
domainlist agressif/domains
urllist agressif/urls
}
dest adult {
domainlist adult/domains
urllist adult/urls
expressionlist adult/very_restrictive_expression
}acl {
default {
pass !agressif !adult all
redirect http://example.com/
}
}
les dest ( permettent en fait d’ajouter une liste de blocage a votre proxy (j’ai choisi adult et agressif, mais vous pouvez mettre drogues, jeux… pour voir les listes disponibles, rendez vous dans ls /var/lib/squidguard/db et trouvez celles qui vous plaisent, la syntaxe est la même que dans mon fichier remplacez juste adult par le nom de la liste.)
Ensuite l’acl default autorise tout sauf les listes qu’on a mis au dessus, donc si vous ajoutez des listes, ajoutez les dans l’acl, et on voit que pour l’exemple, les requêtes sont redirigées vers http://example.com, bien sur, vous pouvez changer l’URL et rediriger par exemple vers une page que vous aurez codé en html.
Maintenant, nous allons faire pointer squidguard.conf dans le dossier squid3
ln -s /etc/squidguard/squidGuard.conf /etc/squid3/
Maintenant, attribuons les bons droits aux bons dossiers
chown -R proxy:proxy /var/log/squid3 /var/lib/squidguard
Ensuite, faites cette commande, il faudra la faire à chaque fois que vous modifiez le fichier squidgard.conf. En fait, le -C all suffit mais je prefère cette commande car plus complète et on peut voir en direct la base se regénérer.
squidGuard -d -b -P -C all
Aussi, n’oubliez pas de faire après chaque modification pour être sur.
systemctl restart squid3
Normalement, après avoir fait tous ça, ajoutez le proxy à votre navigateur ( IP:3128), videz bien le cache et testez un site blacklisté, si vous rentrez directement l’URL, cela vous redirigera vers le site que vous avez mis dans le fichier de conf, et vous accèder au site via une recherche google vous aurez une erreur.
Chez moi cela a pris quelques minutes, donc si des sites blacklistés passent toujours, attendez un peu, faites les deux commandes ci-dessous et videz bien votre cache, au bout d’un moment, cela devrait se mettre en route.
Si cela vous intéresse, je vous propose un script pour faire automatiquement les mise à jour de nos blacklistes, si cela ne vous intéresse pas, passez et rendez vous directement à la partie III.
nano majblacklist
Dans ce fichier, mettez ceci:
#!/bin/bash
cd /tmp
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
tar -xzf blacklists.tar.gz
cp -rf blacklists/* /var/lib/squidguard/db/
rm -Rf blacklists*
squidGuard -C all
service squid3 restart
Puis, déplacez le dans cron.weekly.
mv majblacklist /etc/cron.weekly/
III – Clamav
Enfin, nous allons configurer clamav pour que ce dernier analyse les flux avant de nous les afficher.
Installons les dépendances:
apt–get install gcc make curl libcurl4–gnutls–dev c–icap libicapapi–dev
apt-get install clamav-daemon
cd /tmp/
wget wget https://sourceforge.net/projects/squidclamav/files/latest/download
tar zxvf download
cd squidclamav-6.16
./configure –with-c-icap
make
make install
nano /etc/default/c–icap
nano /etc/c–icap/c–icap.confService squidclamav squidclamav.so
nano /etc/squid3/squid.conf
# ligne 6534:
icap_enable on# ligne 6644:
adaptation_send_client_ip on# ligne 6654:adaptation_send_username on
# ligne 6659:
icap_client_username_header X-Authenticated-User# ligne 6755:
icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_resp allow all
systemctl restart squid3
nano /etc/c–icap/squidclamav.conf
systemctl restart clamav-daemonsystemctl restart c-icapsystemctl restart squid3
