====== Webfilter auf pfSense einrichten ====== ^ Version ^ Status ^ Datum ^ Author ^ URL ^ | 0.1| Erster Entwurf| 27.04.2023| M.I.| | | 0.2| Ergänzungen| 04.05.2023| S.E.| | | 1.0| Review und Freigabe| TT.MM.JJJJ| Vorname Nachname| | ===== 1. Kurzfassung ===== Hier wird beschrieben, wie wir einen Webfilter mit pfBlockerNG erstellt haben, um gewisse Webseiten zu blockieren. Gearbeitet wurde sowohl mit fertigen Blocklisten als auch mit einzelnen Domains, IP-Adressen und Vlan-übergreifenden Einstellungen. ===== 2. webfilter mit pfblockerng erstellen ===== ==== Schritt 1 Installation ==== Pfsense normal installieren und einrichten. //pkg update nicht vergessen!// Danach WAN und LAN konfigurieren und alles anschliessen. Sobald die pfSense Firewall betriebsbereit ist, kann mit der Installation von pfblocker angefangen werden dazu gehen sie unter System package Manager und dann unter availebale packages. {{:intern:dokumentationen:pfblockerng_download_1.png?400|}} Dann suchen sie nach pfblocker und laden sich die -dev Version runter das ist ganz wichtig {{:intern:dokumentationen:pfblockerng_download_2.png?400|}} Wenn sie dies haben, Könen sie zu schritt zwei weiter ==== Schritt 2 einrichten ==== //achtung, es hat einen Wizard// Um das Programm pfblocker einzurichten, gehen Sie auf den Tab Firewall und dann auf pfblockerng. Dort in dem General Tab müssen Sie pfblockerng enable drücken das ist ein Kästchen welches danach blau mit einem weissen haken erscheinen sollte. {{:intern:dokumentationen:pfblcokerng_einrichten_1.png?400|}} Danach gehen Sie auf update setzen die Force Option auf update und klicken auf run {{:intern:dokumentationen:pfblockerng_einrichten_2.png?400|}} Dies dauert eine Weile hängt aber von Ihrem System ab mit welcher Geschwindigkeit es lädt. Haben Sie das update abgeschlossen gehen Sie auf ip hier richten Sie unter Place holder ip eine ip ein an die alle Anfragen, die geblockt werden sollen, gesendet werden {{:intern:dokumentationen:pfblockerng_einrichten_3.png?400|}} Und dann richten Sie noch die interface Rules ein, welche Sie von diesem Bild übernehmen können {{:intern:dokumentationen:pfblockerng_einrichten_4.png?400|}} Danach machen Sie nochmals ein Update und die Speicherung nicht vergessen. ==== Schritt 3 blockieren der Webseiten ==== In diesem schritt blockieren wir die Webseiten sowohl mit einer Liste als auch einzeln. Als erstes gehen sie unter ip auf ipv4 {{:intern:dokumentationen:pfblockerng_webseiten_1.png?400|}} Hier legen Sie eine neue Tabelle an, welche Sie benennen können wie Sie wollen aber am besten ist ein Name welcher einfach und schnell darauf hinweist was geblockt wird von dieser Tabelle, ich habe zum Testen hier den Namen Test gegeben. Sind Sie jetzt auf dieser Tabelle, dann Könen sie unter ipsource Definition einen Link zu einer txt Datei einfügen, am besten eignet sich dazu eine raw txt Datei von GitHub, aber es gehen auch selfhosted Dateien. In dieser txt wird dann definiert was alles geblockt wird, das sieht dann etwa so aus: {{:intern:dokumentationen:pfblockerng_webseiten_2.png?400|}} Diese Liste blockt porno Seiten aber die listen Können jede ip Adresse oder Domäne beinhalten, die es gibt und die werden dann auch blockiert. Um einzelne Webseiten zu blockieren, müssen Sie einfach nur unter ipv4 custom_list die Domäne oder die ip Adresse eingeben, wenn Sie die Domäne eingeben wollen müssen Sie vorher das Kästchen enable Domain/as bestätigen. {{:intern:dokumentationen:pfblockerng_webseiten_3.png?400|}} Jetzt müssen Sie nur noch auf save drücken und dann unter update reload auswählen und all darunter. {{:intern:dokumentationen:pfblockerng_webseiten_4.png?400|}} Dann müssen Sie das nur noch durch Laufen lassen, dann sind Sie fertig können das jetzt Ausprobieren, indem Sie eine http:// Adresse aus der Liste nehmen und diese aufrufen, das sieht dann so aus: {{:intern:dokumentationen:pfblockerng_webseiten_5.png?400|}} Bei https:// Adressen kommt diese Seite nicht, dafür die Browser Warnung für unsichere Webseiten, dort können sie auf Erweitert und dort sind dann keine Optionen, um weiter auf diese Seite zu kommen. Wichtig ist, dass dies nur mit ipv4 Adressen funktioniert, für ipv6 müssen Sie das ganze aber gleich einrichten, nur unter dem Tab ipv6 und dies funktioniert auch nur wenn die Firewall als ihr dns/Gateway konfiguriert ist. ==== Schritt 4 überprüfen des DNS ==== Damit das Ganze jetzt auch auf einer Firewall welche mehrere vlans oder andere Arten wie vpn hat funktioniert, muss der interne DNS Server auch im DHCP eingetragen werden, Damit dies automatisch funktioniert. Ansonsten müsste jeder User seinen DNS selber eintragen, wenn er nicht im lan netz drin ist. Die DHCP-Einstellungen für jedes vlan müssten so aus sehen {{:intern:dokumentationen:pfblockerng_dns_pruefen_1.png?400|}} Einmal unsere Firewall als DNS 1 und dann ein externer Google Server als DNS 2 um unbekannte Seiten aufzurufen Wichtig ist noch, dass auch wirklich alle vlans diesen Blocker bekommen eine any Rule hnzuzufügen, bei der das vlan auf die externe Placeholder ip zugreifen kann, ich habe dafür eine any to any Rule gemacht, aber es würde auch eine normale a to b Rule reichen, wenn man das noch weiter eingrenzen möchte. {{:intern:dokumentationen:pfblockerng_dns_pruefen_2.png?400|}} Die in dem Bild gezeigte Rule kommt automatisch, kann aber je nach Bedürfnissen angepasst werden. Und der dritte Schritt um diesen Blocker auf allen vlans zu aktivieren, ist es eine Floating Rule einzufügen, dies kann manuell oder automatisch gemacht werden. Automatisch geht es über den Tab pfblockerng/ip, dann muss nur ein Häkchen gesetzt werden. Manuell können wir auch diese Floating Rule selber einfügen. {{:intern:dokumentationen:pfblockerng_dns_pruefen_3.png?400|}} {{:intern:dokumentationen:pfblockerng_dns_pruefen_4.png?400|}} Nachdem alles wie beschrieben eingerichtet ist, wird es auch für alle vlans eingerichtet. ==== Netzplan der Testumgebung ==== {{drawio>intern:dokumentationen:pfsense-webfilter}} ===== 3. Quellenverzeichnis ===== Screenshots aufgenommen von Max Ivens Wissensbeschaffung durch Ausprobieren und folgendes Video: https://www.youtube.com/watch?v=7_yI1FEw_j0&ab_channel=OpenSchoolSolutions Gezeigtes txt File: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts