Squid Proxy

Squid est un proxy de mise en cache pour le Web prenant charge entre autres les protocoles HTTP, HTTPS, FTP, etc. Il réduit la bande passante et améliore les temps de réponse en mettant en cache et en réutilisant les pages Web fréquemment demandées. Squid dispose de contrôles d’accès étendus et constitue un excellent accélérateur de serveur. Il fonctionne sur la plupart des systèmes d’exploitation disponibles, y compris Windows, et est sous licence GNU GPL.

Installation

Pour installer Squid

# apt-get install squid3

Configuration

On fait un backup de la configuration de base (on renomme le fichier existant)

# mv /etc/squid3/squid.conf /etc/squid3/squid.conf.bckup

Le fichier de configuration de Squid est très complet et extrêmement détaillé (il est prévu pour également faire office de documentation).
Le plus simple est d’en créer un nouveau et d’y mettre ce qui nous intéresse.

# vim /etc/squid3/squid.conf
Contenu du nouveau fichier
# ----------------------------------------------------------------------------
#
# Configuration de Squid3
#
# ----------------------------------------------------------------------------

# --------- Définitions des ACL ------------------------------------

# Liste des ports que l'on veut autoriser
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

# Méthode de connexion
acl CONNECT method CONNECT

# Liste des adresses IP que l'on veut autoriser
acl myOffice src 42.42.42.42
#acl myHome src 24.24.24.24

# Liste de site Internet inderdits
acl websites_list dstdomain "/etc/squid3/forbidden-websites.conf"

# Liste des mots inderdits
acl badwords url_regex "/etc/squid3/badwords.conf"

# Liste plages horaires (M-S pour Monday-Sunday, peut aussi s'écrire MTWHFAS)
acl HORAIRES_nuit time 0:00-7:59
acl HORAIRES_work time 8:00-11:59
acl HORAIRES_Pause time 12:00-13:59
acl HORAIRES_work time 14:00-17:59
acl HORAIRES_nuit time 18:00-23:59
#acl HORAIRES_WEnd time AS 0:00-23:59

# --------- Autoriser les accès ------------------------------------

# Autoriser tout le monde (déconseillé)
#http_access allow all

# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL port
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhos
http_access allow localhost manager
http_access deny manager
http_access allow localhost
# To protect web applications running on the proxy server
http_access allow to_localhost

# autoriser l'accès à l'ACL myOffice sans restriction
#http_access allow myOffice

# Interdire certain mot clé pendant les heures de travail
http_access deny badwords HORAIRES_work

# interdire certains sites
http_access deny websites_list

# autoriser l'accès à l'ACL School selon la plage horaire "HORAIRES_jour"
http_access allow myOffice HORAIRES_work
http_access allow myOffice HORAIRES_pause
http_access allow myOffice HORAIRES_nuit

# And finally deny all other access to this proxy
http_access deny all

# --------- Configuration ------------------------------------

# Port de Squid, par défaut Squid écoute sur le 3128
http_port 3366

# Hostname du proxy
visible_hostname CalmarProxy

# Masquage IP header HTTP (X-Forwarded-For: unknown)
# forwarded_for on|off|transparent|truncate|delete
forwarded_for off

# Disk cache directory, ici de 100 mo
cache_dir ufs /var/spool/squid3 100 16 256

# emplacement des Logs
access_log /var/log/squid3/access.log combined
cache_log /var/log/squid3/cache.log

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3

# Pas de cache
cache deny all

# Option de tuning pour le cache (si cache activé)
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

# Serveurs DNS (ici ceux de FDN)
dns_nameservers 80.67.169.12 80.67.169.40

# Cache DNS
positive_dns_ttl 5 minutes #réponse positive
negative_ttl 2 minutes #réponse en erreur

# On attends pas avant de stopper Squid (30s sinon, utilise si cache activé)
shutdown_lifetime 0 seconds

Les Fichiers

Les fichier /etc/squid3/forbidden-websites.conf et /etc/squid3/badwords.conf contiennent, par exemple :

# cat forbidden-websites.conf
.truc.fr
.google.com
.twitter.com
.facebook.com
.youtube.com
# cat badwords.conf
lapin
Lapin
lolcat
trololo

Configurer le Firewall

Il se peut que l’accès au proxy soit bloqué par Iptables. Pour autoriser les accès :

iptables -t filter -A INPUT -p tcp –dport 3366 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 6633 -j ACCEPT

On relance le service :

# service squid3 restart

Il est intéressant de voir ce que nous dit Squid lorsqu’on interroge son status :

# service squid3 status 
● squid3.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid3)
Active: active (running) since ven. 2017-09-08 16:33:56 CEST; 40s ago
Process: 9670 ExecStop=/etc/init.d/squid3 stop (code=exited, status=0/SUCCESS)
Process: 9691 ExecStart=/etc/init.d/squid3 start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/squid3.service
├─9724 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
├─9726 (squid-1) -YC -f /etc/squid3/squid.conf
└─9727 (pinger)

sept. 08 16:33:56 Server01 squid3[9691]: Starting Squid HTTP Proxy 3.x: squid3/etc/init.d/...set
sept. 08 16:33:56 Server01 squid3[9724]: Squid Parent: will start 1 kids
sept. 08 16:33:56 Server01 squid3[9724]: Squid Parent: (squid-1) process 9726 started
sept. 08 16:33:56 Server01 squid3[9691]: .
sept. 08 16:33:56 Server01 systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Hint: Some lines were ellipsized, use -l to show in full.
Utilisation

Utiliser le Proxy

  • Sous Windows 10 :
  • Paramètres > Proxy > Configuration manuelle du proxy
  • Sous Ubuntu 16.04 :
  • Système > Administration > Centre de contrôle > Serveur mandataire > configuration manuelle
  • Sous Android 7 :
  • Applis > Paramètres > Connexions > Wi-Fi
  • Faire ensuite un appui long sur votre réseau et aller dans « Gérer les paramètres réseau »
  • Une fenêtre s’ouvre et aller dans « Afficher les options avancées » pour pouvoir configurer le proxy.
  • Note : Pas trouvé comment configurer le proxy pour le data, seulement pour le Wi-Fi

Pour comparer le changement d’IP il suffit d’aller sur l’un de ces deux site avant et après la configuration du proxy. http://www.mon-ip.com/ ou http://ipv6-test.com/

Documentation

http://www.squid-cache.org/
http://www.squid-cache.org/Doc/config/
http://www.mon-ip.com/
http://ipv6-test.com/

> Partager <