Configuration d'un proxy squid
Configuration d'un proxy squid[modifier | modifier le wikicode]
Pré-requis[modifier | modifier le wikicode]
- Un serveur linux
- Un ou des PC clients [Passerelle : 172.16.255.254 ; Proxy déclaré dans le navigateur]
- Un routeur
- Une interface réseau configurer sur le serveur linux
Configuration de squid[modifier | modifier le wikicode]
Installation de Squid[modifier | modifier le wikicode]
Ouvrez un terminal et exécutez la commande suivante pour installer le serveur proxy squid :
apt-get install squid
Sauvegarde du fichier de configuration de Squid[modifier | modifier le wikicode]
Changer le nom de fichier de configuration de base de squid avec la commande suivante :
cd /etc/squid/squid.conf mv squid.conf squid.conf.defaut
Créer fichier de configuration vide[modifier | modifier le wikicode]
Créer un fichier qui contiendra la configuration de squid
nano squid.conf
Configuration du serveur Proxy [/etc/squid/squid.conf ][modifier | modifier le wikicode]
Ce fichier est donc vide puisque nous venons de le créer. Saisissez (ou copier) les lignes suivantes en les adaptant à votre réseau.
## Configuration de SQUID 4.13 ###############"REGLES MINIMALES- NE PAS TOUCHER ###################################################################### acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT ########################### CONFIGURATION DU CACHE PROXY ################## #Default: cache_mem 256 MB # TAG: maximum_object_size_in_memory (bytes) #Default: maximum_object_size_in_memory 512 KB ############################################################################ ########################## - ZONE A MODIFIER - ########################### ############################################################################ #----------- CONF systeme du proxy ------------------------------------- # Nom de la machine, ici srv-proxy, visible_hostname SRVPROXY #Fixer la socket d’écoute du service Proxy sur LAN; #Dans l’exemple ci-dessous le service proxy écoute à l’adresse IP #172.16.15.20 et sur le port 8080 http_port 172.16.15.20:8080 #Fichier de log qui permett d’enregistrer les accès Internet des clients access_log /var/log/squid/access.log #------------------ DEFINITION DES REGLES DE FILTRAGE ------------------ # Ajouter vos acl ci-dessous # REGLE PAR DEFAUT ---- TOUT EST INTERDIT --------------------------------- ########################## FIN ZONE A MODIFIER - #########################
Fichier de configuration squid 4.13
Bloquer certains noms de domaine[modifier | modifier le wikicode]
Mettre ces ligne dans le fichier de configuration de squid(ci-dessous) après "DEFINITION DES REGLES DE FILTRAGE" :
# Déclarer un fichier qui contient les domaines à bloquer acl deny_domain url_regex -i "/etc/squid/denydomain.txt" # Refuser les domaines déclarés dans le fichier définit dans l'ACL deny_domain http_access deny deny_domain
Il ne vous reste plus qu’à créer le fichier denydomain.txt et inscrire les noms de domaine que vous désirez bloquer. Ce fichier doit être rempli de la manière suivante (un par ligne) :
Créer un fichier avec des nom de domaine à bloquer[modifier | modifier le wikicode]
1.Créer le fichier .txt
nano /etc/squid/denydomain.txt
2.Mettre les domaines que vous souhaiter bloquer
domaine1.fr domaine2.com ...
3. Enregistrer et quitter
ou
#Déclarer le LAN acl MONLAN src 192.168.10.0/24 # Déclarer un site pour autoriser/bloquer acl deny_facebook dstdomain faccebook.com # Déclarer un nom de domaine pour autoriser/bloquer acl deny_Dfacebook dstdomain .faccebook.com # Refuser L'accès au site facebook.com depuis le lan 192.168.10.0/24 http_access deny MONLAN deny_facebook
Cela permet de bloquer un site ou un nom de domaine en particulier
Demander l’authentification des utilisateurs pour pouvoir accéder au Proxy[modifier | modifier le wikicode]
Pour mettre en place le système d’authentification, Squid utilise la méthode htpasswd disponible avec le paquet apache2-utils, il faut donc dans un premier temps installer ce paquet :
apt-get install apache2-utils
Ensuite, il faut créer un fichier où seront déclarés les utilisateurs et leur mot de passe :
htpasswd –b /etc/squid/utilisateurs nom_utilisateur mot_de_passe # Exemple htpasswd –b /etc/squid/utilisateurs neoflow informatique
Le fichier utilisateurs s’est donc remplit sous la forme : nom_utilisateur:mot_de_passe
A noter que le mot de passe est crypté.
Avant d’indiquer à Squid qu’il doit utiliser ce système d’authentification, nous allons voir si celui fonctionne :
/usr/lib/squid/ncsa_auth /etc/squid/utilisateurs # Sur la ligne tapez le nom de votre utilisateur puis votre mot de passe (séparé par un espace) neoflow informatique
Il ne reste plus qu’à indiquer à Squid qu’il doit utiliser ce programme d’authentification, complétez le fichier squid.conf :
# On déclare le programme qui gère l'authentification : auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/utilisateurs # Grâce à cette ACL, le Proxy demandera une authentification acl utilisateurs proxy_auth REQUIRED # Refuser l'accès à tous les utilisateurs sauf ceux du fichier Utilisateurs http_access deny !utilisateurs
Pensez à redémarrer le service Squid. Pour finir, il ne vous reste plus qu’à essayer de naviguer sur internet, une fenêtre d’authentification devrait s’ouvrir.
Bloquer certaines extensions[modifier | modifier le wikicode]
Il est possible de déclarer des ACL pour bloquer différents types d’extensions et ainsi alléger le cache et la rapidité de navigation ou tout simplement pour restreindre les utilisateurs. Pour se faire :
# Bloquer les fichiers AVI : acl extension_avi url_regex –i \.avi$ http_access deny extension_avi
Informations sur « url_regex »[modifier | modifier le wikicode]
Lorsque l’on met cette option dans une ACL, cela permet de rechercher une chaîne de caractères contenu dans l'URL. A noter que l’url_regex est sensible à la casse (majuscules / minuscules).
Utilisation des heures et dates avec SQUID[modifier | modifier le wikicode]
Une ACL sur des heures de travail
acl horaires_travail time M-F 08:00-17:00
M-F correspond à Monday-Friday ( de lundi à vendredi ). Nous aurions aussi pu l'écrire ainsi :
acl horaires_travail time MTWHF 08:00-17:00
Une Acl sur une fourchette d'heure plus précise :
acl Exception1 time W 11:30-11:50
Cette Access-list correspond à une période de 20 minutes le mercredi.
Exemple[modifier | modifier le wikicode]
... #------------------ DEFINITION DES REGLES DE FILTRAGE ------------------ #Déclarer le LAN acl MONLAN src 192.168.10.0/24 #Heure de travail autoriser du lundi au vendredi (8h à 18h) acl horaires_travail time M-F 08:00-17:00 # Déclarer un site pour autoriser/bloquer acl deny_facebook dstdomain faccebook.com # Déclarer un nom de domaine pour autoriser/bloquer acl deny_Dfacebook dstdomain .faccebook.com # Refuser L'accès au site facebook.com depuis le lan 192.168.10.0/24 du lundi au vendredi (entre 8h et 17h) http_access deny MONLAN deny_facebook horaires_travail # REGLE PAR DEFAUT ---- TOUT EST INTERDIT --------------------------------- ########################## FIN ZONE A MODIFIER - #########################