SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
Squid
Proxy server




antislashn.org   Apache JBoss Squid - Squid   6 - 2 / 62
Proxy server
  ●    Proxy = mandataire
  ●    Proxy côté clients
  ●    Proxy installé à la sortie du réseau d'entreprise
  ●    Les navigateurs de l'entreprise passent par le
       proxy pour se connecter à internet
        ●    paramétrage des clients pour utiliser le proxy
  ●    Permet
        ●    de cacher les pages les plus fréquemment appelées
        ●    de filtrer les URL
antislashn.org                    Apache JBoss Squid - Squid   6 - 3 / 62
Reverse proxy




                 internet                        reverse   SERVEUR
                                                  proxy      WEB




antislashn.org      Apache JBoss Squid - Squid                6 - 4 / 62
Reverse proxy
  ●    Reverse proxy = mandataire inverse
        ●    surrogate proxy
  ●    Proxy installé côté serveur
        ●    en frontal du serveur web
        ●    pas de paramétrage des clients pour utiliser le serveur
             web
  ●    Permet
        ●    de faire du cache
        ●    de la répartition de charge
        ●    ...
antislashn.org                 Apache JBoss Squid - Squid     6 - 5 / 62
Présentation Squid
 ●    Squid
       ●    permet la réalisation d'un cache pour les clients d'un
            site web
       ●    peut aussi jouer le rôle de filtre HTTP
       ●    disponible sur de nombreuses plateformes
       ●    distribué sous licence GPL
       ●    site de référence : www.squidguard.org
       ●    initiateurs du projet
                 –   Päl Balzersen
                 –   Lars-Erik Häland

antislashn.org                          Apache JBoss Squid - Squid   6 - 6 / 62
Présentation Squid
  ●    Produit structuré et modulaire
        ●    squid : programme principale de gestion de cache
        ●    autres modules :
                 –   dnsserver : serveur de cache de noms de domaine
                 –   réécriture des URL
                 –   authentification




antislashn.org                      Apache JBoss Squid - Squid         6 - 7 / 62
Présentation Squid
  ●    Protocoles supportés
        ●    HTTP – Hyper Text Transfert Protocol
        ●    FTP – File Transfert Protocol
        ●    SSL – Secur Socket Layer
        ●    ICP - Internet Cache Protocole : protocole généraliste
             de communication entre serveurs de cache
        ●    Gopher
        ●    WAIS
        ●    HCTP – Hyper Cache Transfert Protocol : protocole de
             cache orienté HTTP

antislashn.org                Apache JBoss Squid - Squid      6 - 8 / 62
Présentation Squid
  ●    Peut jouer les rôles de
        ●    proxy server
        ●    reverse proxy
                 –   server surrogate
                 –   forward caching proxy
                 –   ne supporte pas tous les protocoles
  ●    Limitations
        ●    Squid n'est pas un firewall
        ●    ne gère pas les protocoles de news, real audio, vidéo
             conférence

antislashn.org                       Apache JBoss Squid - Squid   6 - 9 / 62
Installation sous Windows
  ●    Télécharger le binaire stable le plus récent
        ●    http://squid.acmeconsulting.it/index.html
  ●    Décompresser l'archive sous c :
  ●    Un répertoire c:squid est créé




antislashn.org                Apache JBoss Squid - Squid   6 - 10 / 62
Répertoires et fichiers
  ●    bin/squidclient
        ●    client HTTP pour tester Squid en proxy server
  ●    etc
        ●    répertoire des fichiers de configuration
  ●    libexec
        ●    répertoire contenant des utilitaires utilisés lors de la
             compilation de Squid
  ●    libexec/cachemgr.cgi
        ●    Cache Manager : interface web CGI de gestion du
             cache de Squid
antislashn.org                 Apache JBoss Squid - Squid         6 - 11 / 62
Répertoires et fichiers
  ●    share
        ●    répertoire de divers fichiers utilisés par Squid
                 –   répertoire des messages d'erreur
                      ●   un répertoire par langue
                 –   répertoire des icônes
  ●    var
        ●    répertoire de sauvegarde lors de l'exécution de Squid
        ●    var/cache : répertoire du cache Squid
        ●    var/log : répertoire des logs


antislashn.org                            Apache JBoss Squid - Squid   6 - 12 / 62
Répertoires et fichiers
  ●    sbin/squid
        ●    application Squid
        ●    doit être exécuté en root ou avec des privilèges de
             super utilisateur




antislashn.org                Apache JBoss Squid - Squid      6 - 13 / 62
Gestion du cache
  ●    Squid est un cache proxy
        ●    le proxy agit pour un autre
        ●    le cache stocke les informations les plus utilisées
  ●    Squid
        ●    reçoit les requêtes du client
        ●    transmet la requête au serveur HTTP
        ●    stocke l'information retournée par le serveur
        ●    si l'information est demandée plusieurs fois, c'est le
             contenu stocké qui est renvoyée

antislashn.org                 Apache JBoss Squid - Squid       6 - 14 / 62
Gestion du cache


        requête                  info dans le cache ?
                                  oui : l'info est prise     CACHE
                                  dans le cache


                  SQUID          non : la requête est transmise
        réponse                  au serveur


                                 info retournée
                                 par le serveur            SERVEUR
                                 cache mis à jour




antislashn.org            Apache JBoss Squid - Squid                 6 - 15 / 62
Gestion du cache
  ●    Lors de la réception d'un requête Squid renvoie
       une ressource du cache ou demande au serveur
       la ressource
        ●    en fonction de l'age de la ressource dans le cache
        ●    si la ressource est "fraîche", elle est envoyée
             directement au client
        ●    sinon Squid envoie une requête au serveur
                 –   if-modified-since




antislashn.org                  Apache JBoss Squid - Squid     6 - 16 / 62
Gestion du cache
  ●    Un bon cache nécessite de la mémoire
  ●    Algorithme de cache
        ●    trois types de variables sont utilisées
                 –   variables liées à la ressource dans le cache
                 –   variables fournies par le client
                 –   variables du fichier de configuration




antislashn.org                       Apache JBoss Squid - Squid     6 - 17 / 62
Gestion du cache
  ●    Variables associées à la ressource dans le cache
        ●    AGE : temps écoulé depuis l'entrée dans le cache
        ●    LM_AGE : temps écoulé entre la dernière modification
             de la ressource sur le serveur et son entrée dans le
             cache
        ●    LM_FACTOR : rapport entre AGE et LM_AGE
                 –   plus LM_FACTOR est grand, plus la ressource du cache à
                     des chances d'être périmée
        ●    EXPIRES : valeurs éventuelle fournit par le serveur
             lors de l'entrée de la ressource dans le cache
                 –   contient la date d'expiration de la ressource

antislashn.org                        Apache JBoss Squid - Squid      6 - 18 / 62
Gestion du cache
  ●    Variables associées à la ressource dans le cache



                 LM_AGE                                AGE


                                                                          temps

   dernière                           entrée de la           requête
   maj de la                           ressource              client
  ressource                          dans le cache
sur le serveur




antislashn.org            Apache JBoss Squid - Squid                   6 - 19 / 62
Gestion du cache
  ●    Variables fournies par le client
        ●    Squid tient compte de la présence éventuelle de la
             variable CLIENT_MAX_AGE
  ●    Variables du fichier de configuration
        ●    directive refresh_pattern
        refresh_pattern [-i] <url_regexp> MIN_AGE PERCENT MAX_AGE <options>

        ●    -i : ne pas tenir compte de la casse dans l'expression
             régulière
        ●    la minute est utilisée comme unité temporelle


