Squid3 : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Fichier squid.conf)
(Bloquer les services de chats, messageries instantanées et VoIP)
Ligne 181 : Ligne 181 :
 
  http_access allow reseaulocal
 
  http_access allow reseaulocal
 
  http_access deny all
 
  http_access deny all
 
icp_access deny all
 
 
htcp_access deny all
 
 
http_port 3128
 
 
hierarchy_stoplist cgi-bin ?
 
 
access_log /var/log/squid3/access.log squid
 
 
refresh_pattern ^ftp: 1440 20% 10080
 
refresh_pattern ^gopher: 1440 0% 1440
 
refresh_pattern (cgi-bin|\?) 0 0% 0
 
refresh_pattern . 0 20% 4320
 
 
icp_port 3130
 
 
coredump_dir /var/spool/squid3
 
 
= Bloquer les services de chats, messageries instantanées et VoIP =
 
 
Il peut être nécessaire de bloquer l'accès à certaines applications comme la messagerie instantanée. Squid rend possible ce type de blocage. Pour cela il existe des ACLs spécifiques selon la stratégie de blocage envisagée :
 
* en fonction de l'adresse web du service;
 
* ou encore selon le type mime de la page web;
 
* selon la plage ip du réseau de destination;
 
* en analysant le contenu de l'url de la page par une règle regexp.
 
 
Voici la synthaxe propre à chacune de ces méthode :
 
* '''Définition de domaines :''' acl <nom_acl> dstdomain <.mydomain.tld> [.mydomain2.tld]
 
* '''Définition de type mime :''' acl <nom_acl> req_mime_type <application/x-msn-messenger>
 
* '''Définition par regexp :''' acl <nom_acl> urlpath_regex -i <subscribe.php> [subscribe.html]
 
* '''Définition de réseaux :''' acl <nom_acl> dst 178.33.001.0/24
 
 
== Blocage de MSN Messenger ==
 
 
Blocage du service MSN Messenger accessible depuis un navigateur web.
 
 
acl msn urlpath_regex -i gateway.dll                                # Définition du fichier dll gateway
 
acl msnd dstdomain messenger.msn.com gateway.messenger.hotmail.com  # Définition de certains noms de domaines
 
acl msn1 req_mime_type application/x-msn-messenger                  # Définition du mime type relatif à l'application MSN Web Messenger
 
 
http_access deny msnd msn msn1                                      # Blocage des directives listés ci-dessus
 
 
== Blocage de Yahoo! Messenger ==
 
 
acl ym dstdomain .messenger.yahoo.com .psq.yahoo.com
 
acl ym dstdomain .us.il.yimg.com .msg.yahoo.com .pager.yahoo.com
 
acl ym dstdomain .rareedge.com .ytunnelpro.com .chat.yahoo.com
 
acl ym dstdomain .voice.yahoo.com
 
 
acl ymregex url_regex yupdater.yim ymsgr myspaceim
 
 
acl ym dstdomain .skype.com .imvu.com
 
 
http_access deny ym
 
http_access deny ymregex
 
 
== Blocage de Gizmo ==
 
 
acl gizmo dstdomain .gizmoproject.com
 
acl gizmo dstdomain .talqer.com .gizmocall.com .fring.com
 
acl gizmo dstdomain .pidgin.im
 
 
http_access deny gizmo
 
 
== Blocage de ICQ ==
 
 
acl icq dstdomain .icq.com
 
 
http_access deny icq
 
 
== Blocage de AOL ==
 
 
acl aol dst 64.12.200.89/32 64.12.161.153/32 64.12.161.185/32
 
acl aol dst 205.188.153.121/32 205.188.179.233/32
 
 
http_access deny aol
 
 
== Fichier squid.conf ==
 
 
Voici le nouveau fichier de configuration avec les nouvelles directives
 
 
visible_hostname prauxyla.net.ncad.fr
 
cache_mgr tech@ncad.fr
 
 
acl goulouxiou src 10.0.0.0/24
 
acl prauxyla src 127.0.0.1/32
 
 
acl SSL_ports port 443 563
 
acl Safe_ports port 80        # http
 
acl Safe_ports port 20        # ftp-data
 
