Der Cisco PIX/ASA 7.2 Packet-Tracer

Die PIX/ASA-Version 7.2(1) ist jetzt gut acht Monate verfügbar, vor über zwei Monaten kam die Aktualisierung auf die Version 7.2(2), bei der jede Menge Bugs ausgebaut wurden (ok, mindestens ein Bug in der Verarbeitung der VPN-Filter ist dazugekommen). Ist es da nicht an der Zeit über ein Update nachzudenken, um in den Genuss des Packet-Tracers zu kommen? Dies ist eine der besten Erweiterungen, auf die viele schon lange gewartet haben.

Der Packet-Tracer gibt Antwort auf die Frage “Kann Host A mit Protokoll B auf Host C zugreifen?”. Früher mußte man sich entweder sehr sicher sein es richtig konfiguriert zu haben, oder aber man mußte es einfach testen. Heute kann man über den Packet-Tracer erkennen, ob die PIX/ASA ein bestimmtes Paket durchgelassen hätte.

Der Packet-Tracer kann vom CLI aus, oder im ASDM genutzt werden. In letzterem sogar mit einer hübschen (aber nutzlosen 😉 ) Animation. In diesem Beispiel zeige ich die Verwendung im CLI:

Die Syntax aus der Online-Hilfe:

packet-tracer input [src_int] protocol src_addr src_port dest_addr dest_port

Die benötigten Parameter sind also

  1. das Interface, auf dem das Paket ankommen soll
  2. das Protokoll icmp, tcp, udp oder rawip
  3. die Quelladresse mit Quellport
  4. die Zieladresse mit Zielport

Ein paar Beispiele was einem der Packet-Tracer verrät:


act/pix# packet-tracer input outside tcp 1.2.3.4 1234 192.168.2.11 110

...

Phase: 4
Type: ACCESS-LIST
Subtype:
Result: DROP
Config:
Implicit Rule
Additional Information:

Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

act/pix#

Die komplette ACL auf dem Interface outside wurde durchsucht und kein passender Match gefunden. Das implizite Deny hätte das Paket verworfen.


act/pix# packet-tracer input dmz-wan tcp 1.2.3.4 1234 5.6.7.8 110

...

Phase: 4
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in   0.0.0.0         0.0.0.0         outside

Result:
input-interface: dmz-wan
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (rpf-violated) Reverse-path verify failed

act/pix#

Die IP-Adresse 1.2.3.4 ist nach der Routing-Tabelle nicht am Interface dmz-wan zu finden. Der RPF-Check hätte das Paket verworfen.


act/pix# packet-tracer input dmz-wan tcp 10.2.2.2	 1234 5.6.7.8 80

...

Phase: 8
Type: NAT
Subtype:
Result: DROP
Config:
nat (dmz-wan) 0 access-list nat0-dmz-wan
nat-control
  match ip dmz-wan any outside any
    no translation group, implicit deny
    policy_hits = 41443
Additional Information:

Result:
input-interface: dmz-wan
input-status: up
input-line-status: up
output-interface: dmz-wan
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

act/pix#

Das Paket wäre von der ACL erlaubt worden (Access-List-Check ist Phase 4), aber für dieses Paket gibt es keine NAT-Regel und NAT-Control ist eingeschaltet.


act/pix# packet-tracer input inside tcp 10.1.1.100 1234 10.234.234.234 80

...

Phase: 11
Type: VPN
Subtype: encrypt
Result: DROP
Config:
Additional Information:

Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

act/pix#

Hier täuscht sich der Packet-Tracer. Die IP 10.234.234.234 befindet sich hinter einer nicht aktiven VPN-Verbindung, die aber korrekt konfiguriert ist. Aber da keine SAs bestehen könnte der Packet-Tracer das Paker nicht verschlüsseln. Ein paar Sekunden später sieht der gleiche Test folgendermaßen aus:


act/pix# packet-tracer input inside tcp 10.1.1.100 1234 10.234.234.234 80

...

Phase: 11
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:

Phase: 12
Type: ACCESS-LIST
Subtype: ipsec-user
Result: DROP
Config:
Additional Information:

Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

act/pix#

Jetzt könnte das Paket verschlüsselt werden, allerdings verbietet der VPN-Filter, der für diese Tunnel-Group konfiguriert ist die Kommunikation.

Hier ein komplettes Beispiel mit VPN, bei dem die Kommunikation erlaubt wäre


act/pix# packet-tracer input inside tcp 10.1.1.100 80 10.234.234.234 1234

Phase: 1
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found no matching flow, creating a new flow

Phase: 2
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in   10.234.234.0     255.255.255.0   outside

Phase: 3
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in   10.1.1.0    255.255.255.0   inside

