Configuration d'un proxy squid

De Travail-ivan

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  -  #########################