Squid
From AleikoumWiki
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