Einführung in Squid: Schritt-für-Schritt-Setup

Tintenfisch-Logo und Smoking

Squid ist ein weiterer Filter auf Anwendungsebene die iptables ergänzen können. Squid ist ein zwischengespeicherter Webproxyserver, sehr beliebt und kostenlos sowie plattformübergreifend. Obwohl es zur Verbesserung der Leistung von Internetverbindungen verwendet werden kann, kann es auch zu Sicherheitszwecken verwendet werden. Seit Beginn des Projekts in den 90er Jahren ist Squid sehr weit fortgeschritten. Jetzt präsentieren wir es Ihnen, damit Sie wissen, wie man es verwendet.

Für Ihre Installationkönnen Sie auf die zugreifen offizielle Website des Projekts und wählen Sie die Binärpakete für Ihr Betriebssystem oder Ihre Distribution aus. Wenn Sie es auch durch Kompilieren aus dem Quellcode-Paket installieren möchten Sie haben diese Option. Die verfügbaren Tarballs sind tar.gz, tar.bz2 und tar.xz. Wenn Sie nicht wissen, wie Sie installieren sollen, können Sie zu dem Artikel gehen, über den wir in diesem Blog arbeiten Wie installiere ich ein Paket unter Linux?. Auge! Wenn Sie ein Debian oder Derivat haben und gesehen haben, dass es mit sudo "apt-get install squid" installiert ist, wird möglicherweise eine Fehlermeldung angezeigt, da Sie "squid" durch "squid3" ersetzen müssen, damit es wirksam wird. .

Jetzt gehen wir direkt zum Erklären der Aktion über Einige Beispiele für die Verwendung von Squid um unsere Ausrüstung zu schützen. Bevor ich erklären möchte, dass Squid auf ACLs basiert, dh auf der Zugriffssteuerungsliste oder der Zugriffssteuerungsliste, dh Listen, in denen die Berechtigungen zur Steuerung des Netzwerkflusses in diesem Fall und zur Implementierung von Filtern ähnlich denen von iptables aufgeführt sind auf Anwendungsebene.

