Un serveur proxy agit comme un intermédiaire entre les utilisateurs et Internet. Il permet de contrôler et sécuriser le trafic réseau, en filtrant les contenus, en bloquant certains sites ou en optimisant les performances réseau. Voici un guide détaillé pour configurer un serveur proxy afin de filtrer le trafic.
1. Quel est le rôle d’un serveur proxy ?
Avant de plonger dans la configuration, il est important de comprendre les fonctions principales d’un serveur proxy :
- Filtrage de contenu : Bloquer l’accès à certains sites ou types de contenu.
- Cache : Stocker les ressources fréquemment demandées pour réduire la charge réseau.
- Anonymat : Masquer les adresses IP des utilisateurs pour protéger leur identité.
- Contrôle d’accès : Appliquer des politiques d’accès basées sur les utilisateurs, les horaires ou les adresses IP.
2. Quel logiciel pour un proxy ?
Il existe plusieurs solutions logicielles pour configurer un serveur proxy. Voici les plus populaires :
- Squid : Proxy HTTP/HTTPS performant, idéal pour les environnements professionnels.
- NGINX : Utilisé comme reverse proxy et serveur web.
- ProxyChains : Ajoute des fonctionnalités proxy à des applications spécifiques.
- Microsoft ISA/TMG (anciennes versions) ou Web Application Proxy pour Windows Server.
Dans ce guide, nous utiliserons Squid, car il est open-source, puissant et compatible avec la majorité des systèmes.
3. Comment préparer l’environnement ?
Prérequis matériels et logiciels :
- Un serveur avec une distribution Linux (Debian, Ubuntu, CentOS ou autre).
- Droits administrateur (root).
- Connexion réseau active.
Mise à jour du système :
Assurez-vous que votre serveur est à jour :
sudo apt update && sudo apt upgrade -y
4. Installation de Squid
Sous Ubuntu :
Exécutez la commande suivante pour installer Squid :
sudo apt install squid -y
5. Configurer le filtrage avec Squid
Le fichier principal de configuration de Squid est situé dans /etc/squid/squid.conf
. Modifions ce fichier pour activer le filtrage.
Étape 1 : Configurer les ACL (Access Control Lists)
Les ACL définissent les règles pour autoriser ou bloquer l’accès.
- Ouvrez le fichier de configuration :
sudo nano /etc/squid/squid.conf
- Ajoutez une ACL pour bloquer un site spécifique, par exemple Facebook :
acl bloque_sites dstdomain .facebook.com http_access deny bloque_sites
- Pour autoriser uniquement certains utilisateurs ou IP, ajoutez :
acl utilisateurs_autorises src 192.168.1.0/24 http_access allow utilisateurs_autorises
Étape 2 : Activer l’authentification (optionnel)
Vous pouvez demander une authentification pour accéder au proxy :
- Activez l’authentification basique :
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic realm Proxy Authentification acl utilisateurs_autorises proxy_auth REQUIRED http_access allow utilisateurs_autorises
- Créez un fichier de mot de passe :
sudo htpasswd -c /etc/squid/passwd utilisateur1
6. Appliquer les modifications
Après avoir configuré le fichier, redémarrez le service Squid pour appliquer les changements :
sudo systemctl restart squid
7. Configurer les postes clients
Pour utiliser le proxy, vous devez configurer vos navigateurs ou périphériques :
- Navigateur Web :
- Accédez aux paramètres réseau.
- Renseignez l’adresse IP de votre serveur proxy et le port (par défaut, 3128 pour Squid).
- Postes sous Windows/Linux :
Configurez le proxy dans les paramètres réseau ou via un script d’autoconfiguration (PAC).
8. Tester la configuration
Vérifiez que le proxy fonctionne :
- Accédez à un site bloqué (ex. Facebook).
- Vérifiez les journaux pour analyser le trafic :
sudo tail -f /var/log/squid/access.log
9. Améliorations supplémentaires
- Activer HTTPS : Configurez un certificat SSL pour gérer le filtrage HTTPS.
- Configurer le cache : Optimisez l’utilisation des ressources réseau.
cache_dir ufs /var/spool/squid 10000 16 256
- Configurer des règles de bande passante :
delay_pools 1 delay_class 1 1 delay_parameters 1 64000/64000
10. Sécuriser votre proxy
- Restreignez l’accès au proxy pour éviter qu’il ne soit utilisé comme relais ouvert.
http_access deny all
- Maintenez le serveur à jour et surveillez les journaux régulièrement.
En suivant ces étapes, vous pouvez configurer un serveur proxy robuste pour filtrer efficacement le trafic réseau. Ce type de solution est particulièrement utile dans les environnements professionnels ou scolaires.