Squid als transparenter Proxy->Frage zu Firewallregel



  • Hallo zusammen,

    ich habe Squid installiert und in den tranparenten Modus geschaltet. Nun gehen alle Anfragen zum Zielport 80 bzw http über den Proxy. In den Firewallregeln hat sich jedoch nichts geändert. Wie wird die Umleitung von entsprechenden Paketen denn jetzt genau durchgeführt? Ich hatte angenommen, das dies mittels einer Firewallregel passiert.

    Was ist eigentlich mit Anfragen zu alternativen Ports, wie 8080 oder so?



  • Du kannst nun LAN -> TCP 80 -> * als Regel entfernen.
    Die Paketumleitung wird so durchgeführt:

    LAN Port TCP 80 wird angenommen und lokal auf 127.0.0.1:3128 umgeleitet (auf der Firewall), somit ist's transparent ;-)
    keine grosse Magie ;-)



  • Hallo trendchiller,

    vielen Dank für deine schnelle Antwort. Entschuldige bitte das ich noch mal nachhake. Vielleicht habe ich mich nicht ganz klar ausgedrückt. Eine Firewallregel habe ich nicht erstellt. Deshalb brauche ich auch keine zu löschen. Mir geht es um die automatisch generierte Regel, wenn man den transparenten Proxy einschaltet.

    Wie du richtig schriebst, lauscht der Squid dann auf 127.0.0.1 und Rechner aus dem LAN können und werden den Proxy ohne weitere Konfiguration nutzen.

    Wie kann ich mir denn die automatisch erstellt Regel anzeigen lassen?

    Ich habe nämlich die Vermutung, das das Portforwarding von Port 80 auf Port 3128 für jedes Interface gilt. Denn ab dem Zeitpunkt ist kein Webzugriff aus meinem WLAN ins Internet mehr möglich.

    Daraus schließe ich, das ich den transparenten Proxymodus entweder aus oder für alle Interfaces einschalten kann. Oder ist es möglich des transparenten Proxy für das LAN zu nutzen und für das WLAN nicht?



  • @Gandalf2011:

    Hallo zusammen,

    ich habe Squid installiert und in den tranparenten Modus geschaltet. Nun gehen alle Anfragen zum Zielport 80 bzw http über den Proxy. In den Firewallregeln hat sich jedoch nichts geändert. Wie wird die Umleitung von entsprechenden Paketen denn jetzt genau durchgeführt? Ich hatte angenommen, das dies mittels einer Firewallregel passiert.

    Was ist eigentlich mit Anfragen zu alternativen Ports, wie 8080 oder so?

    Im transparenten modus kann squid nur den Port 80, also http filtern und überwachen. Alle Anfragen, die den Zielport 80 haben, werden automatisch umgeleitet. Dafür ist keine spezielle Firewall Regel notwendig.

    Sämtliche andere Zielports, 443 (hhtps), 21 (ftp) oder in deinem fall 8080 werden NICHT über den squid Proxy geleitet. Dafür ist der transparente Modus nicht geeignet.

    Möchtest du andere Zielports über den squid leiten, dann darf squid NICHT im transparenten Modus laufen. Du musst dann aber in jedem Browser an den Clients die Proxy Adresse eingeben. Ob du das über eine Gruppenrichtlinie erledigst oder über WPAD, ist egal. Jedenfalls braucht der Browser die Proxy Information.
    Damit niemand den Proxy umgehen kann, musst du natürlich Firewall Regeln erstellen, nur Verkehr zum squid zulassen und sonstigen Verkehr blocken.



  • @Gandalf2011:

    (…)
    Daraus schließe ich, das ich den transparenten Proxymodus entweder aus oder für alle Interfaces einschalten kann. Oder ist es möglich des transparenten Proxy für das LAN zu nutzen und für das WLAN nicht?

    Du kannst doch im SQUID die interfaces auswählen, auf denen squid lauschen soll, in deinem Fall z.B. LAN und auf WLAN nicht.

    Unabhängig davon musst du eine Firewall Regel erstellen, die TCP Port 80 erlaubt. Es wird keine "geheime" oder "unsichtbare" Firewall Regel erstellt. Es wird lediglich eine automatische "Umleitung" erstellt, die nämlich Destination Port 80 auf Destination Port 3128 (default squid) umleitet. Das hat aber auch nichts mit port forwarding zu tun.

    Kurz und knapp:
    Sollen deine Clients im LAN und WLAN auf Port 80 (http) zugreifen können, also im web browsen, dann musst du auf beiden Interfaces eine solche Firewll Regel erstellen.
    Möchtest du, dass squid den Verkehr auf einem Interface überwacht, egal ob transparent oder untransparent, dann musst du das Interface im squid angeben, worauf squid lauschen soll, in deinem Fall als LAN.



  • Vielen Dank für die rege Beteiligung,

    alles bisher geschriebene hilft mir derzeit noch nicht weiter, denn:

    • Regeln für den Internetzugriff existieren d.h. ich komme ohne Squid ins Internet
    • Clients des LAN Interfaces sollen über den tranparenten Squid ins Internet
    • Clients des WLAN sollen ohne Squid, also direkt ins Internet (geht nicht trotz Regel)

    Zugriffe aus dem WLAN auf Zielport 80 im Internet werden ungewollt zwangsweise auf den Squid umgebogen, und dieser soll den Verkehr aus dem WLAN nicht weiterleiten.



  • Dann hast du vermutlich etwas falsch konfiguriert.

    Poste doch bitte einmal screenshots deiner firewall Regel auf LAN und dem WLAN Interface und bitte einen Screenshot von deinen Einstellungen "General" im squid.

    Vielleicht ist nur ein Häkchen nicht gesetzt. :-)



  • Hier die ersten beiden Screenshots… (wegen der Dateigrösse)

    und im nächsten Posting der dritte.






  • hier das dritte…




  • Ich hab mich mal ein bischen mit pf beschäftigt und konnte mittels des Befehls:

    pf -sr

    anzeigen lassen, was an Firewall Regeln hinzugefügt wird, wenn ich das Häkchen bei Transparent Proxy setze:

    pass in quick on re0 proto tcp from any to ! (re0) port = 3128 flags S/SA keep state
    pass in quick on bridge0 proto tcp from any to ! (bridge0) port = 3128 flags S/SA keep state

    Meiner Ansicht nach wird dann jeglicher TCP-Verkehr zu Port 3128 umgeleitet und nicht nur Port 80 bzw. http

    Weiter taucht diese Regel auf keinen Fall im Webinterface auf.



  • Hallo,

    also die Firewall-Regels im LAN und im WLAN sind eigentlich korrekt. Auch im SQUID finde ich keine Fehlkonfiguration. Nach meinem Verständnis und meinen Erfahrungen müsste SQUID so nur auf LAN cachen und WLAN unberührt lassen.

    Die Firewall-Regel-Syntax in der Konsole ist für mich nicht ganz verständlich, ich klicke lieber GUI ;o) aber kann es sein, dass du das WLAN interface gebridged hast ? Wenn ja, suche bitte mal im Forum, ich bin der Meinung, dort hatte jemand anderes auch ein Problem mit squid, wenn das Interface im "bridge" Modus lief.

    Tut mir leid, dass ich nicht weiter helfen kann.



  • Vielen Dank erstmal für die Unterstützung,

    da es im Webinterface ja leider keine Seite für das Firewall Prerouting gibt (vielleicht habe ich sie auch nur nicht gefunden) musste ich mir die Regeln eben an der Console anzeigen lassen. Dabei fiel mir auf, das dort keine Angabe zur Portnummer (80) bzw. http vorkam. Hingegen taucht hier jedoch die Angabe tcp auf, die meiens Erachtens für jeglichen tcp-Verkehr steht. Unerwartet fand ich auch, das der transparente Squid nicht auf dem Interface 127.0.0.1, sondern auf dem Lan als auch dem Opt Interface auf Verbindungen wartet.

    Zu diesem Zeitpunkt habe ich die Interfaces nicht im Bridge-Modus konfiguriert.

    Mit diesem gesammelten Erfahrungen habe ich jetzt noch mal neu angefangen und bisher klappt alles.



  • @Gandalf2011:

    (…)
    Mit diesem gesammelten Erfahrungen habe ich jetzt noch mal neu angefangen und bisher klappt alles.

    Könntest du das bitte etwas genauer erläutern ? Mit was hast du neu angefangen ? Und wie hast du es aktuell konfiguriert, so dass es läuft ?

    Mich interessiert es und Anderen hilft es vielleicht in Zukunft.



  • Ich habe mich für einen anderen Weg entschieden, nutze jetzt nicht mehr Squid als transparenten Proxy, sondern als Dienst für den Client, sodass dieser selbst seinen Browser konfigurieren muss. Damit hat der Client dann auch noch die Entscheidungsfreiheit, ob er einen zweiten im Subnetz befindlichen anderen Proxy nutzen will (Privoxy->gibts ja leider nicht als Paket für pfSense). Das kann man sehr gut mit Fli4l machen (http://www.fli4l.de/)

    Vielleicht wird die Konfiguration noch erweitert, sodass die Proxykonfiguration per WPAD an die Clients verteilt wird.
    So weit bin ich jetzt aber noch nicht.

    Die standardmäßig eingerichteten Firewallregeln haben noch mehr konfiguriert,was in den Rules im Webinterface nicht auftaucht z.B. die für den Zugriff des Clients auf den DHCP Service.

    Ich fänd es besser, wenn man alle automatisch eingerichteten Regeln auch im Webinterface wiederfinden würde, denn so muß ich bei Problemen und Ungereimtheiten an zwei Stellen nachschauen.


Locked