antislashn.org                  Apache JBoss Squid - Squid              6 - 20 / 62
Gestion du cache
  ●    MIN_AGE : durée d'une ressource à prendre en
       compte si une durée explicite n'est pas fournie
  ●    PERCENT : pourcentage à prendre en compte
       sans durée explicite
  ●    MAX_AGE : age maximum à prendre en compte
       sans durée explicite




antislashn.org          Apache JBoss Squid - Squid   6 - 21 / 62
Gestion du cache
  ●    Exemple de valeurs par défaut
        ●    fichier squid.conf.default
                  refresh_pattern   ^ftp:    1440   20% 10080
                  refresh_pattern   ^gopher: 1440   0% 1440
                  refresh_pattern   -i (/cgi-bin/|?) 0 0% 0
                  refresh_pattern   .     0 20% 4320



  ●    MAX_AGE envoyée par le client prévaut sur celui
       du fichier
  ●    MIN_AGE est prioritaire à EXPIRES renvoyé par
       le serveur
antislashn.org                      Apache JBoss Squid - Squid   6 - 22 / 62
Gestion du cache
  ●    Algorithme
        ●    AGE > MAX_AGE : la ressource en cache est
             déclarée comme périmée
        ●    AGE <= MIN_AGE : ressource en cache déclarée
             comme fraîche
        ●    EXPIRES définit et dépassé : périmée
        ●    EXPIRES définit mais pas dépassé : fraîche
        ●    AGE > MAX_AGE : périmée
        ●    LM_FACTOR < PERCENT : fraîche
        ●    si aucune règle n’aboutit à la détermination : périmée

antislashn.org                Apache JBoss Squid - Squid      6 - 23 / 62
Fichier de configuration minimal
  ●    Le fichier de configuration squid.conf se trouve
        ●    Windows : c:squidetc.squid.conf
        ●    Ubuntu : /etc/squid/squid.conf
        ●    si installation par compilation et préfixe spécifique le
             fichier de conf se trouve sous
             ${prefix}/etc/squid.conf où ${prefix} est la valeur de
             l'option - - prefix lors de la compilation




antislashn.org                 Apache JBoss Squid - Squid        6 - 24 / 62
Fichier de configuration minimal
  ●    Configuration d'un proxy server
        ●    écoute sur le port 3128 par défaut
        ●    fichier etc/squid.conf
                       cache_dir ufs c:/squid/var/cache 100 16 256
                       acl my_machine src 192.168.3.48
                       http_access allow my_machine
                       http_port 3128
        ●    cache_dir : répertoire swap du cache
                 –   ufs : format de cache Squid
                 –   100Mo exploitable
                 –   16 sous répertoires de premier niveau
                 –   256 sous-répertoires de second niveau
antislashn.org                       Apache JBoss Squid - Squid      6 - 25 / 62
Fichier de configuration minimal
  ●    acl : directive Access Control List (ACL)
        ●    my_machine : nom de la directive ACL
        ●    src : type d'acl basé sur l'adresse IP d'un client
                 –   ici 192.168.3.49
  ●    http_access : règle d'accès sur un type d'accès
       HTTP
        ●    allow : permission d'accès pour l'ACL
                 –   ici l'ACL nommé my_machine
  ●    http_port : port d'écoute de Squid

antislashn.org                          Apache JBoss Squid - Squid   6 - 26 / 62
Fichier de configuration minimal
  ●    Test de la configuration
        ●    configurer le navigateur pour utiliser le proxy
                 –   indiquer l'IP de la machine où Squid est installé et le port du
                     proxy (3128 par défaut)




antislashn.org                        Apache JBoss Squid - Squid             6 - 27 / 62
Fichier de configuration minimal
  ●    Test de la configuration
        ●    démarrer Squid
        ●    tester une URL existante dans le navigateur
        ●    tester une URL inexistante dans le navigateur




antislashn.org                Apache JBoss Squid - Squid     6 - 28 / 62
Directives de base : http_port
  ●    http_port : port d'écoute de Squid
        ●    par défaut écoute sur toutes les interfaces, sur le port
             3128
        ●    on peut préciser
                 –   une adresse IP
                 –   un nom de machine
                 –   un nom de domaine
                 –   une URL
        ●    plusieurs directives http_port peuvent être
             présentes


antislashn.org                     Apache JBoss Squid - Squid   6 - 29 / 62
Directives de base : http_port
  ●    Exemples
                 http_port 8080


                 http_port 192.0.2.25:8080
                 http_port lan1.example.com:3128
                 http_port lan2.example.com:8081


                 http_port 3128 intercept


                 http_port 80 accel default=www.example.com




antislashn.org                    Apache JBoss Squid - Squid   6 - 30 / 62
Directives de base : acl
  ●    Access Control List
        ●    directive acl
        ●    directive de contrôle d'accès
                 –   utilisé par d'autre directives comme http_access, cache, …
        ●    chaque ACL
                 –   possède un nom
                 –   possède un type, suivi de sa valeur
                      ●   la valeur peut être contenue dans un autre fichier

                            acl ACL_NAME ACL_TYPE valuec

                            acl ACL_NAME ACL_TYPE "path/to/filename"


antislashn.org                            Apache JBoss Squid - Squid           6 - 31 / 62
Directives de base : acl
  ●    ACL pour le domaine example.com
                  acl example_site dstdomain example.com

        ●    si plusieurs domaines sont utilisés pour un même nom
                 acl example_sites dstdomain example.com example.com example.net

                 acl example_sites dstdomain example.com example.com
                 acl example.sites dstdomain example.net


                 acl example_site dstdomain "/opt/sqid/sites.txt"


                                                                    example.com
                                                                    example.net


antislashn.org                     Apache JBoss Squid - Squid                6 - 32 / 62
Directives de base : acl
    ●   Les noms des ACL
          ●      ne sont pas case-sensitive par défaut
                 –   peut-être changés avec une installation par compilation
          ●      ils sont multivalués
          ●      les valeurs sont agrégées les unes aux autres
    ●   Les ACL n'ont pas d'utilité en soi, elles sont
        utilisées par les directives d'accès




antislashn.org                       Apache JBoss Squid - Squid          6 - 33 / 62
Directives de base : acl
    ●   Types ACL
          ●      src : ACL basée sur l'IP du client
          ●      dst : ACL basée sur l'IP demandée dans la requête
          ●      srcdomain : ACL basée sur le domaine du client
          ●      dstdomain : ACL basée sur le domaine demandé
          ●      port : ACL basée sur le port de destination
          ●      proto : ACL basée sur un protocole
          ●      consulter la documentation pour les autres types
                 –   time, url_regex, browser, ...


antislashn.org                     Apache JBoss Squid - Squid   6 - 34 / 62
Directives de base : http_access
  ●    Syntaxe de base
                        http_access allow|denay ACL_NAME

        ●    autorise ou non l'accès HTTP sur AC_NAME
  ●    Aucune ligne http_access n'est présente
        ●    aucun accès n'est possible
  ●    Si aucune ligne d'accès ne correspond
        ●    l'opposé de la dernière ligne est appliquée
                 –   si cette dernière ligne autorise l'accès, le comportement par
                     défaut sera de bloquer l'accès


