LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


expert:proxy-squid

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

expert:proxy-squid [2018/11/17 13:53] (Version actuelle)
Ligne 1: Ligne 1:
  
 +======Mise en place et configuration d'un proxy Squid======
 +//**Auteur : lonewolf**//​\\
 +//**Date : 14 octobre 2007 **//\\
 +
 +=====Introduction=====
 +
 +Bonjour,
 +
 +Sur ce tuto, nous allons nous pencher sur l'​installation et la configuration d'un proxy du nom de : "​Squid"​.
 +
 +
 +=====1. Définition=====
 +
 +Un serveur Squid est un serveur proxy performant, il est capable d'​utiliser les protocoles FTP, HTTP, Gopher, et HTTPS.
 +
 +Contrairement aux serveurs proxy classiques, un serveur Squid gère toutes les requêtes en un seul processus d'​entrée/​sortie,​ non bloquant.
 +
 +Squid garde les meta-données et plus particulièrement les données les plus fréquemment accédées en mémoire. Il conserve aussi en mémoire les requêtes DNS, ainsi que les requêtes ayant échouées.
 +Les requêtes DNS sont non bloquantes.
 +
 +Les données mémorisées peuvent être rangées en hiérarchies ou en mailles pour utiliser moins de bande passante.
 +
 +Squid est inspiré du projet Harvest. Il n'est pas compatible avec IPv6. (Définition Wikipedia)
 +
 +Toutes les commandes d'​exemple sont executées sur une distribution Ubuntu Feisty Faw 7.04 mais sont facilement transposables sur d'​autres distributions.
 +
 +Je vous fait confiance pour pouvoir adapter les quelques commandes spécifiques mises en avant... Oh et puis, y en a tellement peu que je peux vous macher un (tout) petit peu le travail. ​
 +
 +Alors, la commande ​ debian : 
 +
 +  sudo apt-get install
 +
 +est par exemple equivalente à 
 +
 +  urpmi
 +
 +sous Madriva. ​
 +
 +Allez assez d'​indice et un peu plus d'​information et de formation.
 +
 +=====2. Installation du proxy=====
 +
 +Les choses sérieuses commencent avec une installation très simple.
 +
 +En effet, il suffit d'​utiliser la commande suivante et le proxy est installé :
 +
 +  sudo apt-get install squid
 +
 +[u]Detail[/​u] : Une erreur va apparaître en fin d'​installation faisant référence au nom de serveur. Celle-ci est normale(donc pas d'​inquiétude,​ nous n'​avons pas encore fait de bêtise) et va être réglée dans la configuration du proxy.
 +
 +=====3. Configuration du proxy=====
 +
 +Voilà, le serveur est installé, et il faut maintenant le configurer.
 +
 +Pour cela, nous allons éditer le fichier [i]squid.conf[/​i] qui se trouve : /etc/squid à l'aide d'un éditeur de texte de votre choix. Pour moi, dans l'​exemple,​ c'est "​vim"​ mais vous pouvez utiliser également "​gedit",​ ou tout autre éditeur de votre choix.
 +
 +Dans la ligne de commande suivante, il vous suffit de remplacer '​vi'​ par gedit, etc, etc, etc... et blablabla
 +
 +  sudo vi /​etc/​squid/​squid.conf
 +
 +Et nous voilà, face à un fichier de configuration très (très )fourni, et il faut bien l'​avouer un peu fouillis pour un débutant.
 +
 +Je vous conseille donc d'​utiliser la fonction recherche de votre éditeur pour vous faciliter la tâche.
 +
 +=====3. Nommer le proxy=====
 +
 +Alors allons-y. Vous vous rappelez l'​erreur que je vous ai annoncée en début de tuto ? Oui, Oui celle faisant référence au nom du serveur ?
 +
 +Non ? Vraiment pas ? Bon, ce n'est pas grave puisque nous allons tout de suite la rectifier en nommant ce serveur.
 +
 +Pour cela, rechercher la ligne contenant :​**visible_hostname**
 + 
 +et ensuite placer vous en bas du paragraphe et juste en dessous de **default**
 +
 +saisissez :
 +
 +  visible_hostname nom_de_votre_pc
 +
 +Voici un exemple :
 +
 +  #  TAG: visible_hostname
 +  # If you want to present a special hostname in error messages, etc,
 +  # define this.  Otherwise, the return value of gethostname()
 +  # will be used. If you have multiple caches in a cluster and
 +  # get errors about IP-forwarding you must set them to have individual
 +  # names with this setting.
 +  #
 +  #Default:
 +  visible_hostname StephLinux
 +
 +[i]Détail[/​i] : Le nom donné n'est pas anodin et ne peut être choisi. Il doit correspondre à celui de votre machine. C'est à dire que si vous ouvrez une console, il apparaît juste après l'@ suivi de votre nom de session comme ceci :
 +
 +  loup@StephLinux
 +
 +=====4. Choisir le port=====
 +
 +Le serveur proxy étant nommé, nous allons entrer un peu plus dans la configuration de squid en choisissant le port qui sera en écoute.
 +
 +Par défaut, celui ci est 3128 :
 +
 +  http_port 3128
 +
 +Vous pouvez choisir celui qui vous convient en remplaçnt 3128 par le port de votre choix (souvent le 8080)
 +
 +  http_port 8080
 +
 +=====5. Choisir l'​interface=====
 +
 +Par défaut le serveur proxy sera en écoute sur toutes les interfaces. Pour des raisons de sécurité, vous pouvez décider de le mettre en écoute que sur votre réseau local.
 +
 +Par exemple si la carte réseau reliée à votre LAN a l'IP 192.168.1.1,​ modifiez la ligne:
 +
 +  http_port 192.168.1..1:​3128
 +
 +=====6. Choisir qui peut se connecter a votre serveur proyx (Définir les droits d'​accès)=====
 +
 +Par défaut, le serveur proxy refuse toutes les connexions. Il est donc essentiel de définir qui aura le droit de s'y connecter.
 +
 +Pour cela, il vous faut déclarer une plage ou encore les PC qui peuvent passer par le proxy.
 +
 +Faites une recherche de la ligne suivante :
 +
 +  acl to_localhost
 +
 +et juste en dessous (la localisation de cette ligne est importante sinon le proxy ne fonctionnera pas. Donc bien la placer en dessous de 'acl to localhost dst xxx.x.x.x/​x) rajouter la ligne suivante adaptée à votre réseau (dans l'​exemple classe C) :
 +
 +  acl lanmaison src 192.168.1.0/​255.255.255.0
 +
 +(lanmaison est un nom arbitrairement choisi. Vous pouvez le changer sans difficulté)
 +
 +Ou encore si vous préférez déclarer un ou plusieurs PC directement,​ vous pouvez utiliser comme exemple la ligne suivante :
 +
 +  acl host1 src 192.168.1.20
 +
 +(host1 étant de nouveau un nom arbitrairement choisi)
 +
 +Exemple :
 +
 +  acl all src 0.0.0.0/​0.0.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 host1 src 192.168.1.20
 +  acl SSL_ports port 443 # https
 +  acl SSL_ports port 563 # snews
 +  acl SSL_ports port 873 # rsync
 +  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 Safe_ports port 631 # cups
 +  acl Safe_ports port 873 # rsync
 +  acl Safe_ports port 901 # SWAT
 +  acl purge method PURGE
 +  acl CONNECT method CONNECT
 +
 +=====7. Autoriser le groupe=====
 +
 +Maintenant que le groupe ou le(s) PC sont définis, nous allons l'​autoriser à utiliser le proxy.
 +
 +Repérez grâce à votre fonction de recherche la ligne http_access allow...et ajoutez en dessous (avant la ligne http_access deny all) la ligne suivante adaptée :
 +
 +  http_access allow lanmaison
 +
 +pour la plage déclarée en tant que telle. Ou encore :
 +
 +  http_access allow host1
 +
 +pour le ou les PC.
 +
 +=====8. Redémarrer le proxy=====
 +
 +Voilà nous arrivons au terme de ce tuto. Il ne nous reste plus qu'à tester le proxy en le redémarrant grâce à la commande :
 +
 +  sudo /​etc/​init.d/​squid restart
 +
 +=====9. Configurer les navigateurs=====
 +
 +Pour passer par le proxy, il vous faut configurer le navigateur du PC.
 +
 +**Sous Firefox, selon la version :** 
 +
 +Outils -> Préférences -> Avancées -> Onglet Réseau -> Paramètres -> Configuration du proxy ->
 +
 +et là vous entrez l'IP du serveur ainsi que le port choisi.
 +
 +Édition -> etc identique
 +
 +**Sous IE :**
 +
 +Outils -> Option Internet -> Onglet connexion -> Paramètres réseau -> Se servir d'un proxy
 +
 +et là vous entrez également l'IP du serveur ainsi que le port choisi.
 +
 +[i]Detail[/​i] Si vous êtes sous IE, vous devrez redémarrez le navigateur pour que les modifications soient intégrées (ben oui, IE c'est quand même Microsoft)
 +
 +=====10. Détails subsidiaires=====
 +
 +Grâce à Squid vous avez accès a bien d'​autres fonctions.
 +
 +Un exemple est la gestion du temps des utilisateurs.
 +
 +Vous pouvez par exemple définir un temps d'​utilisation en créant une acl time.
 +
 +Exemple :
 +
 +  acl jour time 08:00-17:30
 +
 +Dans cet exemple, j'ai défini une journée de 8h00 à 17h30. En dehors de cette horaire, le proxy refusera la connexion.
 +
 +Mais pour que cela fonctionne, il vous faudra également indiquer à qui cette restriction s'​impose.
 +
 +Exemple, sur l'​utilisateur host1 définit tout à l'​heure :
 +
 +  http_access allow host1 jour
 +
 +Nous avons donc juste rajouté '​jour'​ à la fin de la ligne d'​autorisation créée un peu plus haut.
 +
 +Ce qui nous donne  :
 +
 +  #​http_access allow our_networks
 +  http_access allow localhost
 +  http_access allow host1 jour
 +  http_access deny all
 +
 +=====11. Conclusion=====
 +
 +Voila, j'​espère que ce tuto vous permettra de mettre en place facilement et rapidement un proxy.
 +
 +J'​espère également avoir été clair et facilement accessible au plus grand nombre (et surtout de ne pas avoir fait trop de fautes d'​orthographe).
 +
 +Merci à tous et n'​hésitez pas à me contacter par post ou par MP pour toutes questions subsidiaires
 +
 +lonewolf
 +
 +[[http://​www.linuxpourlesnuls.org/​|source]]
expert/proxy-squid.txt · Dernière modification: 2018/11/17 13:53 (modification externe)