Assim como os routers o ASA e o PIX a partir da versão de OS 7.2 são capazes de realizar filtros de URL com base em listas criadas por seus administradores. No caso do PIX/ASA esta função é realizada pela criação de expressões regulares (regex) associada a feature de Modular Policy Framework (MPF).
Mas atenção, este modelo de configuração não realiza o bloqueio de todo tipo de aplicação, para realizar o bloqueio efetivo de arquivos, por exemplo, se faz necessário a inserção de um appliance dedicado como o Ironport ou um módulo CSC no caso do ASA. O bloqueio de URLs em conexões HTTPS também não é possível.
Limitações a parte, vamos ao que interessa, mãos à massa :-). Como exemplo vamos bloquear algumas extensões de arquivos e algumas URLs.
1º Passo: Criação das expressões regulares
Aqui criamos duas linhas de expressões regulares, listando extensões EXE, COM, BAT, PIF, VBS e WSH.
regex urllist1 ".*\.([Ee][Xx][Ee]|[Cc][Oo][Mm]|[Bb][Aa][Tt]) HTTP/1.[01]"
regex urllist2 ".*\.([Pp][Ii][Ff]|[Vv][Bb][Ss]|[Ww][Ss][Hh]) HTTP/1.[01]"
Para o bloqueio de URLs o processo é o mesmo.
regex domainlist1 "\.playboy\.com\.br"
regex domainlist2 "\.youtube\.com"
Crie expressões para captura do application header e o tipo de conteúdo.
regex contenttype "Content-Type"
regex applicationheader "application/.*"
2º Passo: Determine o sentido do tráfego onde a inspeção será realizada
Para este processo a criação de ACLs se faz necessária.
access-list inside_mpc extended permit tcp any any eq www
3º Passo: Agrupe as expressões regulares
Afim de agrupar as expressões regulares e o access-list e até mesmo para conseguir inseri-las em um policy-map crie class-maps para as mesmas.
class-map type regex match-any DomainBlockList
match regex domainlist1
match regex domainlist2
class-map type inspect http match-all BlockDomainsClass
match request header host regex class DomainBlockList
class-map type regex match-any URLBlockList
match regex urllist1
match regex urllist2
class-map type inspect http match-all AppHeaderClass
match response header regex contenttype regex applicationheader
class-map httptraffic
match access-list inside_mpc
class-map type inspect http match-all BlockURLsClass
match request uri regex class URLBlockList
4º Passo: Crie um policy-map
Para atribuir ações a cada um dos class-maps criados crie um policy-map.
policy-map type inspect http http_inspection_policy
parameters
protocol-violation action drop-connection
class AppHeaderClass
drop-connection log
match request method connect
drop-connection log
class BlockDomainsClass
reset log
class BlockURLsClass
reset log
Atribuia este policy-map dentro de um outro policy-map maior, que efetivamente será aplicado à interface.
policy-map inside-policy
class httptraffic
inspect http http_inspection_policy
5º Passo: Aplique a política
Aplique o policy-map a interface por onde o tráfego se origina.
service-policy inside-policy interface inside
A partir deste momento o PIX/ASA passa a filtrar as URLs cadastradas, neste caso realizando um reset para aquelas que derem match a política, para debugar os acessos o comando "debug http" pode ser usado.
Para o bloqueio de novas URLs, basta criar expressões regulares como exemplificado no passo 1 e cadastrar estas dentro do class-map específico como exibido no passo 2, sem precisar alterar qualquer outra configuração. Espero ter ajudado, até a próxima :-).
Olá Leandro, muito com esse post.
Em relação a esse bloqueio, está ok, testado e aprovado.
A pergunta.Existe alguma forma de criar exceção?-Ou seja, alguns IPs tenham acesso completo e a regra funcione para os demais endereços?
Oi caro Andre Ortega.
Antes permite me lhe disculpar pelo tempo da minha resposta em funçao da sua… talvez devido ao fuso horário daque onde estou.
Meu amigo, meus profundos agradecimentos pela partilha de informaçao que vc me prestou. agradeço lhe do fundo do coraçao, sendo pela primeira vez que posto neste site e logo logo tenho uma resposta a tempo e hora.
Vou ler com calma todos os artigos dos Links que vc me mandou, pois o meu entendimento do ASA ainda é um pouco lento, mas estou lutando duro para entender bem o ASA.
Tao logo eu tenha uma lido os seus links, eu volto ja ja com algumas questoês.
Mas diga pra ja uma coisa relativamente ao URL FILTERING NO ASA.
Na configuraçao…devo eu colocar esta linha de comando exactamente assim conforme seu posta abaixo:
Aqui criamos duas linhas de expressões regulares, listando extensões EXE, COM, BAT, PIF, VBS e WSH.
regex urllist1 “.*\.([Ee][Xx][Ee]|[Cc][Oo][Mm]|[Bb][Aa][Tt]) HTTP/1.[01]”
regex urllist2 “.*\.([Pp][Ii][Ff]|[Vv][Bb][Ss]|[Ww][Ss][Hh]) HTTP/1.[01]”
Para o bloqueio de URLs o processo é o mesmo.
regex domainlist1 “\.playboy\.com\.br”
regex domainlist2 “\.youtube\.com”
???
Saudaçoes
Big T
Big T, se o seu desejo é bloquear os arquivos deste tipo (EXE, COM, BAT, PIF, VBS e WSH) e esses sites (playboy.com e youtube.com), então sim. Você vai manter esta configuração.
OLA André Ortega,
Uma veis mais obrigado
tal como ja lhe tivera dito, eu ainda sou pioneiro nestas andanças do ASA e esta config me parece um pouco profunda.
Relativamente ao Bloqueio de Site,qual outra forma vc me aconselha??
De modos a nao subcarregar muito o ASA, ktal do SSM MODULE?? Ktal o IPS? vc me recomenda? qual e quais sao as melhores praticas relativamente a isto em funçao da questao do bloqueio de site e URL??
Vc me recomenda uma outra applicaçao que faça esta filtragem?
Ou tens como me passar ou ajudar ai com uma dica mais facil?
Cara peço disculpa a minha ignorancia em razao da matéria, xto a comessando
Big T