antislashn.org                        Apache JBoss Squid - Squid            6 - 35 / 62
Directives de base : http_access
  ●    Bonne pratique
        ●    mettre en dernière ligne                  http_access allow all

                 –   ou   http_access deny all

        ●    le comportement opposé sera utilisé si aucune ligne
             d'accès ne correspond




antislashn.org                         Apache JBoss Squid - Squid              6 - 36 / 62
Directives de base : http_access
  ●    Exemples
                 acl my_machines src 192.168.3.49 192.168.3.48
                 http_access allow my_machines
        ●    autorise l'accès de certaines machines, et bloque les
             autres




antislashn.org                      Apache JBoss Squid - Squid   6 - 37 / 62
Directives de base :
http_reply_access
  ●    Contrôle la réponse reçu du serveur web
        ●    syntaxe similaire à http_access
                     acl my_machine src 192.0.2.21
                     http_access allow my_machine
                     http_reply_access deny my_machine

                 –   autorise les accès de la machine 192.0.2.21
                 –   bloque les accès vers les sites installés sur la machine
                     192.0.2.21




antislashn.org                         Apache JBoss Squid - Squid           6 - 38 / 62
Directives de base
  ●    Autres directives d'accès
        ●    icp_access : accès ICP (Internet Cache Protocol)
        ●    htcp_access : accès HTCP (HyperText Cache
             Protocol)
        ●    htcp_clr_access : accès HTCP pour supprimer les
             caches
                 –   requête CLR
        ●    autres directives
                 –   miss_access, ident_lookup_access



antislashn.org                     Apache JBoss Squid - Squid   6 - 39 / 62
Directives de base
  ●    Quelques exemples
             acl bad_clients src 192.0.2.0/24
             miss_access deny bad_clients
             miss_access allow all

        ●    bad_clients : machines de 192.0.2.0 à 192.0.2.255
                 –   cf. https://en.wikipedia.org/wiki/IPv4_subnetting_reference
        ●    interdit aux machines bad_clients d'utiliser le serveur
             proxy comme proxy parent
        ●    autorise les autres machines qui passent l'accès HTTP
             (http_access) d'utiliser le serveur proxy comme
             parent

antislashn.org                        Apache JBoss Squid - Squid           6 - 40 / 62
Cache mémoire
  ●    Les documents mis en cache RAM sont servis
       beaucoup plus rapidement que ceux en cache
       disque
        ●    l'espace RAM est moins important que l'espace disque
        ●    l'espace RAM ne peut pas recevoir l'ensemble des
             documents web à mettre en cache




antislashn.org               Apache JBoss Squid - Squid    6 - 41 / 62
Cache mémoire
  ●    Objets mis en cache RAM
        ●    ressources de la requête courante
        ●    ressources les plus demandées
                 –   sont mis sur le disque si besoin de RAM
        ●    ressources d'erreur
                 –   réponse 404 par exemple
                 –   sont mis sur le disque si besoin de RAM




antislashn.org                       Apache JBoss Squid - Squid   6 - 42 / 62
Cache mémoire
  ●    Taille mémoire
        ●    par défaut : 256 Mb
        ●    lors de la définition de la taille du cache RAM
                 –   tenir compte des besoins des autres applications
                      ●   sous Linux : free -m
                 –   par exemple pour 4 Go
                      ●   l’ensemble des processus utilise 1 Go
                      ●   moins 512 Ko si les processus ont besoin de plus de mémoire
                      ●   le cache mémoire peut être dimensionné à 2,5 Go
                                    cache_mem 2500 MB




antislashn.org                           Apache JBoss Squid - Squid                6 - 43 / 62
Configuration du moniteur Squid
  ●    Squid est livré avec une interface web de gestion
       du cache
        ●    cachemgr
  ●    Configuration du serveur Apache pour activer
       cachemgr
        ●    dans le fichier httpd.conf
       ScriptAlias /Squid/cgi-bin/cachemgr.cgi C:squidlibexeccachemgr.cgi
       <Location /Squid/cgi-bin/cachemgr.cgi>
         order allow,deny
         allow from 127.0.0.1
       </Location>




antislashn.org                  Apache JBoss Squid - Squid               6 - 44 / 62
Configuration du moniteur Squid
  ●    Dans le fichier de configuration de Squid il faut
       ajouter les lignes suivantes
                      cache_mgr admin@antislashn.org
                      cachemgr_passwd franck all



  ●    Redémarrer Apache et Squid et tester l'URL
        ●    http://localhost/Squid/cgi-bin/cachemgr.cgi




antislashn.org                 Apache JBoss Squid - Squid   6 - 45 / 62
Configuration du moniteur Squid



                                              valeur de la directive cache_mgr




                                 valeur de la directive cachemgr_passwd




antislashn.org   Apache JBoss Squid - Squid                                      6 - 46 / 62
Configuration du moniteur Squid
  ●    Le moniteur propose alors un ensemble de liens




antislashn.org         Apache JBoss Squid - Squid   6 - 47 / 62
Squid configuré en surrogate server
  ●    Surrogate server, ou reverse proxy, ou HTTP
       accelerator
        ●    sert des requêtes pour le compte d'un serveur


                                                                     Squid
                               internet                             en mode      SERVEUR
                                                                     HTTP          WEB
                                                                   accelerator


                       on sert ce qui vient du cache



                                             on cache tout ce que l'on peut


antislashn.org                      Apache JBoss Squid - Squid                      6 - 48 / 62
Squid configuré en surrogate server
  ●    Squid doit écouter sur le port 80 pour répondre
       aux requêtes HTTP
        ●    attention si le serveur web est sur la même machine
                 –   Squid peut écouter sur le port 80 de l'adresse IP publique
                 –   le serveur HTTP peut écouter sur le port 80 de la boucle
                     locale (127.0.0.1)




antislashn.org                        Apache JBoss Squid - Squid           6 - 49 / 62
Squid configuré en surrogate server
  ●    Directive http_port
        ●    syntaxe : http_port 80 accel [options]
                 –   80 : port d'écoute
                 –   accel : mode surrogate server
  ●    Options de la directive http_port
        ●    defaultsite : site par défaut à utilisé si nom
             précisé dans l'en-tête HTTP
        ●    vhost : support des domaines multiples
        ●    vport : support des domaines multiples basé sur IP


antislashn.org                       Apache JBoss Squid - Squid   6 - 50 / 62
Squid configuré en surrogate server
  ●    Options de la directive http_port
        ●    allow-direct: permet le direct forwarding
        ●    ignore-cc : ignore les en-tête HTTP Cache-
             control




antislashn.org              Apache JBoss Squid - Squid    6 - 51 / 62
Squid configuré en surrogate server
  ●    Directive https_port
        ●    syntaxe :
             https_port [IP_ADDRESS :]port accel cert=cert.pem
             [key=key.pem][options]
        ●    cert : chemin absolu vers le certificat SSL contenant
             la clé publique et la clé privée
                 –   si cert.pem ne contient pas la clé privée, key contient
                     chemin vers la clé privée




antislashn.org                        Apache JBoss Squid - Squid               6 - 52 / 62
Squid configuré en surrogate server
  ●    Options de la directive https_port
        ●    defaultsite : site par défaut à utilisé si nom
             précisé dans l'en-tête HTTPS
        ●    vhost : support des domaines multiples
        ●    version : version SSL – entier
                 –   1   :   détection automatique (par défaut)
                 –   2   :   SSLv2
                 –   3   :   SSLv3
                 –   4   :   TLSv1
        ●    cf. la documentation pour les autres options