Phase: 4
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group inside-in in interface inside
access-list inside-in extended permit ip object-group internal-network any
object-group network internal-network
 network-object 10.1.1.0 255.255.255.0
Additional Information:

Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 6
Type: FOVER
Subtype: standby-update
Result: ALLOW
Config:
Additional Information:

Phase: 7
Type: NAT-EXEMPT
Subtype:
Result: ALLOW
Config:
nat (inside) 0 access-list nat0-inside
nat-control
  match ip inside 10.0.0.0 255.0.0.0 outside 10.0.0.0 255.0.0.0
    NAT exempt
    translate_hits = 22830, untranslate_hits = 168671
Additional Information:

Phase: 8
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (inside) 0 access-list nat0-inside
nat (inside) 10 10.1.1.0 255.255.255.0
nat-control
  match ip inside 10.1.1.0 255.255.255.0 outside any
    dynamic translation to pool 10 (192.168.2.254 [Interface PAT])
    translate_hits = 28944, untranslate_hits = 12
Additional Information:

Phase: 9
Type: NAT
Subtype: host-limits
Result: ALLOW
Config:
nat (inside) 0 access-list nat0-inside
nat (inside) 10 10.1.1.0 255.255.255.0
nat-control
  match ip inside 10.1.1.0 255.255.255.0 outside any
    dynamic translation to pool 10 (192.168.2.254 [Interface PAT])
    translate_hits = 28944, untranslate_hits = 12
Additional Information:

Phase: 10
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:

Phase: 11
Type: ACCESS-LIST
Subtype: ipsec-user
Result: ALLOW
Config:
Additional Information:

Phase: 12
Type: VPN
Subtype: ipsec-tunnel-flow
Result: ALLOW
Config:
Additional Information:

Phase: 13
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 14
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1918239, packet dispatched to next module

Phase: 15
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found no matching flow, creating a new flow

Phase: 16
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:

Phase: 17
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1918240, packet dispatched to next module

Phase: 18
Type: ROUTE-LOOKUP
Subtype: output and adjacency
Result: ALLOW
Config:
Additional Information:
found next-hop 192.168.2.250 using egress ifc outside
adjacency Active
next-hop mac address 0000.0c08.ac01 hits 322945

Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: allow

act/pix#

Und hier noch ein Beispiel eines erfolgreichen Traces vom Outside-Interface zum Webserver in der DMZ:


act/pix# packet-tracer input outside tcp 1.2.3.4 1234 192.168.2.11 80

Phase: 1
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found no matching flow, creating a new flow

Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
static (dmz,outside) 192.168.2.11 10.10.10.10 netmask 255.255.255.255 dns
nat-control
  match ip dmz host 10.10.10.10 outside any
    static translation to 192.168.2.11
    translate_hits = 313235, untranslate_hits = 12786
Additional Information:
NAT divert to egress interface dmz
Untranslate 192.168.2.11/0 to 10.10.10.10/0 using netmask 255.255.255.255

Phase: 3
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in   0.0.0.0         0.0.0.0         outside

Phase: 4
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group out-in in interface outside
access-list out-in extended permit tcp any host object-group Einstein-outside eq www
object-group network Einstein-outside
 network-object host 192.168.2.11
 network-object host 192.168.2.12
Additional Information:

Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 6
Type: INSPECT
Subtype: np-inspect
Result: ALLOW
Config:
class-map inspection_default
 match default-inspection-traffic
policy-map global_policy
 class inspection_default
  inspect http
service-policy global_policy global
Additional Information:

Phase: 7
Type: FOVER
Subtype: standby-update
Result: ALLOW
Config:
Additional Information:

Phase: 8
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
static (dmz,outside) 192.168.2.11 10.10.10.10 netmask 255.255.255.255 dns
nat-control
  match ip dmz host 10.10.10.10 outside any
    static translation to 192.168.2.11
    translate_hits = 313235, untranslate_hits = 12786
Additional Information:

Phase: 9
Type: NAT
Subtype: host-limits
Result: ALLOW
Config:
static (dmz,outside) 192.168.2.11 10.10.10.10 netmask 255.255.255.255 dns
nat-control
  match ip dmz host 10.10.10.10 outside any
    static translation to 192.168.2.11
    translate_hits = 313235, untranslate_hits = 12786
Additional Information:

Phase: 10
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:

Phase: 11
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1913085, packet dispatched to next module

Phase: 12
Type: ROUTE-LOOKUP
Subtype: output and adjacency
Result: ALLOW
Config:
Additional Information:
found next-hop 10.10.10.10 using egress ifc dmz
adjacency Active
next-hop mac address 000d.56a6.cb5f hits 173

Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow

act/pix#

Überzeugt vom Packet-Tracer? Viel Spaß beim Updaten … 😉

One Reply to “Der Cisco PIX/ASA 7.2 Packet-Tracer”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.