OPNsense Forum

International Forums => German - Deutsch => Topic started by: Reiter der OPNsense on August 29, 2016, 01:03:57 pm

Title: Webfilterprofile
Post by: Reiter der OPNsense on August 29, 2016, 01:03:57 pm
Hallo allerseits,
ich versuche gerade die "Kindersicherung" der FRITZ!Box auf der OPNSense umzusetzen.

Das Ziel sieht so aus:
1. Geräte der Kategorie "Kleinkinder" dürfen nur zu bestimmten Zeiten auf Webseiten gemäss Whitelist (Webfilter) zugreifen.
2. Geräte der Kategorie "Teens" dürfen nur zu bestimmten Zeiten auf Webseiten mit Einschränkungen (Webfilter) zugreifen.
3. Geräte der Kategorie "Erwachsene" dürfen zu jederzeit unbeschränkt ins Netz. Wobei eine minimale Webfilterung wie z. B. Malware und Werbung natürlich ganz praktisch wäre.

Ich kann den Geräten per DHCP eine fixe IP-Adresse zuweisen, diese in Aliasse zusammenfassen und Zeitpläne verwenden. Soweit so gut, aber ich scheitere beim filtern. Ich bringe nur zwei Kategorien hin: 1. Proxy mit den festgelegten ACLs und 2. Kein Proxy verwenden. Übersehe ich etwas?
Title: Re: Webfilterprofile
Post by: fabian on August 29, 2016, 04:09:11 pm
Über das GUI geht das nicht, es ist aber möglich,
1. eine eigene Konfigurationsdatei in die Proxykonfiguration einzubinden, in der das umgesetzt wird.
2. eine derartige Filterung ausgelagert in einem eigenen Dienst zu implementieren ( -> ICAP).

In deinem Fall ist 1 die einfachere Lösung.

Mit freundlichen Grüßen

Fabian
Title: Re: Webfilterprofile
Post by: Reiter der OPNsense on August 29, 2016, 05:28:20 pm
Hallo Fabian

>> eine eigene Konfigurationsdatei in die Proxykonfiguration einzubinden
Hiermit?
/usr/local/opnsense/service/templates/OPNsense/Proxy/squid.user.pre_auth.conf
/usr/local/opnsense/service/templates/OPNsense/Proxy/squid.user.post_auth.conf
gefunden in: https://github.com/opnsense/core/issues/802 (https://github.com/opnsense/core/issues/802)

Und dann muss ich mich wohl hiermit beschäftigen:
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid (http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid)

LG, Stefan
Title: Re: Webfilterprofile
Post by: fabian on August 29, 2016, 06:06:52 pm
Du wirst in erster linie das hier brauchen: http://www.squid-cache.org/Doc/config/acl/
Danach musst du damit Regeln erstellen, die entweder den Zugriff erlauben oder verweigern: http://www.squid-cache.org/Doc/config/http_access/
Title: Re: Webfilterprofile
Post by: Reiter der OPNsense on August 30, 2016, 08:56:05 am
OK, soweit begriffen, aber ich scheitere an der manuellen Bearbeitung der squid.conf.

squid.conf erweitern via squid.user.pre_auth.conf und squid.user.post_auth.conf funktioniert, aber beispielsweise die ACL-Einstllungen greifen nicht, vermutlich weil sie zu weit unten in der squid.conf eingepflanzt werden.

Und wenn man die squid.conf direkt bearbeitet fährt der Dienst nach einem Dienstneustart nicht mehr hoch. Und ein Reboot oder Aus-/Einschalten des Proxy via GUI schreibt die squid.conf neu. Dem Eigentümer die Schreibrechte an der Datei wegnehmen verhindert das nicht.