antislashn.org                         Apache JBoss Squid - Squid   6 - 53 / 62
Squid configuré en surrogate server
  ●    Directive cache_peer
        ●    indique comment Squid contact ses pairs et comment
             il communique avec eux
        ●    syntaxe
                 –   cache_peer hostname_or_ip type port icp_port [options]
                 –   hostname_or_ip : adresse du proxy, serveur, ou cache
                     cible
                 –   type : type de cible (parent, sibling ou multicast)
                 –   port : port HTTP de la cible
                 –   icp_port : port ICP ou HTCP de la cible
                      ●   0 pour désactiver


antislashn.org                            Apache JBoss Squid - Squid   6 - 54 / 62
Squid configuré en surrogate server
  ●    Directive cache_peer
        ●    quelques options
                 –   no-query : déselectionne ICP/HTCP
                 –   round-robin : algo appliqué s'il y plusieurs parents
                 –   originserver : le pair est vu comme un serveur web
                 –   name : nom donné au pair cible




antislashn.org                       Apache JBoss Squid - Squid             6 - 55 / 62
Squid configuré en surrogate server
  ●    Directive cache_peer_access
        ●    permet de déterminer avec quelle règle Squid fait
             suivre, ou non, une requête
        ●    syntaxe
                 –   cache_peer_access peername allow|deny [!] acl_name




antislashn.org                     Apache JBoss Squid - Squid       6 - 56 / 62
Squid configuré en interception proxy
  ●    Le mode server proxy nécessite une configuration
       des navigateurs
  ●    Le mode mode "interception proxy" est une mode
       de "server proxy" sans configuration des
       navigateurs
        ●    autres nom : transparent caching, cache redirection,
             interception caching




antislashn.org                Apache JBoss Squid - Squid     6 - 57 / 62
Squid configuré en interception proxy
  ●    Le mode server proxy nécessite une configuration
       des navigateurs
  ●    Le mode mode "interception proxy" est une mode
       de "server proxy" sans configuration des
       navigateurs
        ●    autres nom : transparent caching, cache redirection,
             interception caching




antislashn.org                Apache JBoss Squid - Squid     6 - 58 / 62
Squid configuré en interception proxy
  ●    En général ce mode est configuré à l'aide d'un
       routeur qui re-route les demandes des clients vers
       Squid
  ●    Avantages
        ●    pas de configuration des clients
        ●    meilleur contrôle des utilisateurs, car ils ne peuvent
             pas contourner le serveur proxy
        ●    le routeur peut faire suivre les requêtes vers Internet si
              le serveur Squid tombe


antislashn.org                 Apache JBoss Squid - Squid       6 - 59 / 62
Squid configuré en interception proxy
  ●    Inconvénients
        ●    violation des standards TCP/IP
                 –   les routeurs et switchs sont censés faire suivre les paquets
                     vers l'hôte destinataire
        ●    problèmes potentiels de routage
                 –   si les routes sont déterminées dynamiquement
        ●    pas d'authentification
                 –   le proxy ne fonctionne pas comme un navigateur, et le
                     navigateur ne "savent pas" qu'ils ne sont pas connectés à un
                     serveur



antislashn.org                        Apache JBoss Squid - Squid           6 - 60 / 62
Squid configuré en interception proxy
  ●    Inconvénients
        ●    support uniquement de HTTP
                 –   Squid ne sait intercepter que le trafic HTTP
        ●    problèmes sur les routes
                 –   si les routes sont déterminées dynamiquement
        ●    exposition des clients
                 –   car Squid ne peut intercepter que HTTP, le client doit
                     toujours aller directement sur Internet pour HTTPS, FTP, ...




antislashn.org                        Apache JBoss Squid - Squid           6 - 61 / 62
Ressources
  ●    Squid Proxy Server 3.1 Beginners Guide
                 –   auteur : Kulbir Saini
                 –   éditeur : PACKT Pubisshing
                 –   PDF open source
  ●    Squid - The definitive guide
                 –   auteur : Duane Wessels
                 –   éditeur : O'Reilly




antislashn.org                      Apache JBoss Squid - Squid   6 - 62 / 62

Contenu connexe

Tendances

Mise en place de la solution d’authentification Radius sous réseau LAN câblé
Mise en place de la solution d’authentification Radius sous réseau LAN câbléMise en place de la solution d’authentification Radius sous réseau LAN câblé
Mise en place de la solution d’authentification Radius sous réseau LAN câbléCharif Khrichfa
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedTECOS
 
Rapport mise en place d'un sevrer VPN .
   Rapport mise en place d'un sevrer VPN .   Rapport mise en place d'un sevrer VPN .
Rapport mise en place d'un sevrer VPN .Mouad Lousimi
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosErwan 'Labynocle' Ben Souiden
 
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.x
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.xAlphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.x
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.xAlphorm
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISoukaina Boujadi
 
Installation et Configuration de Pfsense
Installation et Configuration de PfsenseInstallation et Configuration de Pfsense
Installation et Configuration de PfsenseIsmail Rachdaoui
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détectionManassé Achim kpaya
 
Présentation de nagios
Présentation de nagiosPrésentation de nagios
Présentation de nagiosilyassin
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)Noël
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm
 
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...Christophe Lauer
 
Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"Ayoub Rouzi
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5Alphorm
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Yaya N'Tyeni Sanogo
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxZakariyaa AIT ELMOUDEN
 

Tendances (20)

Tuto pfsense
Tuto pfsenseTuto pfsense
Tuto pfsense
 
Mise en place de la solution d’authentification Radius sous réseau LAN câblé
Mise en place de la solution d’authentification Radius sous réseau LAN câbléMise en place de la solution d’authentification Radius sous réseau LAN câblé
Mise en place de la solution d’authentification Radius sous réseau LAN câblé
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamed
 
Rapport mise en place d'un sevrer VPN .
   Rapport mise en place d'un sevrer VPN .   Rapport mise en place d'un sevrer VPN .
Rapport mise en place d'un sevrer VPN .
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de Nagios
 
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.x
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.xAlphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.x
Alphorm.com Formation Certification NSE4 : Fortinet Fortigate Security 6.x
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFI
 
Installation et Configuration de Pfsense
Installation et Configuration de PfsenseInstallation et Configuration de Pfsense
Installation et Configuration de Pfsense
 
Cisco ASA
Cisco ASACisco ASA
Cisco ASA
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détection
 
Présentation de nagios
Présentation de nagiosPrésentation de nagios
Présentation de nagios
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
 
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...
Tutoriel : Apprendre à configurer et gérer un serveur Web sous Windows Server...
 
Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"
 
Rapport finiale
Rapport finialeRapport finiale
Rapport finiale
 
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
wifi securite
wifi securite wifi securite
wifi securite
 

En vedette

Projet administration-sécurité-réseaux
Projet administration-sécurité-réseauxProjet administration-sécurité-réseaux
Projet administration-sécurité-réseauxRabeb Boumaiza
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntuAlvaro López
 
Squid proxy-configuration-guide
Squid proxy-configuration-guideSquid proxy-configuration-guide
Squid proxy-configuration-guidejasembo
 
