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.