Introduction à Squid: configuration étape par étape

Logo Squid et Tux

Squid est un autre filtre au niveau de l'application qui peut compléter iptables. Squid est un serveur proxy Web en cache, il est très populaire et gratuit, et il est multiplateforme. Bien qu'il puisse être utilisé pour améliorer les performances des connexions Internet, il peut également être utilisé à des fins de sécurité. Depuis le début du projet dans les années 90, Squid a été très avancé et maintenant nous vous le présentons pour que vous sachiez l'utiliser.

Pour votre installation, vous pouvez accéder au site officiel du projet et sélectionnez les packages binaires pour votre système d'exploitation ou votre distribution. Si vous souhaitez l'installer à partir du package de code source en compilant, également tu as cette option. Les archives tar disponibles sont tar.gz, tar.bz2 et tar.xz. Si vous ne savez pas comment installer, vous pouvez aller à l'article que nous éditons dans ce blog sur comment installer n'importe quel paquet de linux. œil! Si vous avez un Debian ou un dérivé et que vous avez vu qu'il est installé avec sudo "apt-get install squid", vous pouvez obtenir une erreur, car vous devez remplacer "squid" par "squid3" pour qu'il prenne effet. .

Maintenant, nous passons directement à l'action en expliquant quelques exemples d'utilisation de Squid pour protéger nos équipements. Avant, je voudrais expliquer que Squid est basé sur les ACL, c'est-à-dire dans la liste de contrôle d'accès ou la liste de contrôle d'accès, c'est-à-dire des listes qui détaillent les autorisations pour contrôler dans ce cas le flux réseau et implémenter des filtres similaires à ceux d'iptables mais au niveau de l'application.

Normalement, après l'installation, un fichier de configuration est inclus et se trouve dans /etc/squid3/squid.conf et c'est ce que nous devons éditer avec un éditeur comme nano ou gedit. Dans celui-ci, nous pouvons générer nos règles de filtrage, bien qu'il existe des options cache_dir, cache_mem et http_port, nous utiliserons cette dernière pour nos règles de sécurité. Un autre détail est que ce fichier spécifie le port par défaut utilisé par le service Squid, qui par défaut est 3128 (voir la ligne ou la directive "http_port 3128" et supprimer le # pour l'activer). Si vous le souhaitez, vous pouvez le changer pour un autre port comme 8080 ... Et une autre chose qui est nécessaire est de configurer le nom d'hôte, recherchez le commentaire "TAG: Visible_hostname" et vous verrez une ligne "visible_hostname" où vous devez mettre votre nom d'hôte.

Pour connaître votre nom d'hôte, vous pouvez taper dans le terminal:

hostname

Et le nom qui apparaît, vous l'ajoutez à la ligne qui ne doit pas être précédée de # afin qu'il ne soit pas ignoré en tant que commentaire. Autrement dit, cela ressemblerait à ceci:

visible_hostname hostname_have_you_appeared

Si vous voyez le fichier de configuration, vous verrez qu'il est très commenté, si vous souhaitez remplacer une règle créée, vous pouvez commencer la ligne avec # et vous le transformez en commentaire, avec lequel Squid l'ignore, pour le remettre en service, vous supprimez le # et c'est tout. En fait, il existe de nombreuses règles créées et commentées que vous pouvez utiliser en supprimant #. Vous n'avez donc pas besoin de supprimer et de réécrire les règles. Eh bien, pour ajouter une règle ou un filtre spécifique, il doit avoir une ACL et une directive qui indique ce qu'il faut faire.

À propos, lorsque vous supprimez un # pour activer une règle, assurez-vous de ne pas laisser d'espaces au début de la ligne. Par exemple:

Fausse route:

http_port 3128

Bonne façon:

http_port 3128

N'as-tu rien entendu? Eh bien ne t'inquiète pas, avec un exemple vous verrez tout beaucoup mieux. Imagine ça:

acl bloquant url_regex comme facebook
http_access refuse le blocage