acl Safe_ports port 21        # ftp
 
acl Safe_ports port 443 563    # ssl
 
acl Safe_ports port 70        # gopher
 
acl Safe_ports port 210        # wais
 
acl Safe_ports port 10000      # Administration
 
acl Safe_ports port 1025-65535 # unregistered ports
 
acl Safe_ports port 5190      # AIM
 
acl Safe_ports port 5222      # jabber
 
acl Safe_ports port 5050      # Yahoo Messenger
 
acl Safe_ports port 1863      # MSN Messenger
 
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 Safe_ports port 631        # cups
 
acl Safe_ports port 873        # rsync
 
acl Safe_ports port 901        # SWAT
 
 
acl msn urlpath_regex -i gateway.dll                                # Définition du fichier dll gateway
 
acl msnd dstdomain messenger.msn.com gateway.messenger.hotmail.com  # Définition de certains noms de domaines
 
acl msn1 req_mime_type application/x-msn-messenger                  # Définition du mime type relatif à l'application MSN Web Messenger
 
 
acl ym dstdomain .messenger.yahoo.com .psq.yahoo.com
 
acl ym dstdomain .us.il.yimg.com .msg.yahoo.com .pager.yahoo.com
 
acl ym dstdomain .rareedge.com .ytunnelpro.com .chat.yahoo.com
 
acl ym dstdomain .voice.yahoo.com
 
 
acl ymregex url_regex yupdater.yim ymsgr myspaceim
 
 
acl ym dstdomain .skype.com .imvu.com
 
 
acl gizmo dstdomain .gizmoproject.com
 
acl gizmo dstdomain .talqer.com .gizmocall.com .fring.com
 
acl gizmo dstdomain .pidgin.im
 
 
acl icq dstdomain .icq.com
 
 
acl aol dst 64.12.200.89/32 64.12.161.153/32 64.12.161.185/32
 
acl aol dst 205.188.153.121/32 205.188.179.233/32
 
 
acl purge method PURGE
 
acl CONNECT method CONNECT
 
 
http_access deny msnd msn msn1
 
http_access deny aol
 
http_access deny icq
 
http_access deny gizmo
 
http_access deny ym
 
http_access deny ymregex
 
 
http_access deny !Safe_ports # Tous les accès aux ports non définit par la directive Safe_ports sont refusés
 
http_access allow localhost  # On autorise les connexions au serveur depuis le serveur lui-même
 
http_access allow goulouxiou # On autorise les connexions depuis les stations du réseau
 
 
   
 
   
 
  icp_access deny all
 
  icp_access deny all

Version du 29 mars 2015 à 23:48

LOGO Squid.gif

Installation

  • Installer le paquet Squid3.
ICON Terminal.png

sudo apt-get install squid3

  • Les fichiers de configuration se trouvent dans le répertoire /etc/squid3.

Configuration de Squid3

  • Le fichier de configuration de squid3 fournit par défaut est un fichier commenté. Ce dernier contient toutes les informations nécessaires à la compréhension de chacun des paramètres.
  • Nous effectuons une sauvegarde de ce fichier :
ICON Terminal.png

cd /etc/squid3
cp ./squid.conf ./squid.conf.bak

  • Nous créons un nouveau fichier squid.conf vierge.
ICON Terminal.png

touch squid.conf

Architecture du réseau

  • Dans notre topologie, le serveur Squid3 se trouve entre le routeur (Box, Modem Internet) et le LAN.
Intégration du serveur en tant que passerelle
ICON boxWarning.png

Dans ce type de configuration, le serveur Squid3 est utilisé comme passerelle. Pour configurer un équipement Linux comme routeur, veuillez vous reporter à l'article Routeur_Linux.

Paramètres généraux

  • Le fichier de configuration de Squid3 se trouve dans le répertoire /etc/squid3 et se nomme squid.conf.
  • On définit en premier lieu le hostname qui correspond au nom de la machine.
visible_hostname prauxyla.net.ncad.fr
  • On peut aussi renseigner l'adresse mail du responsable technique et qui sera communiquée dans les pages d'erreurs du proxy.
cache_mgr tech@ncad.fr

Définition des ACLs

