Listas de acesso ASA e filtragem de saída

1

Estou tentando aprender a usar um firewall Cisco ASA e realmente não sei o que estou fazendo. Estou tentando configurar alguns filtros de saída, com o objetivo de permitir apenas a quantidade mínima de tráfego fora da rede, mesmo se originada de dentro da interface. Em outras palavras, estou tentando configurar dmz_in e inside_in ACLs como se a interface interna não fosse muito confiável.

Ainda não compreendi todos os conceitos, por isso tenho alguns problemas.

Suponha que estamos trabalhando com três interfaces: dentro, fora e DMZ.

Digamos que eu tenha um servidor (X.Y.Z.1) que responda ao PING, HTTP, SSH, FTP, MySQL e SMTP. Minha ACL se parece com algo assim:

access-list outside_in extended permit icmp any host X.Y.Z.1 echo-reply
access-list outside_in extended permit tcp any host X.Y.Z.1 eq www
access-list outside_in extended permit tcp any host X.Y.Z.1 eq ssh
access-list outside_in extended permit tcp any host X.Y.Z.1 eq ftp
access-list outside_in extended permit tcp any host X.Y.Z.1 eq ftp-data established
access-list outside_in extended permit tcp any host X.Y.Z.1 eq 3306
access-list outside_in extended permit tcp any host X.Y.Z.1 eq smtp

e eu aplico assim:

access-group outside_in in interface outside

Minha pergunta é: o que posso fazer para filtrar a saída? Quero permitir apenas a quantidade mínima de tráfego. Eu apenas "inverto" as regras (ou seja, a regra do SMTP torna-se

access-list inside_out extended permit tcp host X.Y.Z.1 any eq smtp

) e chamá-lo um dia, ou eu ainda posso abater minhas opções? O que posso bloquear com segurança?

Além disso, ao fazer a filtragem de egresso, é suficiente aplicar regras "invertidas" à interface externa, ou devo também investigar a criação de dmz_in e inside_in acls?

Eu já ouvi o termo "filtragem de egresso" sendo usado muito, mas eu realmente não sei o que estou fazendo. Qualquer indicação para bons recursos e leitura também seria útil, a maioria dos que eu achei presumo que eu sei muito mais do que eu.

    
por Nate 07.03.2011 / 16:44

1 resposta

1

Uma pequena visão geral, antes de chegar aos detalhes. Cada interface possui duas ACLs; um ingresso ACL (nomeado interface_in) e um egresso ACL (nomeado interface_out). O truque com a nomenclatura é evitar pensar nisso em termos de "dentro" e "fora"; em vez disso, pense nisso em termos de "tráfego vindo (dentro / fora) dessa interface".

Isso dá muita flexibilidade em termos de onde você aplica uma determinada regra, mas também pode ser potencialmente uma enorme fonte de complexidade desnecessária.

Então, para o seu exemplo. Se você deseja bloquear conexões na porta 25 (SMTP) originadas de um host interno e são destinadas a um host da Internet, você tem duas opções:

access-list inside_in extended deny tcp host X.Y.Z.1 any eq smtp

e

access-list outside_out extended deny tcp host X.Y.Z.1 any eq smtp

Se você tiver apenas as duas interfaces, esses comandos terão um efeito idêntico. Quando isso fica complexo é quando você tem mais interfaces; digamos, por exemplo, uma interface DMZ.

O primeiro comando (no inside_in ACL) só impedirá o tráfego quando estiver dentro - > fora, mas não dmz- > fora. O segundo comando (no outside_out ACL) impediria ambos.

Então, essas são as opções para onde aplicar as regras de saída. Minha sugestão para sua própria sanidade é apenas utilizar uma das duas opções (e duplicar algumas regras se for necessário); você estará atirando no próprio pé se forçar a verificar cinco ACLs diferentes para solucionar um fluxo de tráfego.

    
por 07.03.2011 / 17:19