Qu'est-ce que cette règle signifie est que l'acl avec le nom "blocage" interdira l'accès à l'URL qui contient "facebook" (donc si nous essayons d'entrer Facebook, il sautera une erreur dans le navigateur). Si au lieu de «refuser», vous utilisez «autoriser», vous autoriseriez l'accès au lieu de l'interdire. Vous pouvez également utiliser le! Pour exclure, par exemple, supposons que vous souhaitiez autoriser l'accès à list1 mais pas à list2:

http_access allow lista1 !lista2

Un autre exemple pourrait être la création d'un fichier / etc / squid3 / ips autorisé et enregistrez-y une liste d'adresses IP auxquelles nous voulons autoriser l'accès. Par exemple, supposons que le contenu des ips autorisés soit:

192.168.30.1

190.169.3.250

192.168.1.26

Et puis nous créons l'ACL pour autoriser l'accès à ces adresses IP:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Un exemple assez pratiqueImaginez que votre ordinateur est utilisé par des enfants de moins de 18 ans et que vous souhaitez restreindre l'accès à certains sites de contenu pour adultes. La première chose à faire est de créer un fichier appelé / etc / squid3 / list avec le contenu:

adulte

porno

sexe

poringa

Et maintenant dans  le fichier squid.conf nous mettons la règle suivante:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

Comme tu vois nous avons utilisé allow ce qui en principe est de permettre, mais si vous regardez, nous avons ajouté! nier, donc, cela équivaudrait à mettre:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

Des listes peuvent également être créées, non seulement des noms de domaine ou des adresses IP comme nous l'avons fait, vous pouvez également mettre des domaines et par exemple restreindre l'accès à des domaines tels que .xxx, .gov, etc. Regardons un exemple basé sur la règle précédente. Nous créons un fichier / etc / squid3 / domains qui a:

. Edu

. Es

. Org

Et maintenant notre règle, pour refuser l'accès à la liste des sites interdits que nous créons, mais en autorisant l'accès aux URL avec ces domaines:

acl denegados url_regex "/etc/squid3/lista" 
acl permitidos dstdomain "/etc/squid3/dominios"

http_access allow !denegados dominios

EXTENSION:

Désolé, quand j'ai vu les commentaires, j'ai réalisé que Il me manque l'essentiel. Je me suis limité à mettre des exemples d'utilisation et j'ai oublié de dire que pour démarrer le serveur Squid:

sudo service squid3 start

Avant qu'il ne se lève avec "/etc/init.d/squid start", mais maintenant vous devez utiliser cette autre ligne que j'ai mise pour vous. Tout comme le fichier de configuration n'est plus dans /etc/squid/squid.conf, mais dans /etc/squid3/squid.conf. Ok, une fois les politiques de filtrage créées, et en le démarrant, il faut également configurer le navigateur, par exemple, si vous utilisez Mozilla Firefox ou des dérivés, vous pouvez aller dans le menu de configuration (vous savez, les trois barres), puis dans Préférences, Avancé, et dans l'onglet Réseau, cliquez sur Configuration dans la section Connexion. Là, nous sélectionnons la configuration manuelle du proxy et mettons notre adresse IP et le port utilisé par Squid, dans ce cas 3128. Sélectionnez également «Utiliser le même proxy pour tout» et quittez en enregistrant les modifications.

S'il vous plaît N'oubliez pas de laisser vos commentaires, des doutes ou ce que vous voulez ... Bien que ce soit un tutoriel bien au-dessus de Squid, j'espère que cela vous aidera.

 


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

17 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Nicolas dit

    merci !, utile.

  2.   Jimmy Olano dit

    ENCORE très bien condensé pour un sujet un peu complexe, je n'arrête pas de dire "niveau utilisateur: moyen", il faut connaître quelques notions sur les "réseaux".

    Je considère HUMBLY que l'option pour configurer notre navigateur pour utiliser le "proxy" devrait être ajoutée, mais comme cette entrée est une "INTRODUCTION à Squid", nous serons très conscients de la prochaine? la livraison (enfin, et au risque de me déranger, RAPPELEZ-VOUS de ne pas "proxy" les pages Web bancaires et / ou les institutions financières que vous utilisez dans votre maison ou entreprise).

    1.    Isaac PE dit

      Salut, merci pour les commentaires. Oui, IPTABLES et Squid sont trop épais pour faire un article qui les explique en profondeur et il faut se limiter à mettre des exemples du quotidien ...

      Mais vous avez tout à fait raison, je l'ai ajouté maintenant pour configurer le proxy, je l'avais prévu et j'ai oublié. Ma faute.

      Salutations et merci!!

      1.    Jimmy Olano dit

        Uffff "tronc" désolé de ne pas avoir réalisé l'essentiel:
        DÉMARRER LE SERVICE :- (sans cela «il n'y a pas de tante» - pardonne-moi pour le discours familier - EXTENSION TRÈS SUCCÈS! 8-)

        {le réparer à chaque démarrage est en modifiant le "/ sbin / init":
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {un autre moyen plus simple consiste à utiliser "update-rc.d":
        https: // parbaedlo. wordpress.com/201 3/03/07 / paramétrage-start-and-stop-of-services-linux-update-rc-d /}

        J'ai ajouté des espaces aux liens, supprimez-les et vous naviguerez ;-)

        MERCI BEAUCOUP POUR VOTRE ATTENTION.

  3.   ALBERT dit

    LINUX NEWS: Attack on Linux Mint: infecter les installateurs et compromettre les informations d'identification des utilisateurs

    http://www.muylinux.com/2016/02/21/ataque-a-linux-mint

    1.    azpe dit

      Je l'ai déjà posté, mais ne spammez pas d'autres pages ici s'il vous plaît

  4.   ALBERT dit

    ANDROID NEWS: GM Bot, le cheval de Troie Android dont Mazar est dérivé

    http://www.redeszone.net/2016/02/21/gm-bot-el-troyano-para-android-del-que-deriva-mazar/

  5.   Hernan dit

    Bonjour Jimmy, comment faites-vous pour que squid ne recherche pas ces pages à votre place? Ce serait bien si vous commentiez l'option transparente, ce qui évite l'ennui de configurer le proxy sur chaque ordinateur

    1.    Jimmy Olano dit

      Bonne question, j'ai installé un CAPTCHA en logiciel libre sur les pages web de mes clients:
      (http: // www. ks7000. net. ve / 2015/04/03 / un-captcha-easy-and-simple-to-implement /
      -Humilement, ce n'est PAS du "spam" ou de l'auto-promotion, cela vient au cas-)
      Et j'imagine qu'en utilisant Squid ces images ne sont PAS rechargées car je leur ai mis le même nom -ea, je peux aussi générer des noms aléatoires, je n'avais pas pensé à ça, jusqu'à présent- et en ayant le même nom, Squid retourne quoi il a dans le "cache".

      Evidemment la fonction principale du «proxy» est d'économiser de la bande passante avec les images -les plus lourdes d'une page web- [i] dans l'hypothèse que ces images sont statiques, elles ne changent pas dans le temps, ce qui est vrai dans 99% des cas [/ i].

      Mais dans le CAPTCHA, comme "il n'y a pas de course", il faut éliminer son stockage précédent et toujours renvoyer une nouvelle image.

      EN CE QUI CONCERNE LES BANQUES, je comprends que la plus grande d'Espagne est «Caixa» car nous allons créer une règle EXEMPLE:

      acl caixa dstdomain .lacaixa.es

      où:
      acl -> commande pour créer une règle (relisez l'article de M. Isaac, paragraphes ci-dessus).

      caixa -> nom de la règle.

      dtsdomain -> option "type" pour indiquer que l'on se réfère à un domaine, IMPORTANT le point au début ( http://ww w.visolve. com / squid / squid24s1 / access_controls.php)

      domaine (s) -> J'imagine que nous pouvons ajouter les domaines dont nous avons besoin, séparés par un espace; en parlant d'espaces je les ai insérés dans les liens web indiqués, supprimez-les et vous naviguerez (pages en anglais).

      J'espère que les connaissances présentées ici vous seront utiles, grâce à LinuxAdictos!

    2.    Jimmy Olano dit

      BIEN, pour répondre à la question de la TRANSPARENCE dans Squid AGAIN j'insiste sur le fait que vous devez avoir des connaissances de niveau intermédiaire et pour des raisons didactiques je vais résumer autant que possible l'article suivant (en anglais) qui, à mon avis, parle très bien du sujet:

      http: // ww w.deckle.co. fr / guide-utilisateurs-squid /proxy-caching-transparent.html

      Notes:
      -J'ai ajouté des espaces aux liens pour éviter le "pingback" par moi-même (je n'ai rien du tout lié à l'équipe Addicts Linux, donc je ne suis pas autorisé à effectuer cette action).
      - CECI SUR LA TRANSPARENCE JE NE SAIS PAS! (ils ne m'ont pas appris, dis-je).
      -En vous aidant les gars, je m'aide moi-même aussi, c'est cool en quantité! ?

      Eh bien, cela dit, passons aux choses sérieuses:

      J'ai juste suggéré à M. Isaac de développer la configuration de nos navigateurs avec le proxy installé et il l'a fait très gentiment (wow, où cet homme trouve-t-il le temps de faire tant de choses?).

      Dans ce schéma, l'utilisation de Squid EST OPTIONNELLE: chaque utilisateur de notre réseau local sera en charge de faire son travail, mais vous pouvez parier «argent dur contre pesetas papier» qu'il y a un «script bash» qui peut être installé via SSH à divers ordinateurs exécutant GNU / Linux.

      PRE-BESOIN: que notre serveur Squid fonctionne comme M. Isaac l'enseigne dans ce post, si nous l'avons déjà testé et mis une "charge de travail" dessus et qu'il fonctionne bien, nous pouvons aller plus loin.

      DANS LE CADRE DU SCHÉMA DE TRANSPARENCE:

      PREMIER.- Notre Squid doit être la route par défaut "gateway" dans notre "eth0" ou "wlan0" - vous souvenez-vous de la connaissance de niveau moyen? -, ben on l'établit là (c'est fait par défaut avec DHCP DONC il faut aussi configurer le serveur d'un tel service:
      http: // en.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Il faut prévoir de configurer, en cas de panne, rediriger tout le trafic vers nos modem (s) directement si Squid -l'ordinateur sur lequel il tourne- est dépassé dans sa charge de travail -et utiliser le (s) modem (s)) de type "bridge" pour que ils sortent, ceci est réalisé en créant un "script" qui est déclenché dans ledit événement et configure notre serveur DHCP -qui doit être installé sur un autre ordinateur que notre Squid-.

      REMARQUE: notre ordinateur Squid dépendra toujours de son adresse IP de DHCP MAIS en même temps il aura un certain "contrôle" avec ledit serveur DHCP. Si vous voulez travailler avec des adresses IP fixes, de puissance, vous pouvez, mais lorsque vous ajoutez plus d'ordinateurs OU en REMPLACEZ certains vous devrez configurer à nouveau et ce n'est pas l'idée (lire avec délice:
      ht tps: // phéno barbital. wordpress.com/2012/07/23/the-12-reasons-by-who-a-administrator-of-systems-lazy-is-a-good-administrator/)
      UNE AUTRE NOTE (voir deuxième point): nos modem (s) et / ou routeurs doivent désactiver la fonction DHCP et qu'ils sont régis par notre serveur DCHP (-que je vous assure qu'une autre entrée en sort pour nous montrer comment monter ledit service-)

      DEUXIEME.- Il faut filtrer le trafic vers notre serveur Squid, ceci si nous avons plusieurs routeurs dispersés qui couvrent une zone de réseau sans fil "wifi", il s'agit toujours d'un réseau local mais de taille moyenne. Essentiellement, c'est le même que le premier point MAIS si nous avons différents appareils OU MÊME des sous-réseaux, nous devons les configurer également, alors soyez prudent avec ceux d'entre nous qui travaillent à «écraser les fers» dans les grandes entreprises.

      TROISIEME.- Dans notre GNU / Linux qui héberge Squid nous devons rediriger les ports et configurer le «firewall» (lire l'article précédent IPTables
      http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )

      iptables -t nat -A PREROUTING -p TCP -dport 80 -j REDIRECT -to-port 3128

      et à l'IPFW:

      / sbin / ipfw ajoute 3 fwd 127.0.0.1,3128 tcp de any à 80

      Inutile de dire que nous NE POUVONS PAS exécuter un serveur Apache ou Ngix sur ce port 80 - port par défaut des pages web - COMMON SENSE INDIQUE de ne pas mettre plus de charge sur notre ordinateur avec Squid - en fonction de l'espace disque pour le «cache» -.

      QUATRIEME.- Nous devons configurer notre serveur Squid et lui dire qu'il fonctionne dans ce mode en modifiant "/etc/squid/squid.conf" avec nano ou l'éditeur que vous aimez le plus:

      http_port 3128 transparent

      Nous devons également activer le transfert de paquets dans "/etc/sysctl.conf":

      net.ipv4.ip_forward = 1
      net.ipv6.conf.all.forwarding = 1

      Cette dernière ligne si nous avons IPv6, il est bon de la configurer une fois dans le futur.

      Enfin, redémarrez le service Squid comme recommandé par M. Isaac ci-dessus et redémarrez également le service réseau:

      /etc/init.d/procps.sh redémarrer

      UNE FOI EN ERRATA (ou des absurdités de ma part) faites-moi savoir de la même manière, vos critiques et commentaires sont les bienvenus;
      LE MR. ISAAC EST LE MODÉRATEUR qui aura le dernier mot dans ce «combat».

  6.   Jimmy Olano dit

    Dans cette courte vidéo, nous pouvons voir comment configurer Mozilla pour utiliser un serveur proxy, à l'exception qu'il utilise une machine virtuelle avec ReactOS, mais c'est court et je pense que c'est ILLUSTRATIONS ce que vous voulez configurer ici (lien désactivé avec des espaces, supprimez-les et parcourez):

    ht tps: / / www. Youtube. com / watch? v = st47K5t7s-Q

  7.   Prof dit

    Je viens de commencer à suivre ta radio, ça fait 2 jours .. et du très bon contenu ..
    Salutations du Mexique. (Je suis professeur et mon grain de sable est d'utiliser l'open source)

  8.   Bélier dit

    Je voudrais que vous m'aidiez Je veux donner le privilège à un utilisateur de voir Facebook et que les autres soient avec les restrictions déjà configurées et comment activer les internautes à certains moments Je voudrais que vous me conseilliez, merci

  9.   Belkis dit

    Ari, ce qu'ils m'ont expliqué à cet égard, c'est que la machine que vous voulez n'est pas restreinte, elle doit être laissée de côté, mais jusque-là j'ai l'explication, je suis aussi inexpérimenté sur le sujet

  10.   vainqueur dit

    Bonne nuit, excusez-moi, peut-être que ma question est un peu basique mais bon, j'ai installé squid et configuré sur un centos 5.4, installé wine et ultrasurf, ce que j'ai l'intention de faire est de partager internet d'ultrasurf avec squid, je fais de même sur une machine windows XP avec FreeProxy et ultrasurf et je peux le partager sans problème mais je ne sais pas comment le faire sous linux

  11.   Daniel Andrade dit

    Je vous consulte, j'ai une configuration comme la vôtre, dans mon cas je redirige le port 80 vers 8080 où court le calmar. Le problème est que certains utilisateurs laissent cette configuration sur leurs ordinateurs et y accèdent via le port 80, mais pas tous les services. Ceci avec iptables. Avez-vous une idée de l'origine du problème?

  12.   Mer dit

    Très utile et bien expliqué. Merci!

    J'ai une question, quand je veux créer un acl, où dois-je le faire, c'est-à-dire dans quelle ligne du fichier de configuration? Et dois-je mettre immédiatement 2 lignes sous la commande http_access comme vous le montrez dans votre message? Ou où?

    Merci encore!! Les salutations!