acl url_regex на squid3 не працює, використовуючи регулярно випробуваний регулярний вираз


0

Мене попросили заблокувати доступ до Facebook з 8:00 до 15:00 майже для всіх користувачів, але вони все одно використовують альтернативні URL-адреси Facebook для доступу до соціальної мережі. Це споживає багато нашої низької пропускної здатності, і ми навіть не можемо працювати. Я вирішив створити регулярний вираз (регулярний вираз), щоб проаналізувати ці URL-адреси та заблокувати їх . Я не хочу блокувати всі URL-адреси у Facebook, а лише альтернативи. Альтернативна URL-адреса Facebook здебільшого містить слова prod чи iphone . Наступні - це альтернативні URL-адреси Facebook, зареєстровані нашим проксі-сервером:

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

Розроблений регулярний вираз: /((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)/

Я протестував цей регекс на https://regex101.com/ та https://www.regextester.com . Режекс відповідає :

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

І не відповідає :

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

Наразі це те, чого я хотів, альтернативні URL-адреси заблоковані та дозволені регулярні URL-адреси Facebook. Мій регекс виглядає добре, щоб його використовувати в кальмарах .

Наступний крок - змінити файл /etc/squid3/squid.conf, додавши новий acl, який вказує на файл, що містить регулярний вираз:

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

Коли я запускаю squid3 -k розбір для перевірки файлу конфігурації, я отримую помилки:

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"

Очевидно, що аналізатор squid3 мітить мій acl як неправильний , але я вже тестував в Інтернеті, і це було добре використовувати. Крім того, він говорить, що acl порожній. Що це означає? Acl був оголошений з назвою facebook . Я дуже збентежений у цьому.

Відповіді:


0

Проблема в регексе. Змінив регулярний вираз із цим: \b(iphone|prod)\b.*\.facebook\.comі тепер кальмар зупиняє URL-адреси. Після запуску squid3 -k parseкальмарів каже, що проблем немає, і якщо користувач намагається отримати доступ до альтернативного посилання на Facebook, наприклад (test): test.prod.facebook.com, проксі відмовляється від з'єднання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.