Linux11 Proxy Server
Linux11 Proxy ServerLinux11 Proxy Server
Linux11 Proxy ServerJainul Musani
 
Http Proxy Server
Http Proxy ServerHttp Proxy Server
Http Proxy ServerSourav Roy
 
Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsenser_sadoun
 
Ce hv6 module 54 proxy server technologies
Ce hv6 module 54 proxy server technologiesCe hv6 module 54 proxy server technologies
Ce hv6 module 54 proxy server technologiesVi Tính Hoàng Nam
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014bryan_call
 
Dhcp, dns and proxy server (1)
Dhcp, dns and proxy server (1)Dhcp, dns and proxy server (1)
Dhcp, dns and proxy server (1)Sahira Khan
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagioshindif
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagiosjeyg
 
02 ponts petits les planes d'hotsoles 16-03-11
02 ponts petits les planes d'hotsoles 16-03-1102 ponts petits les planes d'hotsoles 16-03-11
02 ponts petits les planes d'hotsoles 16-03-11sala6
 
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015onibi29
 
Arles. des mireilles ( c h )
Arles. des mireilles ( c h )Arles. des mireilles ( c h )
Arles. des mireilles ( c h )Dominique Pongi
 
Crédit agricole lance son application recrutement
Crédit agricole lance son application recrutementCrédit agricole lance son application recrutement
Crédit agricole lance son application recrutementGroupe Crédit Agricole
 

En vedette (20)

Cc proxy
Cc proxyCc proxy
Cc proxy
 
Projet administration-sécurité-réseaux
Projet administration-sécurité-réseauxProjet administration-sécurité-réseaux
Projet administration-sécurité-réseaux
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntu
 
Squid proxy-configuration-guide
Squid proxy-configuration-guideSquid proxy-configuration-guide
Squid proxy-configuration-guide
 
Linux11 Proxy Server
Linux11 Proxy ServerLinux11 Proxy Server
Linux11 Proxy Server
 
Supervision
SupervisionSupervision
Supervision
 
Http Proxy Server
Http Proxy ServerHttp Proxy Server
Http Proxy Server
 
Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsense
 
Ce hv6 module 54 proxy server technologies
Ce hv6 module 54 proxy server technologiesCe hv6 module 54 proxy server technologies
Ce hv6 module 54 proxy server technologies
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014
 
Squid
SquidSquid
Squid
 
Dhcp, dns and proxy server (1)
Dhcp, dns and proxy server (1)Dhcp, dns and proxy server (1)
Dhcp, dns and proxy server (1)
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagios
 
Proxy Servers
Proxy ServersProxy Servers
Proxy Servers
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
Presentacion BlueZebra Final
Presentacion BlueZebra FinalPresentacion BlueZebra Final
Presentacion BlueZebra Final
 
02 ponts petits les planes d'hotsoles 16-03-11
02 ponts petits les planes d'hotsoles 16-03-1102 ponts petits les planes d'hotsoles 16-03-11
02 ponts petits les planes d'hotsoles 16-03-11
 
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015
Future thinking nouveaux modes-de-contacts-et-de-paiement volet 2015
 
Arles. des mireilles ( c h )
Arles. des mireilles ( c h )Arles. des mireilles ( c h )
Arles. des mireilles ( c h )
 
Crédit agricole lance son application recrutement
Crédit agricole lance son application recrutementCrédit agricole lance son application recrutement
Crédit agricole lance son application recrutement
 

Similaire à Squid

Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CachePierre Lannoy
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Apache server configuration & sécurisation -
Apache server configuration & sécurisation  -Apache server configuration & sécurisation  -
Apache server configuration & sécurisation -achraf_ing
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrêmeOVHcloud
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Olivier Gutknecht
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupalOxalide
 
Alphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Modern Data Stack France
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Steven VAN POECK
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéNoureddine BOUYAHIAOUI
 

Similaire à Squid (20)

Cours 8 squid.pdf
Cours 8 squid.pdfCours 8 squid.pdf
Cours 8 squid.pdf
 
Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du Cache
 
Openstack framework Iaas
Openstack framework IaasOpenstack framework Iaas
Openstack framework Iaas
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Apache server configuration & sécurisation -
Apache server configuration & sécurisation  -Apache server configuration & sécurisation  -
Apache server configuration & sécurisation -
 
