Proxyzwang für http und https



  • Guten Abend, ich bin neu bei Pfsense. Ich bin derzeit bei der Installation von Pfsene und bin begeistert wie einfach die Sache von der Hand geht. Es wurde ein LAN sowie ein GAST-LAN angelegt, nun möchte ich beide Netzwerke über den Transparenten Proxy laufen lassen. Gibt es hierzu eine Anleitung wie ich dies realisieren kann? Danke vorab


  • LAYER 8 Moderator

    Da sehr viel Traffic heute HTTPS ist, würde ich mir das überlegen. Wenn du abgehend Domains/URLs blocken möchtest, dann wird das so recht unschön laufen, da bei transparentem Proxy und HTTPS bei blockierten Domains der Client nur ein Browserfehler erhält (mit dem er meist nichts anfangen kann). Wenn das aber nicht wichtig ist, kann man das sicherlich machen.



  • Hallo, okay danke. Es muss doch möglich sein einfach http und https seiten zu filtern! Ich möchte am Client kein Zertifikat installieren, da dies für das GastLAN sehr aufwendig wäre.


  • LAYER 8 Moderator

    Filtern natürlich. Aber dann mit dem Resultat (bei transparentem Proxy), dass der Nutzer SSL Fehler bekommt. Das bezieht sich offenbar auch (nur?) auf transparenten Proxy Einsatz. Ein anderer Weg wäre einfach(er) die entsprechenden Seiten bzw. Kategorien auf IP Layer oder/und direkt mittels DNS zu blocken (bspw. mit pfBNG). Proxy Eingriffe werden IMHO in Zukunft immer schwerer werden, da mit TLS1.3 und Co. auch der Sicherheit wegen immer weniger Möglichkeit bleiben wird, in den Verkehr einzugreifen (was auch durchaus sinnvoll ist). Natürlich kann man dann mit IP Filtering argumentieren, dass das zu Overblocking neigt, wenn es aber um konkreten Einsatz wie bspw. ein Gäste WLAN geht, finde ich das nicht so dramatisch. Wenn es um internes LAN geht und ständig irgendwelche Seiten nicht gehen, wäre das sicher lästiger. Der Einsatz von Blocking via IP und DNS hat auch noch einen anderen Vorteil: DNS Blocks sind sehr leichtgewichtig und stressen Client wie Netzwerk weniger als bspw. eine Verbindung wie Proxies erst aufzubauen und dann umzuleiten oder zu scannen und gewichten. Da AV Scanning bei transparentem Proxy und HTTPS eh flach fällt, gibts eigentlich momentan meiner Ansicht nach kaum große Vorteile von Proxy vs. DNS Block wenn es um einfaches HTTP/HTTPS filtern geht. Wenn es natürlich um Dinge wie Caching oder UserAuth und Co geht, steht das auf einem anderen Blatt :)



  • @JeGr
    Hallo danke für die Info. Wenn ich das richtig verstehe könnte ich mir dann den Proxy ja sparen und die Filterung über pfBNG vollziehen? Gibt es auch die Möglichkeit mit der Shalla's Blacklists zu arbeiten und dann nach Kategorien zu filtern?


  • LAYER 8 Moderator

    @felsenstadt said in Proxyzwang für http und https:

    @JeGr
    Hallo danke für die Info. Wenn ich das richtig verstehe könnte ich mir dann den Proxy ja sparen und die Filterung über pfBNG vollziehen? Gibt es auch die Möglichkeit mit der Shalla's Blacklists zu arbeiten und dann nach Kategorien zu filtern?

    Ja die gibt es. Man kann einerseits mit rein IP basierten Listen arbeiten (IP4/IP6 Part von pfBNG) oder/und mit DNS Blacklisting. Das setzt voraus, dass man den DNS Resolver der pfSense einsetzt UND dass dieser auch der DNS für die internen Geräte ist.
    Soweit gerüstet musst du nur pfBNG-devel installieren (wesentlich neuer als der alte -stable und wird hoffentlich bald neu als -stable rauskommen) und ihn dann mit Details befüttern, was du tun möchtest. Allerdings braucht das gute Stück durchaus ein wenig (viel) RAM wenn man mit DNS Blacklists arbeitet, pfSense Hardware sollte also nicht gerade zu den Schwächsten gehören, aber davon abgesehen gehts dann los. pfBNG hat auch schon einige Listen als "Feeds" vordefiniert an Bord die man recht einfach auswählen kann wie bspw. die EasyLists, EasyPrivacy, Malwarebytes, AdAway, Ransomware etc.
    Unter DNSBL / DNSBL Category kann man entweder die Shallalist oder UT1 der Uni Toulouse 1 laden lassen und anhand deren Kategorien auch nach diesen Blocken.

    Allerdings würde ich anfänglich vorsichtig anfangen und mehr und mehr nachlegen als mit "Feuer frei!" gleich alles mögliche reinzuladen, damit man ein Gespühr bekommt, was wieviel Ressourcen kostet beim Update/Filtern. Zudem empfehle ich die Antwortadresse für die DNSBL geblockten URLs auf 0.0.0.0 zu setzen statt auf die DNSBL IP die pfBlocker hat/vorschlägt. Grund ist der, dass bei der pfB IP dann versucht wird eine Seite aufzurufen, die mitteilt "ist geblockt". Das klappt aber logisch bei HTTPS Diensten nicht, da das Zertifikat nicht stimmt. Zudem macht es die Auflösung "langsamer" weil sie eine Antwort zurückgibt, der Client was versucht aufzurufen und dann die Blockseite kommt.
    Besser ist hier das Logging auf disabled zu stellen (bei DNSBL Category auswählbar, sonst direkt bei den Feeds in den Einstellungen konfigurierbar) und 0.0.0.0 zurückzugeben. Bekommt ein Client bei DNS Abfrage eine 0-Antwort, weiß er, dass das nicht gültig/nicht konfiguriert ist und wirft sofort ohne Verzögerung beim Client eine Meldung, dass die URL "nicht existiert" bzw. nicht aufgelöst werden kann. Ist wesentlich schneller und gerade bei den Feeds für Adblocking oder Privacy Blocking auch besser, da die Ladezeit der Webseiten nicht drunter leidet.

    Alternativ, wenn man eine "schönere" Oberfläche und noch mehr DNS Zugriff haben möchte, kann man sich auch einen Raspi (oder eine VM) mit Pi-Hole aufsetzen und damit (DNS) blocken. Funktioniert genau nach dem gleichen Prinzip (nur keine IP Blocks möglich wie bei pfBNG) aber die UI hat eben mehr Status, Details, Analyse und buntes Klicken als das UI in der pfSense ;) Mein Resultat beim Zwischenklemmen von einem PiHole (bzw pfBlocker) war dass die Kids total verwundert waren, warum bei ihren Smartphones und diversen Apps gar keine / kaum mehr Werbung kam wenn sie daheim sind :D Mission accomplished ;)

    Grüße



  • Okay, hättest Du noch einen Tipp für eine gute Anleitung? Danke Dir



  • @JeGr Hallo, ich hab mir nun die Anleitung von https://www.computing-competence.de/2018/06/11/mit-pfsense-werbung-und-potentielle-angriffe-blockieren-ala-pihole/
    durchgelesen und die Installation durchgeführt. Läuft super, und ich bin ganz zufrieden. Danke



  • Auch wenn hier schon eine Lösung gefunden wurde, vielleicht noch als Ergänzung:

    Man kann den "Proxyzwang" umsetzen, indem man den ausgehenden Traffic pfSense seitig per Policy Routing zu einem Squid Server (oder beliebig anderem Ziel) umleitet.
    D.h. der Nutzer kriegt nicht mit, dass er gerade über einen Proxy läuft - der Proxy kann http vollständig filtern und auch Custom Content darstellen und bei https kann er bei Bedarf selbiges per SSL Inspection (Eigene PKI), oder wenn das nicht gewünscht ist, anhand des SSL Handshakes (bzw. per SNI) die Filterung durchführen, und bei Bedarf die Verbindung unterbrechen. (Geht aber ohne SSL Inspection bei TLS 1.3 nicht mehr)

    Selbiges kann man z.B auch mit dem DNS Traffic machen, damit sichergestellt ist, dass wirklich jeder im Netzwerk auch die von dir gewünschten DNS Server verwendet - und damit auch die Filter aktiv sind.



  • @hege Hallo danke für Info. Ich hab nun die Konfig. schon ein paar Tage im Betrieb, bin aber nicht so glücklich. Hättest Du ev. eine Anleitung für die Konfig.?


Log in to reply