Sécuriser, optimiser et contrôler un réseau d’entreprise avec Squid
Un serveur proxy permet plusieurs choses interessantes comme sécuriser, optimiser et contrôler un réseau.
Squid est un des plus puissant et des plus complet des logiciels de “proxying”, surtout couplé avec Squidguard.
Installation
Rien de bien compliqué, un classique apt-get install:
apt-get install squid squidguard
Configuration
Avant toute chose, sauvegardons le fichier /etc/squid/squid.conf en le renommant:
mv /etc/squid/squid.conf /etc/squid/squid.conf.old
Les ACL(access control list). Pour faire simple, elles permettent des mettre en place des conditions. On interdit ou autorise une action en fonction d'une ACL. La première restriction vérifiée est la bonne.
Il faut donc commencer par créer une ACL representant le réseau local:
Editons le fichier /etc/squid/squid.conf avec vi:
vi /etc/squid/squid.conf
et commençons par y insérer cette ligne:
acl localnet src 192.168.1.0/255.255.255.0
0
Voici notre ACL faite.
Il faut maintenant ajouter une règle qui autorise l’ACL localnet à utiliser notre serveur proxy.
Ajoutons donc cette ligne à notre fichier /etc/squid/squid.conf:
http_access allow localnet
Nous pouvons déjà tester notre proxy, en le configurant dans notre navigateur préféré.
Identification des utilisateurs
Squid permet également de mettre en place une identification, ce qui pourrait permettre de voir qui va sur quel site.
Nous allons utiliser ncsa_auth.
Commençons par créer un fichier qui va contenir nos utilisateurs:
touch /etc/squid/users
Peuplons le maintenant à l’aide de htpasswd:
htpasswd -b /etc/squid/users nom_utilisateur mdp
Les mots de passe sont cryptés.
Il faut maintenant dire à Squid de réclamer l’authentification à nos utilisateurs dès qu’ils ouvrent leur navigateur préféré.
il faut donc ajouter ces lignes:
authenticate_program /usr/lib/squid/ncsa_auth /etc/squid/users #permet de spécifier le type d’authentification.Ici nous utilisons ncsa_auth, et le fichier /etc/squid/users
authenticate_ip_ttl 30 minute
authenticate_ttl 30 minute
Nous devons maintenant créer une nouvelle ACL pour dire à squid de prendre en compte l’authentification.
acl Users proxy_auth REQUIRED
Puis nous appliquons un restriction: On refuse tous les accès sauf aux utilisateurs authentifiés
http_access deny !Users
SquidGuard
Poussons un peu la configuration en utilisant Squidguard, avec lequel nous pourrons utiliser les “blacklists” afin d’empêcher l’accès à des domaines au contenu “douteux”.
Nous allons commencer par créer le répértoire qui va acceuillir la base de données des domaines “blacklistés”
mkdir /var/lib/squidguard/db
Plaçons nous dans ce répértoire et téléchargeons une base de données de sites “blacklistés”
wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
Décompressons la:
tar -xvzf blacklists.tar.gz
Créons maintenant les bases de données:
squidGuard -C all
Puis donnons les droits:
chown -R squid /var/lib/db
chmod -R 760 /var/lib/db
Nous créeons maintenant un fichier /etc/squid/squidguard.conf contenant:
dbhome /var/lib/squidguard/db
logdir /var/log/squid
#on spécifie notre réseau local
source LAN {
ip 192.168.1.0/24
}
#On donne toutes les "blacklists" auquelles nous pourrons appliquer des ACL
destination pornographie {
urllist adult/urls
domainlist adult/domains
}
destination agressif {
urllist agressif/urls
domainlist agressif/domains
}
destination audio-video {
urllist audio-video/urls
domainlist audio-video/domains
}
destination drogues {
urllist drugs/urls
domainlist drugs/domains
}
destination forums {
urllist forums/urls
domainlist forums/domains
}
destination jeux {
urllist gambling/urls
domainlist gambling/domains
}
destination hackers {
urllist hacking/urls
domainlist hacking/domains
}
destination redirecteurs {
urllist redirector/urls
domainlist redirector/domains
}
destination violence {
urllist violence/urls
domainlist violence/domains
}
destination warez {
urllist warez/urls
domainlist warez/domains
}
#On crée une ACL disant que toutes les machines du LAN peuvent accéder à tout sauf au domaine à caractère pornographiqu.
acl {
LAN {
pass !pornographie
#On spécifie ici l'url de redirection en cas d'accès refusé
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
}
default {
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u
pass none
}
}
Disons enfin à Squid d’utiliser squidguard.
Dans le fichier /etc/squid/squid.conf:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
Tags :réseau local, serveur proxy, squid squidguard





