ASA Como fazer


ASA é um dispositivo Cisco, o mesmo conceito teórico utilizado em roteador (porém alguns comandos são diferentes) é aplicado ao IOS de um ASA. Um detalhe interessande o ASA é que é possível digitar qualquer comado show a partir de qualquer modo de configuração

Porém, maos a obra:


Configurando uma Interface

Para configurar uma interface em um ASA e deixar ela funcionando é necessário 4 coisas

  • Configurar um Endereço IP
  • Configurar um Nome
  • Dar o devido security level (valor entre 0 a 100)
  • Ligar a interface (no shutdown)

Comandos

Configurando três interfaces, sendo elas:

  • Interface de acesso local (local)
  • Interface de público (DMZ)
  • Interface que está conectada a internet (interwebs)
Wendy(config)# interface Ethernet 1
Wendy(config-if)# ip address 172.20.0.1 255.255.240.0
Wendy(config-if)# nameif local
INFO: Security level for "local" set to 0 by default.
Wendy(config-if)# security-level 100
Wendy(config-if)# no shutdown
Wendy(config-if)# exit
---
Wendy(config)# interface Ethernet 2
Wendy(config-if)# ip address 172.20.240.1 255.255.240.0
Wendy(config-if)# nameif DMZ
INFO: Security level for "DMZ" set to 0 by default.
Wendy(config-if)# security-level 47
Wendy(config-if)# no shutdown
Wendy(config-if)# exit
----
Wendy(config)# interface Ethernet 3
Wendy(config-if)# ip address 97.192.32.19 255.255.255.240
Wendy(config-if)# nameif interwebs
INFO: Security level for "interwebs" set to 0 by default.
Wendy(config-if)# security-level 0 #desnecessário nesse caso
Wendy(config-if)# no shutdown

Consegue dizer qual tráfego será permitido se apenas essa configuração for setada?

Rotas

Há dois tipos de rotas em um ASA (basicamente), rotas estáticas e rotas dinâmicas

Roteamento Estático

Para configurar rotas em um ASA a lógica é a mesma de um roteador Cisco ou do Linux ou do Windows:

  • IP da rede
  • Máscara da Rede
  • Interface de Saída

Apenas o comando que é um pouco diferente

Wendy(config)# route interwebs 0.0.0.0 0.0.0.0 97.192.32.30

‘‘Lendo a linha de comando: '’

Roteie para a interface intewerbs todo o o tráfego que eu não tenho rotas (0.0.0.0 0.0.0.0) com ip de próximo salto 97.192.32.30

Saída:

Wendy# sh route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is 97.192.32.30 to network 0.0.0.0

C    172.20.240.0 255.255.240.0 is directly connected, DMZ
C    172.20.0.0 255.255.240.0 is directly connected, local
C    97.192.32.16 255.255.255.240 is directly connected, interwebs
S*   0.0.0.0 0.0.0.0 [1/0] via 97.192.32.30, interwebs
Wendy#

Leia sobre Roteamento Dinâmico caso tenha dúvidas: Aplicar roteamento dinâmico em uma ASA é semelhante a aplicação em Roteadores Cisco

  • Entrar no modo de configuração de roteamento do protocolo que você deseja
  • Declarar as redes
  • Deixar algumas interfaces passivas (para nao enviar atualização a toa)

OSPF

Wendy(config)# router ospf 13
Wendy(config-router)# network 172.20.0.0 255.255.240.0 area 0
Wendy(config-router)# network 172.20.240.0 255.255.240.0 area 0

Saída das Rotas

Wendy# show route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is 97.192.32.30 to network 0.0.0.0

C    172.20.240.0 255.255.240.0 is directly connected, DMZ
C    172.20.0.0 255.255.240.0 is directly connected, local
C    97.192.32.16 255.255.255.240 is directly connected, interwebs
O    10.0.0.0 255.255.255.0 [110/20] via 172.20.240.2, 0:01:39, DMZ
O    10.0.4.0 255.255.255.0 [110/20] via 172.20.240.2, 0:01:39, DMZ
S*   0.0.0.0 0.0.0.0 [1/0] via 97.192.32.30, interwebs
Wendy#

