quarta-feira, 9 de março de 2011

Usando Expressões Regulares no SquidGuard

Nunca será possível adicionar todas as paginas que deseja bloquear pelos arquivos domains e url.  Para alcançar um nível maior de segurança podemos usar o expressionlists.
Em uma expressionlist podemos entrar com palavras que provavelmente não se encontram em partes nos domains e urls. Cada domains e url  serão comparados com as entradas encontradas em expressionlist.

Atenção: Somente use o expressionlist se você tem certeza que não se enquadram em sites inocentes. Além disso o uso dessas listas podem impactar na performance do sistema.

  1. Adicionando listas de expressões na configuração.
    Listas de Expressões são incluídas na tag dest. O exemplo abaixo mostra como fica o arquivo de configuração do squidGuad:

    Usando a lista de expressões para bloquear porn

    dest porn {
          domainlist        porn/domains
          urllist                porn/urls
          expressionlist   porn/expressions
    }
    Podemos adicionar a lista de expressões para cada destino definido (lembre-se: Performance!). SquidGuard procura pelo arquivo de expressões definido em dbhome.
  2. Sintaxe das listas de expressões
    O formato do arquivo expressionlist são linhas com expressões regulares:

    .

    Corresponde a qualquer caracter (use “\.” para corresponder a um “.”)

    [abc] Corresponde a um dos caracteres (“[abc]” corresponde a um dos caracteres “a” ou “b” ou “c”).
    [c-g] Corresponde a um dos caracteres no range (“[c-g]” corresponde a um dos caracteres “c” ou “d” ou “e” ou “f” ou “g”.
    ”[a-z0-9]” corresponde a qualquer letra ou digito.
    ”[-/.:?]” corresponde a um único “-“ ou “/” ou “.” ou “:” ou “?”).
    ? Nenhum ou um dos anteriores (“words?” corresponderá “word” e “words”
    ”[abc]?” corresponderá há “a” ou “b” ou “c” ou nada (“”))
    * Nenhum ou mais das anteriores (“words*” corresponderá há “word”, “words” e “wordssssss”. “.*” correspondera a qualquer coisa incluindo nada)
    + Um ou mais das anteriores (“xxx+” correspondera a uma sequencia de 3 ou mais “x”).
    (expr1|expr2) Uma das expressões. Uma expressão similar (“(foo|bar)” correspondera há “foo” ou “bar”.
    ”(foo|bar)?” correspondera a “foo” ou “bar” ou nada (“”)).
    $ Final da linha (“(foo|bar)$” correspondera a “foo” ou “bar” somente no final da linha.
    \x Desativar o significado especial de x, where x é caráter especial em regex “.?*+()^$[]{}\” (“\.” correspondera a um unico “.”, “\\” a um unico “\”, etc…)
     

As entradas para as listas de expressões são cleartext. Assim, um começo para bloquear um possivel material sexual, corresponde à expressão poderia parecer:

(^|[-\?+=/_])(bondage|boobs?|busty?|hardcore|porno?|sex|xxx+)([-\?+=/_]|$)

 

até mais.

Nenhum comentário:

Postar um comentário