[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême[FR] Les requêtes HTTP de l'extrême
[FR] Les requêtes HTTP de l'extrême
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
Cache
CacheCache
Cache
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
 
Alphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.x
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
Administration glassfish 3
Administration glassfish 3Administration glassfish 3
Administration glassfish 3
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
 

Plus de Franck SIMON

Distribuer une librairie via maven
Distribuer une librairie via mavenDistribuer une librairie via maven
Distribuer une librairie via mavenFranck SIMON
 
Java 8 - interfaces
Java 8 - interfacesJava 8 - interfaces
Java 8 - interfacesFranck SIMON
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et streamFranck SIMON
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de donnéesFranck SIMON
 
Description d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumDescription d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumFranck SIMON
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMXFranck SIMON
 
Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrenteFranck SIMON
 
Android Input Method Editor
Android   Input Method EditorAndroid   Input Method Editor
Android Input Method EditorFranck SIMON
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuéesFranck SIMON
 
Développement Android
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
 
Java scripting api
Java scripting apiJava scripting api
Java scripting apiFranck SIMON
 

Plus de Franck SIMON (18)

Distribuer une librairie via maven
Distribuer une librairie via mavenDistribuer une librairie via maven
Distribuer une librairie via maven
 
Java 9 modules
Java 9    modulesJava 9    modules
Java 9 modules
 
Java 8 - lambda
Java 8 - lambdaJava 8 - lambda
Java 8 - lambda
 
Java 8 - interfaces
Java 8 - interfacesJava 8 - interfaces
Java 8 - interfaces
 
Java 8 - DateTime
Java 8 - DateTimeJava 8 - DateTime
Java 8 - DateTime
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de données
 
Description d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumDescription d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimum
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
Android ORMLite
Android   ORMLiteAndroid   ORMLite
Android ORMLite
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMX
 
Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrente
 
Android Input Method Editor
Android   Input Method EditorAndroid   Input Method Editor
Android Input Method Editor
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Android NDK
Android   NDKAndroid   NDK
Android NDK
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
jQuery
jQueryjQuery
jQuery
 
Java scripting api
Java scripting apiJava scripting api
Java scripting api
 

Squid

  • 2. Proxy server antislashn.org Apache JBoss Squid - Squid 6 - 2 / 62
  • 3. Proxy server ● Proxy = mandataire ● Proxy côté clients ● Proxy installé à la sortie du réseau d'entreprise ● Les navigateurs de l'entreprise passent par le proxy pour se connecter à internet ● paramétrage des clients pour utiliser le proxy ● Permet ● de cacher les pages les plus fréquemment appelées ● de filtrer les URL antislashn.org Apache JBoss Squid - Squid 6 - 3 / 62
  • 4. Reverse proxy internet reverse SERVEUR proxy WEB antislashn.org Apache JBoss Squid - Squid 6 - 4 / 62
  • 5. Reverse proxy ● Reverse proxy = mandataire inverse ● surrogate proxy ● Proxy installé côté serveur ● en frontal du serveur web ● pas de paramétrage des clients pour utiliser le serveur web ● Permet ● de faire du cache ● de la répartition de charge ● ... antislashn.org Apache JBoss Squid - Squid 6 - 5 / 62
  • 6. Présentation Squid ● Squid ● permet la réalisation d'un cache pour les clients d'un site web ● peut aussi jouer le rôle de filtre HTTP ● disponible sur de nombreuses plateformes ● distribué sous licence GPL ● site de référence : www.squidguard.org ● initiateurs du projet – Päl Balzersen – Lars-Erik Häland antislashn.org Apache JBoss Squid - Squid 6 - 6 / 62
  • 7. Présentation Squid ● Produit structuré et modulaire ● squid : programme principale de gestion de cache ● autres modules : – dnsserver : serveur de cache de noms de domaine – réécriture des URL – authentification antislashn.org Apache JBoss Squid - Squid 6 - 7 / 62
  • 8. Présentation Squid ● Protocoles supportés ● HTTP – Hyper Text Transfert Protocol ● FTP – File Transfert Protocol ● SSL – Secur Socket Layer ● ICP - Internet Cache Protocole : protocole généraliste de communication entre serveurs de cache ● Gopher ● WAIS ● HCTP – Hyper Cache Transfert Protocol : protocole de cache orienté HTTP antislashn.org Apache JBoss Squid - Squid 6 - 8 / 62
  • 9. Présentation Squid ● Peut jouer les rôles de ● proxy server ● reverse proxy – server surrogate – forward caching proxy – ne supporte pas tous les protocoles ● Limitations ● Squid n'est pas un firewall ● ne gère pas les protocoles de news, real audio, vidéo conférence antislashn.org Apache JBoss Squid - Squid 6 - 9 / 62
  • 10. Installation sous Windows ● Télécharger le binaire stable le plus récent ● http://squid.acmeconsulting.it/index.html ● Décompresser l'archive sous c : ● Un répertoire c:squid est créé antislashn.org Apache JBoss Squid - Squid 6 - 10 / 62
  • 11. Répertoires et fichiers ● bin/squidclient ● client HTTP pour tester Squid en proxy server ● etc ● répertoire des fichiers de configuration ● libexec ● répertoire contenant des utilitaires utilisés lors de la compilation de Squid ● libexec/cachemgr.cgi ● Cache Manager : interface web CGI de gestion du cache de Squid antislashn.org Apache JBoss Squid - Squid 6 - 11 / 62
  • 12. Répertoires et fichiers ● share ● répertoire de divers fichiers utilisés par Squid – répertoire des messages d'erreur ● un répertoire par langue – répertoire des icônes ● var ● répertoire de sauvegarde lors de l'exécution de Squid ● var/cache : répertoire du cache Squid ● var/log : répertoire des logs antislashn.org Apache JBoss Squid - Squid 6 - 12 / 62
  • 13. Répertoires et fichiers ● sbin/squid ● application Squid ● doit être exécuté en root ou avec des privilèges de super utilisateur antislashn.org Apache JBoss Squid - Squid 6 - 13 / 62
  • 14. Gestion du cache ● Squid est un cache proxy ● le proxy agit pour un autre ● le cache stocke les informations les plus utilisées ● Squid ● reçoit les requêtes du client ● transmet la requête au serveur HTTP ● stocke l'information retournée par le serveur ● si l'information est demandée plusieurs fois, c'est le contenu stocké qui est renvoyée antislashn.org Apache JBoss Squid - Squid 6 - 14 / 62
  • 15. Gestion du cache requête info dans le cache ? oui : l'info est prise CACHE dans le cache SQUID non : la requête est transmise réponse au serveur info retournée par le serveur SERVEUR cache mis à jour antislashn.org Apache JBoss Squid - Squid 6 - 15 / 62
  • 16. Gestion du cache ● Lors de la réception d'un requête Squid renvoie une ressource du cache ou demande au serveur la ressource ● en fonction de l'age de la ressource dans le cache ● si la ressource est "fraîche", elle est envoyée directement au client ● sinon Squid envoie une requête au serveur – if-modified-since antislashn.org Apache JBoss Squid - Squid 6 - 16 / 62
  • 17. Gestion du cache ● Un bon cache nécessite de la mémoire ● Algorithme de cache ● trois types de variables sont utilisées – variables liées à la ressource dans le cache – variables fournies par le client – variables du fichier de configuration antislashn.org Apache JBoss Squid - Squid 6 - 17 / 62
  • 18. Gestion du cache ● Variables associées à la ressource dans le cache ● AGE : temps écoulé depuis l'entrée dans le cache ● LM_AGE : temps écoulé entre la dernière modification de la ressource sur le serveur et son entrée dans le cache ● LM_FACTOR : rapport entre AGE et LM_AGE – plus LM_FACTOR est grand, plus la ressource du cache à des chances d'être périmée ● EXPIRES : valeurs éventuelle fournit par le serveur lors de l'entrée de la ressource dans le cache – contient la date d'expiration de la ressource antislashn.org Apache JBoss Squid - Squid 6 - 18 / 62
  • 19. Gestion du cache ● Variables associées à la ressource dans le cache LM_AGE AGE temps dernière entrée de la requête maj de la ressource client ressource dans le cache sur le serveur antislashn.org Apache JBoss Squid - Squid 6 - 19 / 62
  • 20. Gestion du cache ● Variables fournies par le client ● Squid tient compte de la présence éventuelle de la variable CLIENT_MAX_AGE ● Variables du fichier de configuration ● directive refresh_pattern refresh_pattern [-i] <url_regexp> MIN_AGE PERCENT MAX_AGE <options> ● -i : ne pas tenir compte de la casse dans l'expression régulière ● la minute est utilisée comme unité temporelle antislashn.org Apache JBoss Squid - Squid 6 - 20 / 62
  • 21. Gestion du cache ● MIN_AGE : durée d'une ressource à prendre en compte si une durée explicite n'est pas fournie ● PERCENT : pourcentage à prendre en compte sans durée explicite ● MAX_AGE : age maximum à prendre en compte sans durée explicite antislashn.org Apache JBoss Squid - Squid 6 - 21 / 62
  • 22. Gestion du cache ● Exemple de valeurs par défaut ● fichier squid.conf.default refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 refresh_pattern . 0 20% 4320 ● MAX_AGE envoyée par le client prévaut sur celui du fichier ● MIN_AGE est prioritaire à EXPIRES renvoyé par le serveur antislashn.org Apache JBoss Squid - Squid 6 - 22 / 62
  • 23. Gestion du cache ● Algorithme ● AGE > MAX_AGE : la ressource en cache est déclarée comme périmée ● AGE <= MIN_AGE : ressource en cache déclarée comme fraîche ● EXPIRES définit et dépassé : périmée ● EXPIRES définit mais pas dépassé : fraîche ● AGE > MAX_AGE : périmée ● LM_FACTOR < PERCENT : fraîche ● si aucune règle n’aboutit à la détermination : périmée antislashn.org Apache JBoss Squid - Squid 6 - 23 / 62
  • 24. Fichier de configuration minimal ● Le fichier de configuration squid.conf se trouve ● Windows : c:squidetc.squid.conf ● Ubuntu : /etc/squid/squid.conf ● si installation par compilation et préfixe spécifique le fichier de conf se trouve sous ${prefix}/etc/squid.conf où ${prefix} est la valeur de l'option - - prefix lors de la compilation antislashn.org Apache JBoss Squid - Squid 6 - 24 / 62
  • 25. Fichier de configuration minimal ● Configuration d'un proxy server ● écoute sur le port 3128 par défaut ● fichier etc/squid.conf cache_dir ufs c:/squid/var/cache 100 16 256 acl my_machine src 192.168.3.48 http_access allow my_machine http_port 3128 ● cache_dir : répertoire swap du cache – ufs : format de cache Squid – 100Mo exploitable – 16 sous répertoires de premier niveau – 256 sous-répertoires de second niveau antislashn.org Apache JBoss Squid - Squid 6 - 25 / 62
  • 26. Fichier de configuration minimal ● acl : directive Access Control List (ACL) ● my_machine : nom de la directive ACL ● src : type d'acl basé sur l'adresse IP d'un client – ici 192.168.3.49 ● http_access : règle d'accès sur un type d'accès HTTP ● allow : permission d'accès pour l'ACL – ici l'ACL nommé my_machine ● http_port : port d'écoute de Squid antislashn.org Apache JBoss Squid - Squid 6 - 26 / 62
  • 27. Fichier de configuration minimal ● Test de la configuration ● configurer le navigateur pour utiliser le proxy – indiquer l'IP de la machine où Squid est installé et le port du proxy (3128 par défaut) antislashn.org Apache JBoss Squid - Squid 6 - 27 / 62
  • 28. Fichier de configuration minimal ● Test de la configuration ● démarrer Squid ● tester une URL existante dans le navigateur ● tester une URL inexistante dans le navigateur antislashn.org Apache JBoss Squid - Squid 6 - 28 / 62
  • 29. Directives de base : http_port ● http_port : port d'écoute de Squid ● par défaut écoute sur toutes les interfaces, sur le port 3128 ● on peut préciser – une adresse IP – un nom de machine – un nom de domaine – une URL ● plusieurs directives http_port peuvent être présentes antislashn.org Apache JBoss Squid - Squid 6 - 29 / 62
  • 30. Directives de base : http_port ● Exemples http_port 8080 http_port 192.0.2.25:8080 http_port lan1.example.com:3128 http_port lan2.example.com:8081 http_port 3128 intercept http_port 80 accel default=www.example.com antislashn.org Apache JBoss Squid - Squid 6 - 30 / 62
  • 31. Directives de base : acl ● Access Control List ● directive acl ● directive de contrôle d'accès – utilisé par d'autre directives comme http_access, cache, … ● chaque ACL – possède un nom – possède un type, suivi de sa valeur ● la valeur peut être contenue dans un autre fichier acl ACL_NAME ACL_TYPE valuec acl ACL_NAME ACL_TYPE "path/to/filename" antislashn.org Apache JBoss Squid - Squid 6 - 31 / 62
  • 32. Directives de base : acl ● ACL pour le domaine example.com acl example_site dstdomain example.com ● si plusieurs domaines sont utilisés pour un même nom acl example_sites dstdomain example.com example.com example.net acl example_sites dstdomain example.com example.com acl example.sites dstdomain example.net acl example_site dstdomain "/opt/sqid/sites.txt" example.com example.net antislashn.org Apache JBoss Squid - Squid 6 - 32 / 62
  • 33. Directives de base : acl ● Les noms des ACL ● ne sont pas case-sensitive par défaut – peut-être changés avec une installation par compilation ● ils sont multivalués ● les valeurs sont agrégées les unes aux autres ● Les ACL n'ont pas d'utilité en soi, elles sont utilisées par les directives d'accès antislashn.org Apache JBoss Squid - Squid 6 - 33 / 62
  • 34. Directives de base : acl ● Types ACL ● src : ACL basée sur l'IP du client ● dst : ACL basée sur l'IP demandée dans la requête ● srcdomain : ACL basée sur le domaine du client ● dstdomain : ACL basée sur le domaine demandé ● port : ACL basée sur le port de destination ● proto : ACL basée sur un protocole ● consulter la documentation pour les autres types – time, url_regex, browser, ... antislashn.org Apache JBoss Squid - Squid 6 - 34 / 62
  • 35. Directives de base : http_access ● Syntaxe de base http_access allow|denay ACL_NAME ● autorise ou non l'accès HTTP sur AC_NAME ● Aucune ligne http_access n'est présente ● aucun accès n'est possible ● Si aucune ligne d'accès ne correspond ● l'opposé de la dernière ligne est appliquée – si cette dernière ligne autorise l'accès, le comportement par défaut sera de bloquer l'accès antislashn.org Apache JBoss Squid - Squid 6 - 35 / 62
  • 36. Directives de base : http_access ● Bonne pratique ● mettre en dernière ligne http_access allow all – ou http_access deny all ● le comportement opposé sera utilisé si aucune ligne d'accès ne correspond antislashn.org Apache JBoss Squid - Squid 6 - 36 / 62
  • 37. Directives de base : http_access ● Exemples acl my_machines src 192.168.3.49 192.168.3.48 http_access allow my_machines ● autorise l'accès de certaines machines, et bloque les autres antislashn.org Apache JBoss Squid - Squid 6 - 37 / 62
  • 38. Directives de base : http_reply_access ● Contrôle la réponse reçu du serveur web ● syntaxe similaire à http_access acl my_machine src 192.0.2.21 http_access allow my_machine http_reply_access deny my_machine – autorise les accès de la machine 192.0.2.21 – bloque les accès vers les sites installés sur la machine 192.0.2.21 antislashn.org Apache JBoss Squid - Squid 6 - 38 / 62
  • 39. Directives de base ● Autres directives d'accès ● icp_access : accès ICP (Internet Cache Protocol) ● htcp_access : accès HTCP (HyperText Cache Protocol) ● htcp_clr_access : accès HTCP pour supprimer les caches – requête CLR ● autres directives – miss_access, ident_lookup_access antislashn.org Apache JBoss Squid - Squid 6 - 39 / 62
  • 40. Directives de base ● Quelques exemples acl bad_clients src 192.0.2.0/24 miss_access deny bad_clients miss_access allow all ● bad_clients : machines de 192.0.2.0 à 192.0.2.255 – cf. https://en.wikipedia.org/wiki/IPv4_subnetting_reference ● interdit aux machines bad_clients d'utiliser le serveur proxy comme proxy parent ● autorise les autres machines qui passent l'accès HTTP (http_access) d'utiliser le serveur proxy comme parent antislashn.org Apache JBoss Squid - Squid 6 - 40 / 62
  • 41. Cache mémoire ● Les documents mis en cache RAM sont servis beaucoup plus rapidement que ceux en cache disque ● l'espace RAM est moins important que l'espace disque ● l'espace RAM ne peut pas recevoir l'ensemble des documents web à mettre en cache antislashn.org Apache JBoss Squid - Squid 6 - 41 / 62
  • 42. Cache mémoire ● Objets mis en cache RAM ● ressources de la requête courante ● ressources les plus demandées – sont mis sur le disque si besoin de RAM ● ressources d'erreur – réponse 404 par exemple – sont mis sur le disque si besoin de RAM antislashn.org Apache JBoss Squid - Squid 6 - 42 / 62
  • 43. Cache mémoire ● Taille mémoire ● par défaut : 256 Mb ● lors de la définition de la taille du cache RAM – tenir compte des besoins des autres applications ● sous Linux : free -m – par exemple pour 4 Go ● l’ensemble des processus utilise 1 Go ● moins 512 Ko si les processus ont besoin de plus de mémoire ● le cache mémoire peut être dimensionné à 2,5 Go cache_mem 2500 MB antislashn.org Apache JBoss Squid - Squid 6 - 43 / 62
  • 44. Configuration du moniteur Squid ● Squid est livré avec une interface web de gestion du cache ● cachemgr ● Configuration du serveur Apache pour activer cachemgr ● dans le fichier httpd.conf ScriptAlias /Squid/cgi-bin/cachemgr.cgi C:squidlibexeccachemgr.cgi <Location /Squid/cgi-bin/cachemgr.cgi> order allow,deny allow from 127.0.0.1 </Location> antislashn.org Apache JBoss Squid - Squid 6 - 44 / 62
  • 45. Configuration du moniteur Squid ● Dans le fichier de configuration de Squid il faut ajouter les lignes suivantes cache_mgr admin@antislashn.org cachemgr_passwd franck all ● Redémarrer Apache et Squid et tester l'URL ● http://localhost/Squid/cgi-bin/cachemgr.cgi antislashn.org Apache JBoss Squid - Squid 6 - 45 / 62
  • 46. Configuration du moniteur Squid valeur de la directive cache_mgr valeur de la directive cachemgr_passwd antislashn.org Apache JBoss Squid - Squid 6 - 46 / 62
  • 47. Configuration du moniteur Squid ● Le moniteur propose alors un ensemble de liens antislashn.org Apache JBoss Squid - Squid 6 - 47 / 62
  • 48. Squid configuré en surrogate server ● Surrogate server, ou reverse proxy, ou HTTP accelerator ● sert des requêtes pour le compte d'un serveur Squid internet en mode SERVEUR HTTP WEB accelerator on sert ce qui vient du cache on cache tout ce que l'on peut antislashn.org Apache JBoss Squid - Squid 6 - 48 / 62
  • 49. Squid configuré en surrogate server ● Squid doit écouter sur le port 80 pour répondre aux requêtes HTTP ● attention si le serveur web est sur la même machine – Squid peut écouter sur le port 80 de l'adresse IP publique – le serveur HTTP peut écouter sur le port 80 de la boucle locale (127.0.0.1) antislashn.org Apache JBoss Squid - Squid 6 - 49 / 62
  • 50. Squid configuré en surrogate server ● Directive http_port ● syntaxe : http_port 80 accel [options] – 80 : port d'écoute – accel : mode surrogate server ● Options de la directive http_port ● defaultsite : site par défaut à utilisé si nom précisé dans l'en-tête HTTP ● vhost : support des domaines multiples ● vport : support des domaines multiples basé sur IP antislashn.org Apache JBoss Squid - Squid 6 - 50 / 62
  • 51. Squid configuré en surrogate server ● Options de la directive http_port ● allow-direct: permet le direct forwarding ● ignore-cc : ignore les en-tête HTTP Cache- control antislashn.org Apache JBoss Squid - Squid 6 - 51 / 62
  • 52. Squid configuré en surrogate server ● Directive https_port ● syntaxe : https_port [IP_ADDRESS :]port accel cert=cert.pem [key=key.pem][options] ● cert : chemin absolu vers le certificat SSL contenant la clé publique et la clé privée – si cert.pem ne contient pas la clé privée, key contient chemin vers la clé privée antislashn.org Apache JBoss Squid - Squid 6 - 52 / 62
  • 53. Squid configuré en surrogate server ● Options de la directive https_port ● defaultsite : site par défaut à utilisé si nom précisé dans l'en-tête HTTPS ● vhost : support des domaines multiples ● version : version SSL – entier – 1 : détection automatique (par défaut) – 2 : SSLv2 – 3 : SSLv3 – 4 : TLSv1 ● cf. la documentation pour les autres options antislashn.org Apache JBoss Squid - Squid 6 - 53 / 62
  • 54. Squid configuré en surrogate server ● Directive cache_peer ● indique comment Squid contact ses pairs et comment il communique avec eux ● syntaxe – cache_peer hostname_or_ip type port icp_port [options] – hostname_or_ip : adresse du proxy, serveur, ou cache cible – type : type de cible (parent, sibling ou multicast) – port : port HTTP de la cible – icp_port : port ICP ou HTCP de la cible ● 0 pour désactiver antislashn.org Apache JBoss Squid - Squid 6 - 54 / 62
  • 55. Squid configuré en surrogate server ● Directive cache_peer ● quelques options – no-query : déselectionne ICP/HTCP – round-robin : algo appliqué s'il y plusieurs parents – originserver : le pair est vu comme un serveur web – name : nom donné au pair cible antislashn.org Apache JBoss Squid - Squid 6 - 55 / 62
  • 56. Squid configuré en surrogate server ● Directive cache_peer_access ● permet de déterminer avec quelle règle Squid fait suivre, ou non, une requête ● syntaxe – cache_peer_access peername allow|deny [!] acl_name antislashn.org Apache JBoss Squid - Squid 6 - 56 / 62
  • 57. Squid configuré en interception proxy ● Le mode server proxy nécessite une configuration des navigateurs ● Le mode mode "interception proxy" est une mode de "server proxy" sans configuration des navigateurs ● autres nom : transparent caching, cache redirection, interception caching antislashn.org Apache JBoss Squid - Squid 6 - 57 / 62
  • 58. Squid configuré en interception proxy ● Le mode server proxy nécessite une configuration des navigateurs ● Le mode mode "interception proxy" est une mode de "server proxy" sans configuration des navigateurs ● autres nom : transparent caching, cache redirection, interception caching antislashn.org Apache JBoss Squid - Squid 6 - 58 / 62
  • 59. Squid configuré en interception proxy ● En général ce mode est configuré à l'aide d'un routeur qui re-route les demandes des clients vers Squid ● Avantages ● pas de configuration des clients ● meilleur contrôle des utilisateurs, car ils ne peuvent pas contourner le serveur proxy ● le routeur peut faire suivre les requêtes vers Internet si le serveur Squid tombe antislashn.org Apache JBoss Squid - Squid 6 - 59 / 62
  • 60. Squid configuré en interception proxy ● Inconvénients ● violation des standards TCP/IP – les routeurs et switchs sont censés faire suivre les paquets vers l'hôte destinataire ● problèmes potentiels de routage – si les routes sont déterminées dynamiquement ● pas d'authentification – le proxy ne fonctionne pas comme un navigateur, et le navigateur ne "savent pas" qu'ils ne sont pas connectés à un serveur antislashn.org Apache JBoss Squid - Squid 6 - 60 / 62
  • 61. Squid configuré en interception proxy ● Inconvénients ● support uniquement de HTTP – Squid ne sait intercepter que le trafic HTTP ● problèmes sur les routes – si les routes sont déterminées dynamiquement ● exposition des clients – car Squid ne peut intercepter que HTTP, le client doit toujours aller directement sur Internet pour HTTPS, FTP, ... antislashn.org Apache JBoss Squid - Squid 6 - 61 / 62
  • 62. Ressources ● Squid Proxy Server 3.1 Beginners Guide – auteur : Kulbir Saini – éditeur : PACKT Pubisshing – PDF open source ● Squid - The definitive guide – auteur : Duane Wessels – éditeur : O'Reilly antislashn.org Apache JBoss Squid - Squid 6 - 62 / 62