acl url_regex no squid3 não está funcionando usando uma expressão regular testada on-line

0

Pediram-me para bloquear o acesso ao Facebook das 8:00 às 15:00 para quase todos os usuários, mas eles estão usando URLs alternativos do Facebook para acessar a rede social de qualquer maneira. Isso está consumindo muito da nossa baixa largura de banda e não podemos nem trabalhar. Decidi criar uma expressão regular (regex) para analisar essas URLs e bloqueá-las . Eu não quero bloquear todos os URLs do Facebook, mas apenas alternativas. Um URL alternativo do Facebook contém principalmente as palavras prod ou iphone . Os próximos são URLs alternativos do Facebook registrados por nosso servidor proxy:

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

O regex projetado: /((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)/

Testei este regex no link e no link . A regex é correspondente para:

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

E não corresponde a:

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

Até agora, isso é o que eu queria, URLs alternativos bloqueados e URLs regulares do Facebook permitidos. Meu regex parece ser bom para ser usado no squid .

O próximo passo é modificar o arquivo /etc/squid3/squid.conf adicionando uma nova acl apontando o arquivo que contém o regex:

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

Quando executo o squid3 -k parse para verificar o arquivo de configuração estou recebendo os erros:

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"

Obviamente, o analisador squid3 está marcando meu acl como errado , mas eu já testei on-line e foi bom usá-lo. Também diz que o acl está vazio. O que isto significa? O acl foi declarado com o nome facebook . Estou muito confuso com isso.

    
por Ophion 22.09.2017 / 18:50

1 resposta

0

O problema está na regex. Alterou a regex com esta: \b(iphone|prod)\b.*\.facebook\.com e agora o squid está parando as URLs. Depois de executar squid3 -k parse squid diz que não há problema, e se um usuário está tentando acessar um link alternativo do Facebook, como (por exemplo): test.prod.facebook.com, o proxy recusa a conexão.

    
por 26.09.2017 / 21:37