Installation de Squid sur Fedora

Date: 8/06/2007 | Catégories: Reseau,Systeme | Tags: ,,,,


Voici un tutoriel pour installer Squid sur une distribution Fedora (Core 6). Squid est un serveur proxy gérant les protocoles HTTP, HTTPS et FTP. Il offre des performances de haut niveau, même si le service tourne sur une machine peu puissante.

L'installation peut se faire soit depuis les sources, soit depuis le repo Fedora.

Installation depuis les sources

Il faut d'abord récupérer les sources de la dernière version stable (2.6 au moment de l'écriture de ce post):

# wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE13.tar.gz

On lance la séquence de compilation:

# tar zxvf squid-2.6.STABLE13.tar.gz
# cd squid-2.6.STABLE13
# ./configure --enable-snmp
# make
# make install

Le répertoire d'installation par défaut est /usr/local/squid/.

Pour des raisons de sécurité, le processus sera lancé par l'utilisateur 'squid' (à créer si il n'existe pas...). Il faut donc créer les répertoires suivants:

# mkdir /var/spool/squid
# chown -R squid:squid /var/spool/squid
# mkdir /var/log/squid
# chown -R squid:squid /var/log/squid

La configuration est centralisé dans le fichier /usr/local/squid/etc/squid.conf.

Installation depuis le repos Fedora (méthode plus simple...)

On utilise yum pour installer Squid sur son système:

# yum install squid

Sous Fedora, l'automatisation du lancement de Squid au démarrage de la machine doit se faire de la manière suivante:

# chkconfig squid on

La configuration est centralisé dans le fichier /etc/squid/squid.conf.

Configuration

Voici, en exemple, mon fichier de configuration squid.conf:

http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 16 MB
cache_dir ufs /var/spool/squid 3000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl user src 192.168.0.0/255.255.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
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 allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow user all
http_access deny all
http_reply_access allow all
icp_access allow all
snmp_access allow all
coredump_dir /usr/local/squid/var/cache

Avant de pouvoir utiliser le proxy, il faut générer la structure de base du répertoire de cache, pour cela on fait:

# squid -z
2007/06/07 17:14:38| Creating Swap Directories

Remarque: Si vous rencontrez l'erreur suivante:
FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'
Il faut renseigner l'option visible_hostname dans le fichier de configuration squid.conf.

Il ne reste plus qu'à lancer le serveur:

# squid
ou
# service squid start

Si le serveur ne démarre pas, c'est qu'il doit y avoir une erreur dans la configuration. Le plus simple pour identifier cette erreur est de lancer squid en mode console:

# squid -N -d 255

Si le PC système sur lequel est installé Squid intégre un Firewall de type Iptables, il faut penser à ajouter la règles suivantes:

# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
# /sbin/iptables-save

Configuration des clients

Sur Firefox, il faut aller dans le menu Preférences/Avancé/Réseau/Paramètres... puis saisir les informations:

Et voila... bon surf !

  • Pingback: Anonyme()

  • speak

    Salut, super tuto.
    Cependant je pense avoir merdé bien que tout ce soit déroulé sans problème lors de l’installation sur mon serveur.
    J’ai installé avec l’user root:root au lieu de squid:squid
    1/ comment revenir en arrière
    2/ comment créer l’user squid ?
    3/ lorsque j’essaie d’établir la connexion j’ai ce message :

    ERROR
    The requested URL could not be retrieved

    While trying to retrieve the URL: http://google.fr/

    The following error was encountered:

    * Access Denied.

    Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

    Your cache administrator is root.
    Generated Sun, 30 Mar 2008 13:33:38 GMT by nsxxxxxx.ovh.net (squid/2.5.STABLE13)

  • @speak:
    1) pour changer le user avec squid:squid, il faut se rendre dans tout les répertoires au Squid a installé des fichiers et faire un petit: chown -R squid:squid
    2) avant cela (c’est à dire avant 1)), il faut créer l’utilisateur squid avec une commande du type adduser squid (ou useradd)
    3) c’est typique d’une erreur au niveau des ACL…

  • speak

    Salut NicoLargo,

    Merci pour cette réponse, en fait je n’avais pas autorisé mon IP dans le fichier conf.

    Je vais modifier le uer aussi

  • sanae

    j’ai autoriser mon réseau local , j’arrive pas à me connecter au niveau de la machine cliente,je reçois l’erreur suivante:

    While trying to retrieve the URL: http://fr.msn.com/
    The following error was encountered:
    Access Denied.
    Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

  • mohamed

    bonjour

    j’ai installer squid sur fedora 6 mais je me suis bloquer suis cette etape:
    Remarque: Si vous rencontrez l’erreur suivante:
    FATAL: Could not determine fully qualified hostname. Please set ‘visible_hostname’
    Il faut renseigner l’option visible_hostname dans le fichier de configuration squid.conf.

    alors comment je peux renseigner ca (en detail)

    merci

  • Mohamed

    bonjour,
    j’ai installé Squid sur fedora 6
    install OK
    apres j’ai installé webadmin pour l’administration graphique,

    j’ai un reseau local : 192.168.2.0 255.255.254.0
    proxy squid: 192.168.3.167
    machine client pour test: 192.168.3.190

    j’ai ajouté dans squid.conf:

    acl test src 192.168.2.0/255.255.254.0
    acl cerdis src 192.168.3.190/255.255.555.255
    http_access allow cerdis
    http_access allow test

    lorsque je compile avec la commande squid -z ,tout est ok ,pas d’erreur

    mais au niveau du poste client ,lorsque j’ajoute l’adresse proxy 192.168.3.167 3128 sur le navigateur firefoxe,
    et pour acceder a une page internet il me donne le message d’erreur .

    merci d’avance

  • @mohamed: la commande « squid -z » permet seulement de dire à squid de créer l’arborescence du cache. Elle ne lance pas squid… Je te conseille de lancer squid avec la commande suivante:

    # squid -N -d 255

    de re-tester à partir d’un client. Puis de nous envoyer les éventuels messages d’erreurs de la console.

  • Benoit

    Bonjour,

    Merci pour ce bon tuto.

    Par contre, j’ai un léger problème, j’aimerai savoir si on peut mettre en cache les pages dynamiques du type :
    http://www.monsite.com/index.php?mavar=toto

    Mon fichier access.log me donne (sans les GET de mon URL):
    TCP_MISS/200 13205 GET http://www.monsite.com/index.php? – DIRECT

    Existe-t-il une acl particulière pour ça ?
    J’ai désactivé l’acl (mis en commentaire) :
    acl QUERY urlpath_regex cgi-bin php
    cache deny QUERY
    mais rien n’y fait.

    Merci par avance,
    Benoît

  • walkh

    merci d’avance
    ma question est :
    – comment utiliser le Squid dans un réseau LAN sans faire la configuration manuelle ( configuration des navigateur)
    par exemple c’est on a 50 clients dans LAN c’est pas logique de passe par chaque bureau et configuré sans navigateur donc quelle est la solution et merci