Ressources informatiques

Ressources informatiques

Ressources informatiques


Configurer un serveur Proxy (Squid)

Documentation : www.squid-cache.org : accueil | www.squid-cache.org : Squid configuration directives

Installer

(Devenir l'utilisateur root)

doe@debian:~$ su - root
Mot de passe : 

Télécharger le paquetage

root@debian:~# apt update
root@debian:~# apt install squid

Configurer le serveur Proxy

Sauvegarder le fichier de configuration d'origine

root@debian:~# cp /etc/squid/squid.conf /etc/squid/squid.conf.origin

Supprimer les commentaires

Les lignes commençant par # sont des commentaires qui constituent également la documentation de Squid. Il est plus pratique d'avoir un fichier de configuration sans ces lignes afin d'avoir une meilleure vision globale de la configuration.

root@debian:~# grep -E -v '^(#|$)' /etc/squid/squid.conf.origin > /etc/squid/squid.conf.originSansCommentaires
root@debian:~# cp /etc/squid/squid.conf.originSansCommentaires /etc/squid/squid.conf

Afficher la configuration de base

root@debian:~# cat /etc/squid/squid.conf
acl localnet src 0.0.0.1-0.255.255.255  # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8             # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10          # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16         # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12          # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16         # RFC 1918 local private network (LAN)
acl localnet src fc00::/7               # RFC 4193 local private network range
acl localnet src fe80::/10              # RFC 4291 link-local (directly plugged) machines
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
include /etc/squid/conf.d/*
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
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

Analyse :

Effectuer la configuration

Autoriser l'accès au uniquement au hôtes du réseau 192.168.1.0/24 et à localhost
Directives
Résultat de la modification du fichier /etc/squid/squid.conf
root@debian:~#  cat /etc/squid/squid.conf
acl localnet src 192.168.1.0/24
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
include /etc/squid/conf.d/*
http_access allow localhost
http_access allow localnet
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
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
Rédémarrer Squid
root@debian:~# systemctl restart squid.service
Vérifier l'état du serveur
root@debian:~# systemctl status squid.service
 squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated; vendor preset: enabled)
   Active: active (running)) since Tue 2017-11-28 06:26:29 CET; 49s ago

Tester

Configurer le navigateur pour qu'il utilise le proxy. Sur Firefox Browser : ≡ > Paramètres > Paramètres Réseau > Paramètres ... :

Squid

Résultat :

Squid
Vérifier le fichier journal du serveur
root@debian:~# cat /var/log/squid/access.log | grep ress
1629724058.196 298577 192.168.1.72 TCP_TUNNEL/200 7610 CONNECT ressourcesinformatiques.com:443 - HIER_DIRECT/213.186.33.16 -

L'hôte d'adresse IP 192.168.1.72 à contacté le proxy pour consulter le site ressourcesinformatiques.com en utilisant le protocole HTTPS (port 443)

Cascader un serveur proxy

Il arrive que le serveur proxy que l'on souhaite mettre en oeuvre se situe derrière un autre serveur proxy. Il est alors nécessaire de l'indiquer à votre serveur. Cela est réalisé par les directives suivantes à placer dans le fichier squid.conf :

#                                        proxy  icp
#          hostname             type     port   port  options
#          -------------------- -------- ----- -----  -----------
cache_peer 192.168.0.5          parent    3128     0  default

Exemple :

cache_peer 192.168.0.5 parent 3128 0 default
never_direct allow all