Hilfe?
Title: Re: Webfilterprofile
Post by: fabian on August 30, 2016, 11:35:03 am
Die Datei "squid.user.pre_auth.conf" kommt vor den generierten Regeln: https://github.com/opnsense/core/blob/master/src/opnsense/service/templates/OPNsense/Proxy/squid.conf#L273
Title: Re: Webfilterprofile
Post by: fabian on August 30, 2016, 11:40:26 am
Nur zur Information: Das selbe Thema wird auch hier gerade diskutiert: https://forum.opnsense.org/index.php?topic=3242.msg12115 (https://forum.opnsense.org/index.php?topic=3242.msg12115)
Title: Re: Webfilterprofile
Post by: Reiter der OPNsense on August 30, 2016, 01:00:52 pm
Wenn ich ACLs per "squid.user.pre_auth.conf" inkludiere, dann sieht das nicht funktionierende Ergebnis so aus (stark zusammengefasst):

Code: [Select]
# Automatic generated configuration for Squid.
# Do not edit this file manually.

# Setup listen configuration

acl ftp proto FTP
http_access allow ftp

# Setup ftp proxy

# Rules allowing access from your local networks.
# Generated list of (internal) IP networks from where browsing
# should be allowed. (Allow interface subnets).

# Default allow for local-link and private networks

# ACL lists

# ACL - Remote fetched Blacklist (remoteblacklist)

# ACL - Block browser/user-agent - User defined (browser)

# ACL - SSL ports, default are configured in config.xml
# Configured SSL ports (if defaults are not listed, then they have been removed from the configuration!):

# Default Safe ports are now defined in config.xml
# Configured Safe ports (if defaults are not listed, then they have been removed from the configuration!):
# ACL - Safe_ports

# ICAP SETTINGS
# disable icap
icap_enable off

# Authentication Settings

# included via "squid.user.pre_auth.conf"
# My ACL Whitelist
acl whiteList url_regex duolingo\.com
acl whiteList url_regex cloudfront\.net
acl whiteList url_regex connectivitycheck\.android\.com

# My ACL Blacklist
acl blackList url_regex \.*
# /included via "squid.user.pre_auth.conf"

# Deny requests to certain unsafe ports
...

Wieso greifen die inkludierten Regeln nicht? Müssten die vor den "ICAP SETTINGS" stehen?

Quote
Das selbe Thema wird auch hier gerade diskutiert: https://forum.opnsense.org/index.php?topic=3242.msg12115

Ja, danke, hab ich gesehen. Das selbe auch hier: https://github.com/opnsense/core/issues/617 (https://github.com/opnsense/core/issues/617)
Aber dieser Feature-Request geht glaub ich weit über mein Ziel hinaus? Ich will nicht, dass sich die Familienmitglieder via Captive Portal authentifizieren müssen (oder ist eine automatische, MAC- oder IP-basierte Authentifizierung oder so etwas ähnliches möglich?). Ein (ev. transparenter) Proxy mit mehr Einstellungsmöglichkeiten würde mir glaub ich schon reichen.
Title: Re: Webfilterprofile
Post by: fabian on August 30, 2016, 01:22:53 pm
Quote
Wieso greifen die inkludierten Regeln nicht?
Ohne http_access tut eine acl in deinem Fall nichts.

Quote
Müssten die vor den "ICAP SETTINGS" stehen?
nein
Title: Re: Webfilterprofile
Post by: Reiter der OPNsense on August 30, 2016, 03:05:56 pm
Stimmt, da fehlte noch:

Code: [Select]
http_access allow whiteList
http_access deny blackList

Das muss mir beim ersten Dateivergleich durch die Lappen gerutscht sein.  :-[

OK, alles klar soweit auf der OPNsense-Seite, dann kämpfe ich mich jetzt durch:
http://www.squid-cache.org/Doc/config/acl/ (http://www.squid-cache.org/Doc/config/acl/)
http://www.squid-cache.org/Doc/config/http_access/ (http://www.squid-cache.org/Doc/config/http_access/)
und hoffe, dass ich damit mein Ziel umsetzen kann.

Vielen Dank für Deine flotte Hilfe, Fabian.

LG, Stefan