« Configuration d'un proxy squid » : différence entre les versions

De Travail-ivan
Aucun résumé des modifications
 
(18 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Configuration d'un proxy squid ==
== Configuration d'un proxy squid ==
=== 1) Pré-requis ===
=== Pré-requis ===


* Un serveur linux  
* Un serveur linux  
Ligne 6 : Ligne 6 :
* Un routeur
* Un routeur
* Une interface réseau  configurer sur le serveur linux  
* Une interface réseau  configurer sur le serveur linux  
 
=== Configuration de squid ===
=== 2) Installation de Squid ===
===Installation de Squid ====
Ouvrez un terminal et exécutez la commande suivante pour installer le serveur proxy squid :
Ouvrez un terminal et exécutez la commande suivante pour installer le serveur proxy squid :
   
   
  apt-get install squid
  apt-get install squid


=== Sauvegarde du fichier de configuration de Squid ===
==== Sauvegarde du fichier de configuration de Squid ====
Changer le nom de fichier de configuration de base de squid avec la commande suivante :
Changer le nom de fichier de configuration de base de squid avec la commande suivante :


Ligne 18 : Ligne 18 :
  mv squid.conf squid.conf.defaut
  mv squid.conf squid.conf.defaut


=== Créer fichier de configuration vide ===
==== Créer fichier de configuration vide ====
Créer un fichier qui contiendra la configuration de squid  
Créer un fichier qui contiendra la configuration de squid  
   
   
  nano squid.conf
  nano squid.conf


=== Configuration du serveur Proxy [/etc/squid/squid.conf ] ===
==== Configuration du serveur Proxy [/etc/squid/squid.conf ] ====


Ce fichier est donc vide puisque nous venons de le créer. Saisissez (ou copier) les lignes suivantes en les adaptant à votre réseau.
Ce fichier est donc vide puisque nous venons de le créer. Saisissez (ou copier) les lignes suivantes en les adaptant à votre réseau.


<pre>
<pre>
  # Squid a besoin de savoir le nom de la machine, notre machine s’appelle srv-proxy, donc :
## Configuration de SQUID 4.13
  visible_hostname srv-proxy
###############"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  - #########################
 
</pre>
 
[https://mediawiki.gallaisivan.synology.me/images/7/77/--_Configuration_de_SQUID_4.13.txt Fichier de configuration squid 4.13]
 
==== Bloquer certains noms de domaine ====
Mettre ces ligne dans le fichier de configuration de squid(ci-dessous) après "DEFINITION DES REGLES DE FILTRAGE" :
<pre>
# 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


# Par défaut le proxy écoute sur ses deux interfaces, pour des soucis de sécurité il faut donc le
</pre>
# restreindre à écouter sur l’interface du réseau local (LAN)
http_port 172.16.255.254:3128


# Changer la taille du cache de squid, changer la valeur 100 par ce que vous voulez (valeur en Mo)
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) :
  cache_dir ufs /var/spool/squid 100 16 256
===== Créer un fichier avec des nom de domaine à bloquer =====
 
1.Créer le fichier .txt  
 
nano /etc/squid/denydomain.txt
 
 
2.Mettre les domaines que vous souhaiter bloquer
 
domaine1.fr
domaine2.com
...
   
   
#################################### ACL ####################################
3. Enregistrer et quitter
 
ou
 
<pre>
 
#Déclarer le LAN
acl MONLAN src 192.168.10.0/24


acl all src all # ACL pour autoriser/refuser tous les réseaux (Source = All) – ACL obligatoire
# Déclarer un site pour autoriser/bloquer 
acl lan src 172.16.0.0/16 # ACL pour autoriser/refuser le réseau 172.16.0.0
acl deny_facebook dstdomain faccebook.com
acl Safe_ports port 80 # Port HTTP = Port 'sure'
acl Safe_ports port 443 # Port HTTPS = Port 'sure'
acl Safe_ports port 21 # Port FTP = Port 'sure'
############################################################################


  # Désactiver tous les protocoles sauf les ports sures
# Déclarer un nom de domaine pour autoriser/bloquer  
http_access deny !Safe_ports
acl deny_Dfacebook dstdomain .faccebook.com


# Désactiver l'accès pour tous les réseaux sauf les clients de l'ACL Lan
# Refuser L'accès au site facebook.com depuis le lan 192.168.10.0/24
# deny = refuser ; ! = sauf ; lan = nom de l’ACL à laquelle on fait référence.
http_access deny MONLAN deny_facebook
http_access deny !lan


  # Port utilisé par le Proxy :
 
  # Le port indiqué ici, devra être celui qui est précisé dans votre navigateur.
</pre>
  http_port 3128
 
Cela permet de bloquer un site ou un nom de domaine en particulier
 
==== Demander l’authentification des utilisateurs pour pouvoir accéder au Proxy ====
 
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 :
<pre>
<pre>
# 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
</pre>
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 ====
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 » ====
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 ====
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 =====
<pre>
...
#------------------ 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  -  ######################### 
</pre>

Dernière version du 30 octobre 2023 à 20:24

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