Saída do OSPF

Wendy# show ospf 13

 Routing Process "ospf 13" with ID 172.20.0.1 and Domain ID 0.0.0.13
 Supports only single TOS(TOS0) routes
 Does not support opaque LSA
 SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
 Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
 Number of external LSA 0. Checksum Sum 0x     0
 Number of opaque AS LSA 0. Checksum Sum 0x     0
 Number of DCbitless external and opaque AS LSA 0
 Number of DoNotAge external and opaque AS LSA 0
 Number of areas in this router is 1. 1 normal 0 stub 0 nssa
 External flood list length 0
    Area BACKBONE(0)
        Number of interfaces in this area is 2
        Area has no authentication
        SPF algorithm executed 3 times
        Area ranges are
        Number of LSA 3. Checksum Sum 0x  9357
        Number of opaque link LSA 0. Checksum Sum 0x     0
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

Wendy#

Lista de Controle de Acesso é utilizada pelo ASA para várias coisas entre elas se destacam

Nesse exemplos vamos criar uma access-list e configura-la a interface.

Wendy(config)# access-list ragazzid remark Lista de Acesso para a Rede Local
Wendy(config)# access-list ragazzid permit tcp any any eq 80
Wendy(config)# access-list ragazzid permit tcp any any eq 443
Wendy(config)# access-list ragazzid permit tcp any any eq 22
Wendy(config)# access-list ragazzid permit tcp any any eq 23
Wendy(config)# access-list ragazzid permit tcp any any eq 21
Wendy(config)# access-list ragazzid permit tcp any any eq 20
Wendy(config)# access-list ragazzid permit udp any host 4.2.2.2 eq 53
Wendy(config)# access-list ragazzid permit udp any host 4.8.8.8 eq 53
Wendy(config)# access-group ragazzid in interface local

Porém, como estamos falando de um ASA, podemos reduzir todas as linhas acima em 3 linhas (de ACL), pois o ASA suporta GRUPOS, seja de hosts ou de portas

Wendy(config)# object-group network Web-Dns-Servers
Wendy(config-network)# description Servidores DNS publicos
Wendy(config-network)# network-object host 4.2.2.2
Wendy(config-network)# network-object host 8.8.8.8
Wendy(config-network)# exit
Wendy(config)# object-group service WebPorts-tcp tcp
Wendy(config-service)# port-object eq 80
Wendy(config-service)# port-object eq 443
Wendy(config-service)# port-object eq 20
Wendy(config-service)# port-object eq 21
Wendy(config-service)# port-object eq 22
Wendy(config-service)# port-object eq 23
Wendy(config-service)# exit
Wendy(config)# object-group service DnsPorts-udp udp
Wendy(config-service)# port-object eq 53
Wendy(config-service)# exit
Wendy(config)# access-list ragazzid remark Lista de Acesso para a Rede Local
Wendy(config)# access-list ragazzid permit tcp any any object-group WebPorts-tcp
Wendy(config)# access-list ragazzid permit udp any object-group  Web-Dns-Servers object-group DnsPorts-udp

Pode dar um pouco mais de trabalho para fazer mas no final o resultado é ótimo pois as regras se tornam mais fáceis de serem modificadas (escalabilidade). Exemplo: Caso exista a necessidade permitir além das WebPorts-TCP como:

  • Porta 110 (pop3)
  • Porta 25 (smtp)
  • 8080

Sem os grupos precisariámos criar 3 novas linhas mas como usamos grupos precisamos apenas digiar as seguintes linhas:

Wendy(config)# object-group service WebPorts-tcp tcp
Wendy(config-service)# port-object eq 110
Wendy(config-service)# port-object eq 25
Wendy(config-service)# port-object eq 8080

Saídas (Grupos e ACL)

Wendy# show running-config object-group id Web-Dns-Servers
object-group network Web-Dns-Servers
 description: Servidores DNS publicos
 network-object host 4.2.2.2
 network-object host 8.8.8.8