Fonctionnement

Les ACcess Lists (Listes d'accès) permettent d'établir des règles d'accès selon plusieurs critères (adresse IP, nom d'hôte, protocole).

  • La synthaxe d'une liste d'accès est la suivante :
acl <nom_reseau> src <plage_ip/adresse_ip>

Déclaration d'hôtes

  • Nous allons définir une ACL pour identifier les machines du réseau local.
acl reseaulocal src 10.0.0.0/24

Déclaration des protocoles

  • Nous allons définir une liste des protocoles TCP/IP qui seront autorisés à traverser le proxy.
acl SSL_ports port 443 563 
acl Safe_ports port 80         # http 
acl Safe_ports port 20         # ftp-data 
acl Safe_ports port 21         # ftp 
acl Safe_ports port 443 563    # ssl 
acl Safe_ports port 70         # gopher 
acl Safe_ports port 210        # wais 
acl Safe_ports port 10000      # Administration 
acl Safe_ports port 1025-65535 # unregistered ports 
acl Safe_ports port 5190       # AIM
acl Safe_ports port 5222       # jabber
acl Safe_ports port 5050       # Yahoo Messenger
acl Safe_ports port 1863       # MSN Messenger
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 Safe_ports port 631        # cups 
acl Safe_ports port 873        # rsync 
acl Safe_ports port 901        # SWAT
ICON Light.png
Pour des raisons de commodité nous nommons de la manière suivante les protocoles listés : Safe_ports pour les protocoles standard non sécurisé - et SSL_ports pour les protocoles sécurisés.


ICON Information.png

Les règles d'accès seront définies par la suite.

Règles d'accès

Initialisation du cache

  • On procède à la purge du cache de Squid3. Ce dernier sauvegarde toutes les pages consultées par les utilisateurs afin d'éviter d'avoir à les télécharger de nouveau.
acl purge method PURGE
  • On autorise l'établissement du tunnel HTTP entre les clients et le proxy.
acl CONNECT method CONNECT

Définition des autorisations

  • On autorise uniquement les protocoles qui ont été listés dans l'ACL Safe_ports :
http_access deny !Safe_ports
  • On autorise les postes informatiques du réseau local à se connecter au serveur proxy :
http_access allow reseaulocal
  • On interdit tous les autres accès non listés :
http_access deny all
  • Blocage des requêtes ICP :
icp_access deny all
  • Blocage des requêtes HTCP :
htcp_access deny all

Paramètres de fonctionnement du proxy

  • Port d'écoute du serveur proxy :
http_port 3128
  • Ne pas interroger le cache pour l'accès à des scripts cgi :
hierarchy_stoplist cgi-bin ?
  • Chemin vers le fichier des logs d'accès de Squid3 :
access_log /var/log/squid3/access.log squid
  • Temps de rafraîchissement du cache et durée de vie du cache :
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320
  • Port d'écoute du serveur proxy pour les requêtes ICP :
icp_port 3130

coredump_dir /var/spool/squid3

Fichier squid.conf

  • Voici le fichier de configuration ainsi obtenu :
visible_hostname prauxyla.net.ncad.fr
cache_mgr tech@ncad.fr

acl goulouxiou src 10.0.0.0/24

acl SSL_ports port 443 563 
acl Safe_ports port 80         # http 
acl Safe_ports port 20         # ftp-data 
acl Safe_ports port 21         # ftp 
acl Safe_ports port 443 563    # ssl 
acl Safe_ports port 70         # gopher 
acl Safe_ports port 210        # wais 
acl Safe_ports port 10000      # Administration 
acl Safe_ports port 1025-65535 # unregistered ports 
acl Safe_ports port 5190       # AIM
acl Safe_ports port 5222       # jabber
acl Safe_ports port 5050       # Yahoo Messenger
acl Safe_ports port 1863       # MSN Messenger
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 Safe_ports port 631        # cups 
acl Safe_ports port 873        # rsync 
acl Safe_ports port 901        # SWAT

acl purge method PURGE
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access allow reseaulocal
http_access deny all

icp_access deny all

htcp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid

refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320

icp_port 3130

coredump_dir /var/spool/squid3