Squid

From AleikoumWiki

Jump to: navigation, search

blabla


Contents

L'Approche

Qu'est ce ?

Description sur le site officiel :

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. 
It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages.
Squid has extensive access controls and makes a great server accelerator.
It runs on Unix and Windows and is licensed under the GNU GPL.

Pourquoi lui ?

Je ne connais pas tres bien les differents Proxy qui existent (a vrai dire je n'avais utiliser qu'Apache en reverse proxy...)
Squid est parait il le proxy le plus simple a mettre en place (tout en restant performant) et rien que pour ca ca me plait ;)

Liens

http://www.squid-cache.org/ : site officiel de Squid
http://www.ze-linux.org/documentation__proxy-squid-6.html : un tuto en francais

Le Test

Les prérequis

L'installation

La Configuration

squid.conf

# squid.conf : fichier de configuration pour squid (proxy)



# AUTHENTIFICATION
# -----------------------------------------------------------------------------

# Authentification de type NCSA avec le fichier des utilisateurs squid.users
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid.users
# Nombre de process utilise pour l'authentification
auth_param basic children 5
# Nom affiche lorsque l'utilisateur se connecte sur le serveur Proxy
auth_param basic realm Squid proxy-caching web server
# Temps durant lequel l'authentification reste valide
# Ici au bout de deux heures, l'authentification sera redemandee a l'utilisateur
auth_param basic credentialsttl 2 hours
#
authenticate_ttl 1 hour
# Lier a un utilisateur a une adresse IP pendant un laps de temps
authenticate_ip_ttl 0 seconds


# ACCESS CONTROLS
# -----------------------------------------------------------------------------
# Access list localhost et le cache
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
# Access list localnet contenant 192.168.0.0/24
acl localnet src 192.168.0.0/24
# Access list pour le reste
acl all src 0.0.0.0/0.0.0.0
# Access list SSL_ports contient une liste de ports
acl SSL_ports port 443
# Access list Safe_ports contient une liste de ports
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
# Access list verif contient les users authentifies via proxy
acl verif proxy_auth REQUIRED
# Access list calendrier activite du proxy tous les jours entre 8h et 18h
#acl calendrier time MTWHFA 11:00-18:00

# Acces refuse aux utilisateurs non authentifies
http_access deny !verif
# Autorisation uniquement du proto cachemgr provenant du localhost
http_access allow manager localhost
http_access deny manager
# Refuse les requetes sur un port non defini dans Safe_ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
# Autorise la liste localnet et localhost
http_access allow localnet
http_access allow localhost
# Pour autoriser la liste localnet avec la contrainte calendrier
#http_access allow localnet calendrier
# Tout le reste est interdit
http_access deny all

# Gestion des reponses http par defaut
# toutes les reponses sont acceptees  (qqsoit source, emetteur...)
#http_reply_access deny all

# Autoriser uniquement ICP a la liste localnet
icp_access allow localnet
icp_access deny all

#Default:
#htcp_access deny all
#
#Allow HTCP queries from local networks only
htcp_access allow localnet
htcp_access deny all


# NETWORK OPTIONS
# -----------------------------------------------------------------------------
# Port sur lequel va ecoute Squid
http_port 3128


# SSL OPTIONS
# -----------------------------------------------------------------------------

#Default:
#none


# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# -----------------------------------------------------------------------------

#Default:
#none


# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------

# Taille du cache en memoire (en memoire - RAM)
cache_mem 16 MB

# Taille max d'un objet stocke en cache (en memoire - RAM)
maximum_object_size_in_memory 8 KB

# Mode lru pour la gestion du cache (en memoire - RAM)
memory_replacement_policy lru


# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------

# Mode lru pour la gestion du cache (disque)
cache_replacement_policy lru

# Cette directive permet d'indiquer le repertoire de l'arborescence du cache
# Format: [type de stockage] ufs repertoire taille L1 L2
# L1 : nombre de sous repertoire contenu dans le repertoire defini ici /var/cache/squid
# L2 : nombre de repertoire contenu dans L1
cache_dir ufs /var/cache/squid 1024 16 256

# Taille minimun d'un objet stocke en cache (disque)
minimum_object_size 1 KB
# Taille max d'un objet stocke en cache (disque)
maximum_object_size 4096 KB

#
cache_swap_low 90
cache_swap_high 95


# LOGFILE OPTIONS
# -----------------------------------------------------------------------------

# Format du log
logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

#
access_log /var/log/squid/access.log squid

# Log concernant le comportement du cache
cache_log /var/log/squid/cache.log

# Log sur l'activite du manager du cache (objet efface, presence d'objet depuis x temps ...)
cache_store_log none

# Rotation des logs de Squid (quand on lance squid -k rotate)
# 0 signifie par de rotation
logfile_rotate 0

#Default:
emulate_httpd_log off

#Default:
# log_ip_on_direct on

#Default:
# mime_table /etc/squid/mime.conf

#Default:
log_mime_hdrs off

#Default:
pid_filename /var/run/squid.pid

#Default:
debug_options ALL,1

#Default:
# log_fqdn off

#Default:
# client_netmask 255.255.255.255
Personal tools