Wendy# show running-config object-group id WebPorts-tcp
object-group service WebPorts-tcp tcp
 port-object eq www
 port-object eq https
 port-object eq ftp-data
 port-object eq ftp
 port-object eq ssh
 port-object eq telnet
 port-object eq pop3
 port-object eq smtp
 port-object eq 8080
Wendy# show running-config object-group id DnsPorts-udp
object-group service DnsPorts-udp udp
 port-object eq domain
Wendy# show running-config access-list
access-list ragazzid remark Lista de Acesso para a Rede Local
access-list ragazzid extended permit tcp any any object-group WebPorts-tcp
access-list ragazzid extended permit udp any object-group Web-Dns-Servers object-group DnsPorts-udp

Para ver tudo: show running-config

Para ver todos os grupos: show running-config object-group

Tradução de Endereço de Rede (Network Address Translate), para mais informações acesso o link NAT

Estático

O nat estático basicamente dá um ip público a um ip privado, um ou mais hosts da sua rede ficam visíveis para a internet. Para configurar o NAT estático é necessário ter interfaces configuradas, pelo menos duas, e ips disponíveis para a tradução.

Situação: Em uma determinada DMZ existe um servidor de ftp (FTP Server) que precisa ser acessado por qualquer pessoa que use a internet, esse servidor armazena arquivos de imagens. O IP do servidor é: 172.20.244.20 O IP público reservado do ISP para DMZ é 97.192.32.35

Fluxo do tráfego:

Inicia

Interface de Entrada: Internet | IP de origem: ANY   |   IP de destino: 97.192.32.35
Interface de Saída:   DMZ      | IP de origem ANY    |   IP de destino: 172.20.244.20

Retorna

Interface de Entrada: DMZ      | IP de origem: 172.20.244.20   |   IP de destino: any
Interface de Saída:   Internet | IP de origem: 97.192.32.35    |   IP de destino: any

Comandos:

static (DMZ,interwebs) 97.192.32.35 172.20.244.20 netmask 255.255.255.255

Também é possível configurar uma ACL ou usar o ip de uma interface (interface nameif)

Considerando que existam ACL para o tráfego:

  • Quando 172.20.244.20 inciar uma conexão e a interface de saída for interwebs o endereço de origem será trocado para 97.192.32.35
  • Quando qualquer pessoa da internet inciar uma conexão e a interface de entrada for interwebs com destino 97.192.32.35 o tráfego será encaminhado para DMZ e o ip de destino será alterado para 172.20.244.20.

ACLs que permitiram o tráfego:

Wendy(config)# access-list internet permit tcp any host 97.192.32.35 eq 20
Wendy(config)# access-list internet permit tcp any host 97.192.32.35 eq 21
Wendy(config)# access-group internet in interface interwebs

