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.