acl url_regex für squid3 funktioniert nicht mit einem online getesteten regulären Ausdruck

1150
Ophion

Ich wurde gebeten, den Zugriff auf Facebook für fast alle Benutzer von 8.00 bis 15.00 Uhr zu sperren, aber sie verwenden ohnehin alternative Facebook-URLs, um auf das soziale Netzwerk zuzugreifen. Dies verbraucht viel von unserer geringen Bandbreite und wir können nicht einmal arbeiten. Ich entschied mich für einen regulären Ausdruck (Regex), um diese URLs zu analysieren und zu blockieren . Ich möchte nicht alle Facebook-URLs blockieren, sondern nur Alternativen. Eine alternative Facebook-URL enthält meistens die Wörter prod oder iphone . Die nächsten sind alternative Facebook-URLs, die von unserem Proxy-Server registriert wurden:

m.iphone.touch.prod.facebook.com m.iphone.haid.prod.facebook.com:443 m.ct.prod.facebook.com m.vi-vn.prod.facebook.com 

Der entworfene Regex: /((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)/

Ich habe diese Regex auf https://regex101.com/ und https://www.regextester.com getestet . Die Regex passt zu:

m.iphone.touch.prod.facebook.com m.iphone.haid.prod.facebook.com:443 m.ct.prod.facebook.com m.vi-vn.prod.facebook.com 

Und passt nicht zu:

www.facebook.com m.facebook.com mqtt.facebook.com (for purple-facebook) graph.facebook.com connect.facebook.com 3-edge-chat.facebook.com 

Bisher wollte ich dies, alternative URLs blockieren und reguläre Facebook-URLs erlauben. Mein Regex sieht gut aus, um in Tintenfisch verwendet zu werden .

Der nächste Schritt besteht darin, die Datei /etc/squid3/squid.conf zu ändern, indem Sie ein neues ACL hinzufügen, das auf die Datei verweist, die die Regex enthält:

acl facebook dstdom_regex "/etc/squid3/acl/facebook" //The file contains the regex http_access deny pass facebook 

Wenn ich squid3 -k parse zur Überprüfung der Konfigurationsdatei starte, erhalte ich die Fehler:

2017/09/22 11:12:26| Processing: acl facebook dstdom_regex "/etc/squid3/acl/facebook" 2017/09/22 11:12:26| squid.conf line 78: acl facebook dstdom_regex "/etc/squid3/acl/facebook" 2017/09/22 11:12:26| aclParseRegexList: Invalid regular expression '((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)': Invalid preceding regular expression 2017/09/22 12:39:33| Warning: empty ACL: acl facebook dstdom_regex "/etc/squid3/acl/facebook" 

Offensichtlich markiert der Squid3-Parser mein acl als falsch, aber ich habe bereits online getestet und es war gut zu benutzen. Es heißt auch, dass die ACL leer ist. Was bedeutet das? Die ACL wurde mit dem Namen Facebook erklärt . Ich bin darüber sehr verwirrt.

0

1 Antwort auf die Frage

0
Ophion

Das Problem liegt in der Regex. Änderte die Regex mit dieser: \b(iphone|prod)\b.*\.facebook\.comund jetzt stoppt Squid die URLs. Nach dem Ausführen von squid3 -k parseSquid gibt es kein Problem. Wenn ein Benutzer versucht, auf einen alternativen Facebook-Link zuzugreifen, wie beispielsweise (test.prod.facebook.com), lehnt der Proxy die Verbindung ab.