Normalerweise ist nach der Installation eine Konfigurationsdatei enthalten, die sich in befindet /etc/squid3/squid.conf und das ist es, was wir mit einem Editor wie nano oder gedit bearbeiten müssen. Darin können wir unsere Filterregeln generieren, obwohl es die Optionen cache_dir, cache_mem und http_port gibt, werden wir letztere für unsere Sicherheitsregeln verwenden. Ein weiteres Detail ist, dass diese Datei den vom Squid-Dienst verwendeten Standardport angibt, der standardmäßig 3128 ist (siehe Zeile oder Anweisung "http_port 3128" und entfernen Sie das #, um ihn zu aktivieren). Wenn Sie möchten, können Sie es in einen anderen Port wie 8080 ändern. Außerdem müssen Sie den Hostnamen konfigurieren. Suchen Sie nach dem Kommentar "TAG: Visible_hostname", und Sie sehen eine Zeile "visible_hostname", in die Sie einfügen müssen Ihr Hostname.

Um Ihren Hostnamen zu erfahren, können Sie das Terminal eingeben:

hostname

Und der Name, der angezeigt wird, wird der Zeile hinzugefügt, der kein # vorangestellt werden sollte, damit er nicht als Kommentar ignoriert wird. Das heißt, es würde so aussehen:

sichtbarer_Hostname Hostname_have_you_appeared

Wenn Sie die Konfigurationsdatei sehen, werden Sie sehen, dass sie sehr kommentiert ist. Wenn Sie eine erstellte Regel überschreiben möchten, können Sie die Zeile mit # beginnen und du transformierst es in einen Kommentar, mit dem Squid es ignoriert, um es wieder in Betrieb zu nehmen, löschst du das # und das war's. Tatsächlich gibt es viele erstellte und kommentierte Regeln, die Sie durch Entfernen von # verwenden können. Sie müssen also keine Regeln löschen und neu schreiben. Um eine bestimmte Regel oder einen bestimmten Filter hinzuzufügen, muss eine ACL und eine Direktive vorhanden sein, die angeben, was zu tun ist.

Übrigens, wenn Sie ein # entfernen, um eine Regel zu aktivieren, Stellen Sie sicher, dass am Zeilenanfang keine Leerzeichen stehen. Zum Beispiel:

Falscher Weg:

http_port 3128

Der richtige Weg:

http_port 3128

Hast du nichts gehört? Mach dir keine Sorgen mit Ein Beispiel Sie werden alles viel besser sehen. Stell dir das vor:

acl blockiert url_regex als facebook
http_access Blockierung verweigern

Was diese Regel bedeutet ist, dass die ACL mit dem Namen "Blockieren" den Zugriff auf die URL verbietet, die "Facebook" enthält (daher wird beim Versuch, Facebook einzugeben, ein Fehler im Browser übersprungen). Wenn Sie anstelle von "Verweigern" "Zulassen" verwenden, würden Sie den Zugriff zulassen, anstatt ihn zu verbieten. Sie können auch die! Angenommen, Sie möchten den Zugriff auf Liste1, nicht jedoch auf Liste2 zulassen, um dies auszuschließen:

http_access allow lista1 !lista2

Ein anderes Beispiel könnte das Erstellen einer Datei / etc / squid3 / ips sein und darin eine Liste von IPs speichern, auf die wir Zugriff gewähren möchten. Angenommen, der Inhalt der zulässigen IPs lautet:

192.168.30.1

190.169.3.250

192.168.1.26

Und dann erstellen wir die acl um den Zugriff auf diese IPs zu ermöglichen:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Ein ziemlich praktisches BeispielStellen Sie sich vor, Ihr Computer wird von Kindern unter 18 Jahren verwendet und Sie möchten den Zugriff auf bestimmte Websites mit Inhalten für Erwachsene einschränken. Als erstes erstellen Sie eine Datei mit dem Namen / etc / squid3 / list mit dem Inhalt:

Erwachsenen

Porno

Sex

Poringa

Und jetzt in  die squid.conf Datei Wir setzen die folgende Regel:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

Wie du siehst wir haben erlauben verwendet was im Prinzip zu erlauben ist, aber wenn Sie schauen, haben wir hinzugefügt! zu leugnen, wäre daher gleichbedeutend mit:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

Sie können auch Listen erstellen, nicht nur von Domainnamen oder IPs, wie wir es getan haben. Sie können auch Domains platzieren und zum Beispiel den Zugriff auf Domänen wie .xxx, .gov usw. einschränken. Schauen wir uns ein Beispiel an, das auf der vorherigen Regel basiert. Wir erstellen eine Datei / etc / squid3 / Domains mit:

. Edu

. Es

.org €XNUMX

Und jetzt unsere Regel, um den Zugriff auf die Liste der von uns erstellten verbotenen Websites zu verweigern, aber den Zugriff auf URLs mit diesen Domänen zuzulassen:

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

http_access allow !denegados dominios

ERWEITERUNG:

Entschuldigung, als ich die Kommentare sah, wurde mir das klar Ich habe die Hauptsache vermisst. Ich habe mich darauf beschränkt, Beispiele für die Verwendung zu nennen, und habe vergessen, dies zu sagen, um den Squid-Server zu starten:

sudo service squid3 start

Bevor es mit "/etc/init.d/squid start" aufging, müssen Sie jetzt diese andere Zeile verwenden, die ich gesetzt habe. Ebenso wie sich die Konfigurationsdatei nicht mehr in /etc/squid/squid.conf befindet, sondern in /etc/squid3/squid.conf. Ok, sobald die Filterrichtlinien erstellt und gestartet wurden, müssen wir auch den Browser konfigurieren. Wenn Sie beispielsweise Mozilla Firefox oder Derivate verwenden, können Sie zum Konfigurationsmenü (Sie wissen, die drei Balken) und dann zu gehen Einstellungen, Erweitert, und klicken Sie auf der Registerkarte Netzwerk im Abschnitt Verbindung auf Konfiguration. Dort wählen wir Manuelle Proxy-Konfiguration und geben unsere IP und den Port ein, den Squid verwendet, in diesem Fall 3128. Wählen Sie auch "Für alles denselben Proxy verwenden" und beenden Sie das Speichern der Änderungen.

Bitte Vergessen Sie nicht, Ihre Kommentare zu hinterlassen, Zweifel oder was auch immer Sie wollen ... Obwohl es ein Tutorial weit über Squid ist, hoffe ich, dass es Ihnen hilft.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Nicolas sagte

    danke!, hilfreich.

  2.   Jimmy Olano sagte

    WIEDER sehr gut für ein etwas komplexes Thema zusammengefasst, sage ich immer wieder "Benutzerebene: mittel", Sie sollten einige Begriffe über "Netzwerke" kennen.

    Ich denke demütig, dass die Option, unseren Browser für die Verwendung des "Proxys" zu konfigurieren, hinzugefügt werden sollte, aber da dieser Eintrag eine "EINFÜHRUNG in Squid" ist, werden wir uns der nächsten sehr bewusst sein? Lieferung (schließlich und auf die Gefahr hin, mich zu ärgern, denken Sie daran, die Bankwebseiten und / oder Finanzinstitute, die Sie in Ihrem Haus oder Unternehmen verwenden, nicht zu "vertreten").

    1.    Isaac PE sagte

      Hallo, danke für die Kommentare. Ja, IPTABLES und Squid sind zu dick, um einen Artikel zu verfassen, in dem sie ausführlich erklärt werden, und Sie müssen sich darauf beschränken, alltägliche Beispiele zu nennen ...

      Aber Sie haben absolut Recht, ich habe es jetzt hinzugefügt, um den Proxy zu konfigurieren, ich hatte es geplant und ich habe es vergessen. Mein Fehler.

      Grüße und danke !!

      1.    Jimmy Olano sagte

        Uffff "Kofferraum" Entschuldigung, dass Sie die Hauptsache nicht erkannt haben:
        STARTEN SIE DEN DIENST :-( ohne das «es gibt keine Tante» -verzeihen Sie mir die Umgangssprache- SEHR ERFOLGREICHE ERWEITERUNG! 8-)

        {Das Problem wird bei jedem Start behoben, indem "/ sbin / init" geändert wird:
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {Ein anderer einfacher Weg ist die Verwendung von "update-rc.d":
        https: // parbaedlo. wordpress.com/201 3/03/07 / Einstellung-Start-und-Stopp-von-Diensten-Linux-Update-rc-d /}

        Ich habe den Links Leerzeichen hinzugefügt, entferne sie und du wirst navigieren ;-)

        VIELEN DANK FÜR EURE AUFMERKSAMKEIT.

  3.   ALBERT sagte

    LINUX NEWS: Angriff auf Linux Mint: Infizieren Sie Installationsprogramme und gefährden Sie die Benutzeranmeldeinformationen

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

    1.    Azpe sagte

      Ich habe es bereits veröffentlicht, aber bitte spamme keine anderen Seiten hier

  4.   ALBERT sagte

    ANDROID NEWS: GM Bot, der Android-Trojaner, von dem Mazar abgeleitet ist

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

  5.   Hernan sagte

    Hallo Jimmy, wie machst du das, damit Squid diese Seiten nicht nach dir durchsucht? Es wäre schön, wenn Sie die transparente Option kommentieren, wodurch die mühsame Konfiguration des Proxys für jeden Computer vermieden wird

    1.    Jimmy Olano sagte

      Gute Frage, ich habe ein CAPTCHA in freier Software auf den Webseiten meiner Kunden installiert:
      (http: // www. ks7000. net. ve / 2015/04/03 / un-captcha-easy-and-simple-to-implement /
      -Humily, es ist NICHT "Spam" oder Eigenwerbung, es ist angemessen-)
      und ich stelle mir vor, dass bei der Verwendung von Squid diese Bilder NICHT neu geladen werden, weil ich denselben Namen auf sie setze - ich kann auch zufällige Namen generieren, darüber hatte ich bis jetzt nicht nachgedacht - und indem ich denselben Namen habe, gibt Squid was zurück es hat im "Cache".

      Offensichtlich besteht die Hauptfunktion des «Proxys» darin, Bandbreite mit den Bildern zu sparen - der schwersten einer Webseite - [i] in der Annahme, dass diese Bilder statisch sind, sie ändern sich nicht im Laufe der Zeit, was in 99% der Fälle der Fall ist Fälle [/ i].

      Da in CAPTCHAs jedoch "kein Lauf ausgeführt wird", müssen wir den vorherigen Speicher entfernen und immer ein neues Image zurückgeben.

      Was die Banken betrifft, so verstehe ich, dass die größte in Spanien «Caixa» ist, weil wir eine BEISPIELregel erstellen werden:

      acl caixa dstdomain .lacaixa.es

      wobei:
      acl -> Befehl zum Erstellen einer Regel (lesen Sie den Artikel von Herrn Isaac in den obigen Absätzen erneut).

      caixa -> Regelname.

      dtsdomain -> "type" Option, um anzuzeigen, dass wir auf eine Domain verweisen. WICHTIG der Punkt am Anfang ( http://ww w.visolve. com / squid / squid24s1 / access_controls.php)

      Domain (s) -> Ich stelle mir vor, dass wir die benötigten Domains durch ein Leerzeichen getrennt hinzufügen können. Apropos Leerzeichen Ich habe sie in die angegebenen Weblinks eingefügt, entferne sie und Sie navigieren (Seiten in Englisch).

      Ich hoffe, dass das hier präsentierte Wissen für Sie nützlich ist LinuxAdictos!

    2.    Jimmy Olano sagte

      Nun, um die Frage der TRANSPARENZ in Squid WIEDER zu beantworten, bestehe ich darauf, dass Sie über Kenntnisse auf mittlerem Niveau verfügen müssen, und aus didaktischen Gründen werde ich den folgenden Artikel (auf Englisch), den ich für sehr gut halte, so gut wie möglich zusammenfassen:

      http: // ww w.deckle.co. uk / squid-users-guide /transparent-caching-proxy.html

      Hinweise:
      -Ich habe den Links Leerzeichen hinzugefügt, um ein Pingback von mir zu vermeiden (ich habe absolut nichts mit dem Team zu tun). Linux Adictos, daher bin ich nicht befugt, diese Aktion durchzuführen).
      - DAS ÜBER TRANSPARENZ WUSSTE ICH NICHT! (Sie haben mich nicht unterrichtet, sage ich).
      -Hilf euch, ich helfe mir auch, das ist cool in der Menge! ?

      Nachdem dies gesagt ist, kommen wir zur Sache:

      Ich habe Herrn Isaac NUR vorgeschlagen, die Konfiguration unserer Browser mit installiertem Proxy zu erweitern, und er hat dies sehr freundlich getan (wow, wo findet dieser Mann Zeit, um so viele Dinge zu tun?).

      Im Rahmen dieses Schemas ist die Verwendung von Squid OPTIONAL: Jeder Benutzer unseres lokalen Netzwerks ist für die Erledigung seiner Aufgaben verantwortlich. Sie können jedoch darauf wetten, dass ein "Bash-Skript" installiert werden kann über SSH an verschiedene Computer mit GNU / Linux.

      VORAUSSETZUNG: Dass unser Squid-Server so funktioniert, wie es Mr. Isaac in diesem Beitrag lehrt. Wenn wir ihn bereits getestet und mit einer "Arbeitslast" versehen haben und er eine gute Leistung erbringt, können wir fortfahren.

      IM RAHMEN DES TRANSPARENZSYSTEMS:

      ZUERST: Unser Squid muss die Standardroute "Gateway" in unserem "eth0" oder "wlan0" sein. Erinnern Sie sich an den mittleren Wissensserver eines solchen Dienstes:
      http: // en.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Wir müssen planen, im Falle eines Fehlers den gesamten Datenverkehr direkt zu unseren Modems umzuleiten, wenn Squid - der Computer, auf dem es ausgeführt wird - mit seiner Arbeitslast überlastet ist - und den Modemtyp "bridge" verwenden, damit Wenn sie nach draußen gehen, wird dies erreicht, indem ein "Skript" erstellt wird, das in diesem Fall ausgelöst wird und unseren DHCP-Server konfiguriert, der auf einem anderen Computer als unserem Squid installiert werden sollte.

      HINWEIS: Unser Computer mit Squid hängt immer von seiner IP-Adresse von DHCP ab, ABER gleichzeitig hat er eine gewisse "Kontrolle" über diesen DHCP-Server. Wenn Sie mit festen IP-Adressen arbeiten möchten, können Sie dies tun. Wenn Sie jedoch weitere Computer hinzufügen oder einige ersetzen, müssen Sie diese erneut konfigurieren, und dies ist nicht die Idee (lesen Sie mit Freude:
      ht tps: // Pheno Barbital. wordpress.com/2012/07/23/the-12-reasons-by-who-a-administrator-of-systems-lazy-is-a-good-administrator/)
      Noch ein Hinweis (siehe zweiter Punkt): Unsere Modems und / oder Router-Geräte müssen die DHCP-Funktion deaktivieren und sie werden von unserem DCHP-Server gesteuert (was ich Ihnen versichere, dass ein weiterer Eintrag daraus hervorgeht, um uns zu zeigen, wie gemountet wird) besagter Service-)

      ZWEITER: Wir müssen den Datenverkehr zu unserem Squid-Server filtern. Wenn wir mehrere verteilte Router haben, die einen drahtlosen Netzwerkbereich "WLAN" abdecken, handelt es sich immer noch um ein lokales Netzwerk, das jedoch mittelgroß ist. Im Wesentlichen ist es dasselbe wie der erste Punkt, ABER wenn wir verschiedene Geräte ODER AUCH Subnetze haben, müssen wir diese ebenfalls konfigurieren. Seien Sie also vorsichtig mit denen von uns, die in großen Unternehmen "die Eisen zerquetschen".

      DRITTE - In unserer GNU / Linux, die Squid hostet, müssen wir die Ports umleiten und die «Firewall» konfigurieren (lesen Sie den vorherigen Artikel IPTables
      http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )

      iptables -t nat -A PREROUTING -p TCP –dport 80 -j WEITERLEITUNG –an-port 3128

      und zum IPFW:

      / sbin / ipfw addiere 3 fwd 127.0.0.1,3128 tcp von any zu any 80

      Es ist unnötig zu erwähnen, dass wir KEINEN Apache- oder Ngix-Server auf diesem Port 80 ausführen können - Standardport von Webseiten - GEMEINSAME SINNANZEIGEN, um unseren Computer mit Squid nicht mehr zu belasten - abhängig vom Speicherplatz für «Cache».

      VIERTE: Wir müssen unseren Squid-Server konfigurieren und ihm mitteilen, dass er in diesem Modus funktioniert, indem wir "/etc/squid/squid.conf" mit nano oder dem Editor ändern, den Sie am meisten mögen:

      http_port 3128 transparent

      Wir müssen auch die Paketweiterleitung in "/etc/sysctl.conf" aktivieren:

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

      Diese letzte Zeile, wenn wir IPv6 haben, ist es gut, es in Zukunft einmal zu konfigurieren.

      Starten Sie abschließend den Squid-Dienst neu, wie von Herrn Isaac oben empfohlen, und starten Sie auch den Netzwerkdienst neu:

      /etc/init.d/procps.sh Neustart

      EINIGE GLAUBEN VON ERRATA (oder irgendein Unsinn von meiner Seite) lassen Sie mich auf demselben Weg wissen, Ihre Kritik und Kommentare sind willkommen;
      HERR. ISAAC IST DER MODERATOR, der das letzte Wort in diesem "Kampf" haben wird.

  6.   Jimmy Olano sagte

    In diesem kurzen Video können wir sehen, wie Mozilla für die Verwendung eines Proxyservers konfiguriert wird, mit der Ausnahme, dass es eine virtuelle Maschine mit ReactOS verwendet, aber es ist kurz und ich denke, es ILLUSTRAtes, was Sie hier konfigurieren möchten (Link deaktiviert mit Leerzeichen, entfernen und durchsuchen):

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

  7.   Lehrer sagte

    Ich habe gerade angefangen, Ihrem Radiosender zu folgen, ich war 2 Tage .. und sehr guter Inhalt ..
    Grüße aus Mexiko .. (Ich bin Lehrer und mein Sandkorn ist es, OpenSource zu verwenden)

  8.   acres sagte

    Ich möchte, dass Sie mir helfen. Ich möchte einem Benutzer das Privileg geben, Facebook zu sehen, und dass die anderen die bereits konfigurierten Einschränkungen haben und wie Internetnutzer zu bestimmten Zeiten aktiviert werden können. Ich möchte, dass Sie mich beraten, danke

  9.   Belkis sagte

    Ari, was sie mir darüber erklärt haben, ist, dass die Maschine, die Sie wollen, nicht eingeschränkt ist, sie muss weggelassen werden, aber bis dahin habe ich die Erklärung, ich bin auch unerfahren in diesem Thema

  10.   Sieger sagte

    Gute Nacht, entschuldigen Sie, vielleicht ist meine Frage ein bisschen grundlegend, aber hey, ich habe Tintenfisch installiert und auf einem Centos 5.4 konfiguriert, Wein und Ultraschall installiert. Ich beabsichtige, das Internet von Ultraschall mit Tintenfisch zu teilen. Ich mache das Gleiche Auf einem Windows-Computer XP mit FreeProxy und Ultrasurf kann ich es problemlos teilen, aber ich weiß nicht, wie ich es unter Linux machen soll

  11.   Daniel Andrada sagte

    Ich konsultiere Sie, ich habe eine Konfiguration wie Ihre, in meinem Fall leite ich Port 80 auf 8080 um, wo der Tintenfisch läuft. Das Problem ist, dass einige Benutzer diese Konfiguration auf ihrem PC belassen und über Port 80 zugreifen, obwohl nicht alle Dienste. Dies mit iptables. Haben Sie eine Idee, wo das Problem liegen würde?

  12.   Meer sagte

    Sehr nützlich und gut erklärt. Vielen Dank!

    Ich habe eine Frage, wenn ich eine ACL erstellen möchte, wo mache ich das, dh in welcher Zeile der Konfigurationsdatei? Und sollte ich sofort 2 Zeilen unter den Befehl http_access setzen, wie Sie in Ihrem Beitrag zeigen? Oder wo?

    Danke noch einmal!! Schöne Grüße!