(Se você encontrou algum dúvida em utilizar apenas essas ACLs, por favor, revise o conceito de stateful

Dinâmico

Enquanto no NAT estático usa-se 1 ip público para um ip privado no NAT dinâmico é usado 1 (ou mais) ips público(s) para vários endereços privados (internos), é exatamente isso o que acontece quando usa-se se usa um roteador wireless (ou não) em casa.

Para configurar NAT Dinâmico em um ASA:

  • Ter o IP público livre (pode-se usar o ip da interface) => Global
  • Ter identificar os hosts que poderão ser traduzidos => Local

Nosso caso: Vamos liberar acesso a internet da interface local para a interwebs

Primeiro passo: Criar a lista Local, que terá permissão de ser traduzida

Wendy(config)# access-list localParaInterwebs permit tcp 172.20.0.0 255.255.255.240 any object-group WebPorts-tcp

Segundo Passo: Agora vamos criar o nosso global (usaremos o ip da internet)

Wendy(config)# global (interwebs) 47 interface
INFO: interwebs interface address added to PAT pool
Wendy(config)#

O número 47 é o ID no nat, o nosso local deve corresponder a esse número. Quando o ASA for verificar as entradas NAT ele irá verificar do menor número para o maior e relacionar a entrada Global com a entrada NAT

Terceiro passo: Configurar o NAT local

Wendy(config)# nat (interwebs) 47 access-list localParaInterwebs
Wendy(config)#

Fim (:

 Usei ip público e privado como exemplo, mas isso não é uma restrição, você pode traduzir 192.168.0.1 para 172.20.0.1 

Failover

Para configurar o Failover em um ASA é necessário ter pelo menos uma interface dedicada para o failover link, essa interface será usada para trocar informações de failover, assim como atualizar o ASA em standby.

Também é possível fazer statefull failover, nesse caso serão necessárias 2 interfaces; 1 para o failover e outra para a troca de inforações de estado (informações de sesoes) como:

  • Tabela ARP
  • Tabela de Tradução (nat table ou xlate)
  • ISAKMP and IPSec table
  • etc

Os seguintes comandos não serão replicados:

  • show
  • mode
  • firewall
  • failover lan unit

Como não estamos falando de um FWSM não precisamos nos preocupar com o modo do ASA, pois o padrão é Router & Single Mode.

Wendy# show firewall
Firewall mode: Router
Wendy# show mode
Security context mode: single
Wendy#

Caso você esteja usando multiplos contextos é necessário fazer isso no SYSTEM e mudar o modo para Router & Multiple mode

Wendy(config)# mode multiple
WARNING: This command will change the behavior of the device
WARNING: This command will initiate a Reboot
Proceed with change mode? [confirm]

Para mais informações:

http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_configuration_example09186a00807dac5f.shtml

http://www.cisco.com/en/US/docs/security/asa/asa72/configuration/guide/failover.html#wp1165145

Route Mode

Configurar todas as interfaces com endereços ips normalmente, porém um detalhe a mais será adicionado. É necessário especificar o ip do firewall em standby. Como um firewall será espelho do outro é necessário utilizar sepre dois (2) ips para cada interface:

Wendy(config)# interface Ethernet 1
Wendy(config-if)# ip address 172.20.0.1 255.255.240.0 standby 172.20.0.2
Wendy(config-if)# nameif local
INFO: Security level for "local" set to 0 by default.
Wendy(config-if)# security-level 100
Wendy(config-if)# no shutdown
Wendy(config-if)# exit
---
Wendy(config)# interface Ethernet 2
Wendy(config-if)# ip address 172.20.240.1 255.255.240.0 standby 172.20.240.2
Wendy(config-if)# nameif DMZ
INFO: Security level for "DMZ" set to 0 by default.
Wendy(config-if)# security-level 47
Wendy(config-if)# no shutdown
Wendy(config-if)# exit
----
Wendy(config)# interface Ethernet 3
Wendy(config-if)# ip address 97.192.32.19 255.255.255.240 standby 97.192.32.20
Wendy(config-if)# nameif interwebs
INFO: Security level for "interwebs" set to 0 by default.
Wendy(config-if)# security-level 0 #desnecessário nesse caso
Wendy(config-if)# no shutdown

Nesse caso vamos usar a Ethernet 4 como interface de failover

Wendy(config)# failover lan interface failoverRagazziD Ethernet4
INFO: Non-failover interface config is cleared on Ethernet4 and its sub-interfaces
Wendy(config)#

Agora vamos dar um endereço IP e ativar a interface failover.

Wendy(config)# failover interface ip failoverRagazziD 10.0.0.1 255.255.255.252 standby 10.0.0.2
Wendy(config)# interface Ethernet 4
Wendy(config-if)# no shutdown
Wendy(config-if)# exit
Wendy(config)#

Configurando esse ASA como active

Wendy(config)# failover lan unit primary
Wendy(config)# 

Ativando o failover

Wendy(config)# failover
Wendy(config)#

Resultado:

Wendy(config)# .

        No Response from Mate

Precisamos configurar o standby agora, portanto vamos iniciar a configuração no ASA Visinho


ASA> ena
Password:
ASA# conf t
ASA(config)# failover lan interface failoverRagazziD Ethernet4
INFO: Non-failover interface config is cleared on Ethernet4 and its sub-interfaces
ASA(config)#failover interface ip failoverRagazziD 10.0.0.1 255.255.255.252 standby 10.0.0.2
ASA(config)# interface Ethernet 4
ASA(config-if)# no shutdown
ASA(config)# failover lan unit secondary
ASA(config)# failover

Aguarde alguns segundos e:

ASA(config)# .

        Detected an Active mate
Beginning configuration replication from mate.
End configuration replication from mate.

Wendy(config)#

Como ver ser está funcionando?

Wendy(config)# show ip address
System IP Addresses:
Interface                Name                   IP address      Subnet mask     Method
Ethernet1                local                  172.20.0.1      255.255.240.0   CONFIG
Ethernet2                DMZ                    172.20.240.1    255.255.240.0   CONFIG
Ethernet3                interwebs              97.192.32.19    255.255.255.240 CONFIG
Ethernet4                failoverRagazziD       10.0.0.1        255.255.255.252 unset
Current IP Addresses:
Interface                Name                   IP address      Subnet mask     Method
Ethernet1                local                  172.20.0.2      255.255.240.0   CONFIG
Ethernet2                DMZ                    172.20.240.2    255.255.240.0   CONFIG
Ethernet3                interwebs              97.192.32.20    255.255.255.240 CONFIG
Ethernet4                failoverRagazziD       10.0.0.2        255.255.255.252 unset
Wendy(config)#

Caso você tente altera algo na caixa standby:

Wendy# conf t
**** WARNING ****
        Configuration Replication is NOT performed from Standby unit to Active unit.
        Configurations are no longer synchronized.
Wendy(config)#

Você irá conseguir alterar mas essa configuração não será replicado no Ativo

Verificar o funcionamento do Failover:

Wendy# show failover
Failover On
Cable status: N/A - LAN-based failover enabled
Failover unit Secondary
Failover LAN Interface: failoverRagazziD Ethernet4 (up)
Unit Poll frequency 15 seconds, holdtime 45 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 250 maximum
Version: Ours 8.2(2), Mate 8.2(2)
Last Failover at: 01:40:50 UTC Nov 27 2012
        This host: Secondary - Standby Ready
                Active time: 0 (sec)
                  Interface local (172.20.0.2): Link Down (Waiting)
                  Interface DMZ (172.20.240.2): Link Down (Waiting)
                  Interface interwebs (97.192.32.20): Link Down (Waiting)
        Other host: Primary - Active
                Active time: 450 (sec)
                  Interface local (172.20.0.1): Link Down (Waiting)
                  Interface DMZ (172.20.240.1): Link Down (Waiting)
                  Interface interwebs (97.192.32.19): Link Down (Waiting)

Stateful Failover Logical Update Statistics
        Link : Unconfigured.

Wendy# show failover
Failover On
Cable status: N/A - LAN-based failover enabled
Failover unit Secondary
Failover LAN Interface: failoverRagazziD Ethernet4 (up)
Unit Poll frequency 15 seconds, holdtime 45 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 250 maximum
Version: Ours 8.2(2), Mate 8.2(2)
Last Failover at: 01:40:50 UTC Nov 27 2012
        This host: Secondary - Standby Ready
                Active time: 0 (sec)
                  Interface local (172.20.0.2): Link Down (Waiting)
                  Interface DMZ (172.20.240.2): Link Down (Waiting)
                  Interface interwebs (97.192.32.20): Link Down (Waiting)
        Other host: Primary - Active
                Active time: 450 (sec)
                  Interface local (172.20.0.1): Link Down (Waiting)
                  Interface DMZ (172.20.240.1): Link Down (Waiting)
                  Interface interwebs (97.192.32.19): Link Down (Waiting)

Stateful Failover Logical Update Statistics
        Link : Unconfigured.

Wendy#

Transparent Mode

VPN

Transport

SSL VPN

Tunnel

Any Connect VPN

SSL VPN

Troubleshooting

Capture

Show Terminal

Category:Cisco Category:CCNA Secutity Category:Cisco Security Category:ASA