Sei sulla pagina 1di 78

Top 10 ASA Firewall and VPN

Troubleshooting Techniques
Omar Santos
os@cisco.com
Cisco PSIRT
Security Research and Operations

Agenda

Introduction of ASA Packet Flow

Top 5 Techniques when Troubleshooting


Firewall Problems

Top 5 Techniques when Troubleshooting


VPN Problems

Q&A

2014 Cisco and/or its affiliates. All rights reserved.

Understanding the

2013-2014 Cisco and/or its affiliates. All rights reserved.

Understanding Packet Flow


To effectively troubleshoot a connectivity problem, one must first understand the packet path

through the network.


Attempt to isolate the problem down to a single device.
Then perform a systematic walk of the packet path through the device to determine where the

problem could be
For problems relating to the Cisco ASA, always:

Determine the flow: Protocol, Source IP, Destination IP, Source Port, Destination Port

Determine the logical (named) interfaces through which the flow passes
TCP outside

172.16.164.216:5620 inside

192.168.1.150:50141, idle 0:00:00, bytes 0, flags saA

All firewall connectivity issues can be simplified to two


interfaces (ingress and egress) and the policies tied to both
4

2014 Cisco and/or its affiliates. All rights reserved.

Example Flow

With the Flow defined,


examination of configuration
issues boils down to just the two
Interfaces: Inside and Outside

TCP Flow
Source IP

: 10.1.1.9

Destination IP : 198.133.219.25

Source Port

: 11030

Destination Port

80

Interfaces
Source: Inside

Destination: Outside

Packet Flow

Servers

10.1.1.9

Eng

Accounting
Outside

2014 Cisco and/or its affiliates. All rights reserved.

198.133.219.25

Packet Processing: Ingress Interface


IPS or CX
Module

Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

Yes

ACL
Permit
No

Packet arrives on ingress interface

DROP

Yes
Stateful
Inspection

NAT IP
Header

No
DROP

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Input counters incremented by NIC and periodically retrieved by CPU

Software input queue (RX ring) is an indicator of packet load


Overrun counter indicates packet drops (usually packet bursts)

2014 Cisco and/or its affiliates. All rights reserved.

asa# show interface outside


Interface GigabitEthernet0/3 "outside", is up, line protocol is up
Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec
Auto-Duplex(Full-duplex), Auto-Speed(1000 Mbps)
Input flow control is unsupported, output flow control is off
MAC address 0026.0b31.36d5, MTU 1500
IP address 148.167.254.24, subnet mask 255.255.255.128
54365986 packets input, 19026041545 bytes, 0 no buffer
Received 158602 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
[]
input queue (blocks free curr/low): hardware (255/230)
output queue (blocks free curr/low): hardware (254/65)

Packet Processing: Locate Connection


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection
No
DROP

NAT IP
Header

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Check first for existing connection in conn table


If conn entry exists, bypass ACL check and process in Fastpath
asa# show conn
TCP out 198.133.219.25:80 in 10.1.1.9:11030 idle 0:00:04 Bytes 1293 flags UIO

If no existing connection
TCP SYN or UDP packet, pass to ACL and other policy checks in Session Manager

TCP non-SYN packet, drop and log


ASA-6-106015: Deny TCP (no connection) from 10.1.1.9/11031 to 198.133.219.25/80 flags PSH ACK
interface inside

2014 Cisco and/or its affiliates. All rights reserved.

on

Packet Processing: NAT Un-Translate


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection

NAT IP
Header

No
DROP

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Incoming packet is checked against NAT rules


Packet is un-translated first, before ACL check

In ASA 8.2 and below, incoming packet was subjected to ACL check prior to un-translation
NAT rules can determine the egress interface at this stage

2014 Cisco and/or its affiliates. All rights reserved.

Packet Processing: ACL Check


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

Yes

No
DROP

Yes
Stateful
Inspection

NAT IP
Header

No
DROP

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

First packet in flow is processed through ACL checks


ACLs are first configured match
First packet in flow matches ACE, incrementing hit count by one
asa# show access-list inside
access-list inside line 10 permit ip 10.1.1.0 255.255.255.0 any (hitcnt=1)

Denied packets are dropped and logged


ASA-4-106023: Deny tcp src inside:10.1.1.9/11034 dst outside:198.133.219.25/80 by access-group "inside"

2014 Cisco and/or its affiliates. All rights reserved.

Packet Processing: Stateful Inspection


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection
No
DROP

NAT IP
Header

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Stateful inspection ensures protocol compliance at TCP/UDP/ICMP level


(Optional) Customisable application inspection up to Layer 7 (FTP, SIP, and so on)

Rewrite embedded IP addresses, open up ACL pinholes for secondary connections

Additional security checks are applied to the application payload


ASA-4-406002: FTP port command different address: 10.2.252.21(192.168.1.21) to 209.165.202.130 on
interface inside
ASA-4-405104: H225 message received from outside_address/outside_port to inside_address/inside_port
before SETUP

2014 Cisco and/or its affiliates. All rights reserved.

10

Packet Processing: NAT IP Header


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection

NAT IP
Header

Egress
Interface
No

No

DROP

DROP

No
DROP

L3
Route

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Translate the source and destination IP addresses in the IP header


Translate the port if performing PAT
Update header checksums

(Optional) Following the above, pass packet to IPS or CX module

Real (pre-NAT) IP address information is supplied as meta data

2014 Cisco and/or its affiliates. All rights reserved.

11

Packet Processing: Egress Interface


IPS or CX
Module
Yes
RX
Pkt

Existing
Conn

Ingress
Interface

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection
No
DROP

NAT IP
Header

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Packet is virtually forwarded to egress interface (not forwarded to the Ethernet NIC yet)
Egress interface is determined first by translation rules or existing conn entry, only THEN

the routing table


If NAT does not divert to the egress interface, the global routing table is consulted to

determine egress interface


Inside
DMZ

172.16.0.0/16

Outside

172.16.12.0/24
172.16.12.4

2014 Cisco and/or its affiliates. All rights reserved.

Packets received on outside and destined to


192.168.12.4 get routed to 172.16.12.4 on
inside based on NAT configuration.
nat (inside,outside) source static 172.16.0.0-net 192.168.0.0-net
nat (dmz,outside) source static 172.16.12.0-net 192.168.12.0-net
12

Packet Processing: L3 Route Lookup


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection

NAT IP
Header

No
DROP

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Once at egress interface, an interface route lookup is performed


Only routes pointing out the egress interface are eligible
Remember: NAT rule can forward the packet to the egress interface, even though the

routing table may point to a different interface


If the destination is not routable out of the identified egress interface, the packet is dropped
%ASA-6-110003: Routing failed to locate next hop for TCP from inside:192.168.103.220/59138
to dmz:172.15.124.76/23

2014 Cisco and/or its affiliates. All rights reserved.

13

Packet Processing: L2 Address Lookup


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection

NAT IP
Header

Egress
Interface

No
DROP

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Once a Layer 3 route has been found, and next hop IP address identified, Layer 2

resolution is performed
Layer 2 rewrite of MAC header
If Layer 2 resolution fails no syslog

show arp will not display an entry for the L3 next hop
debug arp will indicate if we are not receiving an ARP reply
arp-req: generating request for 10.1.2.33 at interface outside
arp-req: request for 10.1.2.33 still pending

2014 Cisco and/or its affiliates. All rights reserved.

14

Packet Processing: Transmit Packet


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Yes

Yes
Stateful
Inspection
No
DROP

NAT IP
Header

Egress
Interface

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Packet is transmitted on wire


Interface counters will increment on interface

Underrun counter indicates drops due to egress interface oversubscription


TX ring is full

2014 Cisco and/or its affiliates. All rights reserved.

asa# show interface outside


Interface GigabitEthernet0/1 "outside", is up, line protocol is up
Hardware is i82574L rev00, BW 1000 Mbps, DLY 10 usec
MAC address 503d.e59d.90ab, MTU 1500
IP address 172.18.124.149, subnet mask 255.255.255.0

273399 packets output, 115316725 bytes, 80 underruns

input queue (blocks free curr/low): hardware (485/441)


output queue (blocks free curr/low): hardware (463/0)
15

*NOT RANKED BY IMPORTANCE

2014 Cisco and/or its affiliates. All rights reserved.

17

Uses of Syslogs
Primary mechanism for recording connections to and through the firewall
The best troubleshooting tool available

Archival Purposes

Live Debugging Purposes

Console
Syslog/FTP Server

Trap
SNMP Server

2014 Cisco and/or its affiliates. All rights reserved.

Syslog.

Flash

Local
Buffer

ASDM

18

ASA Syslog Level vs. Number of Messages


Log
Level

Number of Messages (SUM)


Description
Ver. 7.0

Ver. 7.2

Ver. 8.0

Ver. 8.1

Ver. 8.2

Ver. 8.3

Ver. 8.4

Ver. 9.1

Emergencies

Alerts

62 (62)

77 (77)

78 (78)

87 (87)

87 (87)

95 (95)

109 (109)

117 (117)

Critical

29 (91)

35 (112)

49 (127)

50 (137)

56 (143)

57 (152)

63 (172)

72 (189)

Errors

274 (365)

334 (446)

361 (488)

363 (500)

384 (527)

408 (560)

448 (620)

521 (710)

Warnings

179 (544)

267 (713)

280 (768)

281 (781)

315 (842)

324 (884)

357 (997)

420 (1130)

Notifications

161 (705)

206 (919)

216 (984)

218 (999)

237 (1079)

246 (1130)

265 (1242)

285 (1415)

Informational

234 (939)

302 (1221)

335 (1319)

337 (1336)

368 (1447)

377 (1507)

395 (1637)

430 (1845)

Debugging

217 (1156)

258 (1479)

266 (1585)

267 (1603)

269 (1716)

269 (1776)

276 (1913)

295 (2140)

2014 Cisco and/or its affiliates. All rights reserved.

19

Custom Syslog Levels


Assign any syslog message to any available level

Problem:

Levels

You want to record what exec commands are


being executed on the firewall; syslog ID 111009
records this information, but by default it is at
level 7 (debug)
ASA-7-111009: User johndoe executed cmd: show run
The problem is we dont want to log all 1775
other syslogs that are generated at debug level

0Emergency
1Alert
2Critical
3Errors

4Warnings
5Notifications
6Informational

asa(config)# logging message 111009 level 3

7Debugging

ASA-3-111009: User johndoe executed cmd: show run


2014 Cisco and/or its affiliates. All rights reserved.

20

TCP Connection Termination Reasons


If a TCP flow was built through the ASA, it will always log a teardown reason
TCP teardown message is logged at level 6 (informational) by default

If you are having problems abnormal connection termination, temporally increase your logging

level (or change the syslog level, and check the teardown reason
%ASA-6-302014: Teardown TCP connection 90 for outside:10.1.1.1/80 to inside:192.168.1.101/1107 duration 0:00:30 bytes 0

SYN Timeout
%ASA-6-302014: Teardown TCP connection 3681 for DMZ:172.16.171.125/21 to inside:192.168.1.110/24245 duration 0:01:03
bytes 12504 TCP Reset-O

21

2014 Cisco and/or its affiliates. All rights reserved.

21

TCP Connection Termination Reasons


Reason

Description

Conn-Timeout

Connection Ended Because It Was Idle Longer Than the Configured Idle Timeout

Deny Terminate

Flow Was Terminated by Application Inspection

Failover Primary Closed

The Standby Unit in a Failover Pair Deleted a Connection Because of a Message


Received from the Active Unit

FIN Timeout

Force Termination After Ten Minutes Awaiting the Last ACK or After Half-Closed Timeout

Flow Closed by Inspection

Flow Was Terminated by Inspection Feature

Flow Terminated by IPS

Flow Was Terminated by IPS

Flow Reset by IPS

Flow Was Reset by IPS

Flow Terminated by
TCP Intercept

Flow Was Terminated by TCP Intercept

Invalid SYN

SYN Packet Not Valid

Idle Timeout

Connection Timed Out Because It Was Idle Longer than the Timeout Value

IPS Fail-Close

Flow Was Terminated Due to IPS Card Down

SYN Control

Back Channel Initiation from Wrong Side

2014 Cisco and/or its affiliates. All rights reserved.

22

TCP Connection Termination Reasons


Reason

Description

SYN Timeout

Force Termination After Twenty Seconds Awaiting


Three-Way Handshake Completion

TCP Bad Retransmission

Connection Terminated Because of Bad TCP Retransmission

TCP Fins

Normal Close Down Sequence

TCP Invalid SYN

Invalid TCP SYN Packet

TCP Reset-I

TCP Reset Was Sent From the Inside Host

TCP Reset-O

TCP Reset Was Sent From the Outside Host

TCP Segment Partial Overlap

Detected a Partially Overlapping Segment

TCP Unexpected Window Size Variation

Connection Terminated Due to a Variation in the


TCP Window Size

Tunnel Has Been Torn Down

Flow Terminated Because Tunnel Is Down

Unauth Deny

Connection Denied by URL Filtering Server

Unknown

Catch-All Error

Xlate Clear

User Executed the Clear Xlate Command

2014 Cisco and/or its affiliates. All rights reserved.

23

NetFlow Secure Event Logging (NSEL)


NetFlow v9 support added in ASA 8.1+

Provides a method to deliver binary logs at high speeds


Reduce processing overhead in printing logs
Combine multiple events into one NetFlow record
FlowSets Supported:

Flow Creation
Flow Teardown
Flow Denied

Flow Update in ASA 8.4(5)+ and 9.1(2)+


Remove redundant syslog messages

asa(config)# logging flow-export-syslogs disable

2014 Cisco and/or its affiliates. All rights reserved.

24

Case Study: Excessive Logging


logging
logging
logging
logging
logging
logging
logging
logging

enable
buffered debugging
console debugging
trap debugging
history debugging
host inside 192.168.1.10
host inside 192.168.1.11
host DMZ 192.168.2.121

snmp-server host inside 192.168.1.10


snmp-server host inside 192.168.1.11
snmp-server host DMZ 192.168.2.121

flow-export destination inside 192.168.1.10


flow-export destination inside 192.168.1.11
flow-export destination DMZ 192.168.2.121

4 logging destinations (buffer,


console, SNMP, and syslog)
3 syslog servers
3 SNMP servers
3 Netflow collectors
4 messages per PAT
connection (over 550 bytes)

%ASA-6-305011: Built dynamic TCP translation from inside:192.168.1.101/4675 to


1 connection:
outside:172.16.171.125/34605
%ASA-6-302013: Built outbound TCP connection 3367663 for outside:198.133.219.25/80
32 syslog messages
(198.133.219.25/80) to inside:192.168.1.101/4675 (172.16.171.125/34605)
26+ packets sent
%ASA-6-302014: Teardown TCP connection 3367663 for outside:198.133.219.25/80 to
100K connections/sec:
inside:192.168.1.101/4675 duration 0:00:00 bytes 1027 TCP FINs
2.8Gbps
%ASA-6-305012: Teardown dynamic TCP translation from inside:192.168.1.101/4675
to
outside:172.16.171.125/34605
duration
0:00:30
2014 Cisco and/or its affiliates. All rights reserved.

25

Case Study: Logging Optimization


Not logging to buffer
unless troubleshooting

Console logging is a
bottleneck (low rate)

Using minimum number of syslog


servers and Netflow collectors

logging enable
logging flow-export-syslogs disable

Do not duplicate syslogs


and Netflow data

logging list FAILOVER message 104003


Reduce severity
level for syslogs

logging trap errors


logging history FAILOVER
logging host inside 192.168.1.10

Send only certain


syslogs as SNMP traps

logging host DMZ 192.168.2.121


snmp-server host inside 192.168.1.10
snmp-server host DMZ 192.168.2.121 poll

Not all SNMP servers


need to receive traps

flow-export destination inside 192.168.1.10


flow-export destination DMZ 192.168.2.121
2014 Cisco and/or its affiliates. All rights reserved.

26

Logging Common Issues


logging flash-bufferwrap should only be used when logging to buffer at Level 1
logging history should only be used when you really have an SNMP server that you want to

receive all syslogs


logging console should only be enabled while actively troubleshooting on the console
logging standby should only be used if you want to receive double the syslogs
logging permit-hostdown should always be used with TCP syslogging

2014 Cisco and/or its affiliates. All rights reserved.

27

2
*NOT RANKED BY IMPORTANCE.
2014 Cisco and/or its affiliates. All rights reserved.

28

Xlate Table
show xlate displays information about NAT translations through the ASA

Second biggest memory consumer after conn table, no hardcoded size limit
You can limit the output to just the local or global IP
asa# show xlate local 10.2.1.2
5014 in use, 5772 most used
TCP PAT from inside:192.168.103.220/57762 to outside:10.2.1.2/43756 flags ri
idle 0:00:00 timeout 0:00:30
TCP PAT from inside:192.168.103.220/57761 to outside:10.2.1.2/54464 flags ri
idle 0:00:00
timeout
0:00:30
Depleted
NAT/PAT
pools
may cause connectivity issues

asa# show nat pool


TCP PAT pool outside, address 10.2.1.2, range 1-511, allocated 1
TCP PAT pool outside, address 10.2.1.2, range 512-1023, allocated 0
TCP PAT pool outside, address 10.2.1.2, range 1024-65535, allocated 64102
2014 Cisco and/or its affiliates. All rights reserved.

29

Detailed NAT Information


show nat displays information about the NAT table of the ASA

detail keyword will display object definitions


Watch the hit counts for policies that are not matching traffic
asa# show nat detail
Manual NAT Policies (Section 1)
1 (inside) to (outside) source static science-obj science-obj destination static vpn-obj vpn-obj
translate_hits = 0, untranslate_hits = 0
Source - Origin: 192.168.0.0/16, Translated: 192.168.0.0/16
Destination - Origin: 172.16.1.0/24, Translated: 172.16.1.0/24
Auto NAT Policies (Section 2)
1 (dmz) to (outside) source static webserver-obj 14.36.103.83
translate_hits = 0, untranslate_hits = 3232
Source - Origin: 192.168.22.32/32, Translated: 14.36.103.83/32
2 (inside) to (outside) source dynamic science-obj interface
translate_hits = 37723, untranslate_hits = 0
Source - Origin: 192.168.0.0/16, Translated: 14.36.103.96/16

Translate hits indicate


connections from real to
mapped
2014 Cisco and/orinterfaces
its affiliates. All rights reserved.

Untranslate hits indicate


connections from mapped to
real interfaces

Check specific
translation policies in
the applied order.

30

CONNECTION TABLE

3
*NOT RANKED BY IMPORTANCE.
2014 Cisco and/or its affiliates. All rights reserved.

31

Connection Table
asa# show conn detail
2 in use, 64511 most used
Flags: A - awaiting inside ACK to SYN, a - awaiting outside ACK to SYN,
B - initial SYN from outside, b - TCP state-bypass or nailed,
C - CTIQBE media, c - cluster centralized,
D - DNS, d - dump, E - outside back connection, F - outside FIN, f - inside FIN,
G - group, g - MGCP, H - H.323, h - H.225.0, I - inbound data,
i - incomplete, J - GTP, j - GTP data, K - GTP t3-response
k - Skinny media, M - SMTP data, m - SIP media, n - GUP
O - outbound data, P - inside back connection, p - Phone-proxy TFTP connection,
q - SQL*Net data, R - outside acknowledged FIN,
R - UDP SUNRPC, r - inside acknowledged FIN, S - awaiting inside SYN,
s - awaiting outside SYN, T - SIP, t - SIP transient, U - up,
V - VPN orphan, W - WAAS,
X - inspected by service module,
Narrow down the output with x - per session, Y - director stub flow, y - backup stub flow, Bidirectional byte count; use
NSEL to report each
show conn address <ip> Z - Scansafe redirection, z - forwarding stub flow
TCP outside:198.133.219.25/80 dmz:10.9.9.3/4101,
flags UIO, idle 8s, uptime 10s, timeout 1h, bytes 127
UDP outside:172.18.124.1/123 dmz:10.1.1.9/123,
flags -, idle 15s, uptime 16s, timeout 2m, bytes 1431

Conn flags indicate current


state
2014 Cisco and/or its affiliates. All rights reserved.

direction separately.

detail option adds uptime


and timeout information

32

Local Host Table


A local-host entry is created for every IP tracked by the ASA
It groups xlates, connections, and AAA information

Useful for monitoring connections terminating on servers or offending clients


asa# show local-host detail connection tcp 50
Interface dmz: 0 active, 0 maximum active, 0 denied
Interface inside: 1 active, 1 maximum active, 0 denied
local host: <192.168.103.220>,
TCP flow count/limit = 798/unlimited
TCP embryonic count to host = 0
TCP intercept watermark = unlimited
UDP flow count/limit = 0/unlimited
Conn:
TCP outside:172.18.124.76/80 inside:192.168.103.220/34078,
flags UO, idle 0s, uptime 0s, timeout 30s, bytes 0
TCP outside:172.18.124.76/80 inside:192.168.103.220/34077,
flags UO, idle 0s, uptime 0s, timeout 30s, bytes 0
(output
truncated)
2014 Cisco and/or its affiliates. All rights reserved.

Only display hosts that have


more than 50 active TCP
connections.

33

Connection Flags
Outbound Connection

inside

client

Inbound Connection

outside

ASA

2014 Cisco and/or its affiliates. All rights reserved.

inside

server

client

outside

ASA

server
34

PACKET CAPTURE

4
*NOT RANKED BY IMPORTANCE.
2014 Cisco and/or its affiliates. All rights reserved.

35

Packet Capture
Inside Capture

Outside Capture

In-line capability to record packets passing through ASA


Inside

Outside
Capture OUT

Two key steps in troubleshooting with captures


Capture IN
Apply capture under unique name to ingress and egress interfaces
Define the traffic that you want to capture, use pre-NAT on the wire information
Tcpdump-like format for displaying captured packets on the box
asa# capture OUT interface outside match ip any host 172.18.124.1
asa# capture IN interface inside match ip any host 172.18.124.1
asa# show capture IN

Unlike ACL, match covers


both directions of the flow

4 packets captured

1: 10:51:26.139046
2: 10:51:26.139503
3: 10:51:27.140739
4: 10:51:27.141182
4 packets shown
asa# no capture IN
2014 Cisco and/or its affiliates. All rights reserved.

802.1Q
802.1Q
802.1Q
802.1Q

vlan#10
vlan#10
vlan#10
vlan#10

P0
P0
P0
P0

172.18.254.46 > 172.18.124.1:


172.18.124.1 > 172.18.254.46:
172.18.254.46 > 172.18.124.1:
172.18.124.1 > 172.18.254.46:

icmp:
icmp:
icmp:
icmp:

echo
echo
echo
echo

request
reply
request
reply

Remember to remove the captures


when done with troubleshooting
36

Packet Capture
Capture buffer maintained in RAM (512KB by default, 30 MB max)

Stops capturing when full by default, circular option available


Default recorded packet length is 1518 bytes
May elevate CPU utilization on multiple-core ASA when applied
Copy captures off via TFTP or retrieve through HTTPS with your web browser

Do this before removing the capture with no capture

https://x.x.x.x/admin/capture/OUT/pcap/outsidecapture.pcap
Configured capture name

Save capture file under this name

Download binary PCAP to


open in your favorite packet
analyser (such as Wireshark)
2014 Cisco and/or its affiliates. All rights reserved.

37

Where Packets Are Captured in Packet Flow


IPS or CX
Module
Yes
RX
Pkt

Ingress
Interface

Existing
Conn

No

NAT
Untranslate

ACL
Permit

No
DROP

Ingress Packets
Captured

Yes

Yes
Stateful
Inspection

NAT IP
Header

Egress
Interface

No
DROP

L3
Route

No

No

DROP

DROP

Yes

L2
Addr

Yes

TX
Pkt

No
DROP

Egress Packets
Captured

Packets are captured at the first and last points they can be in the flow
Ingress packets are captured before most packet processing
Egress packets are captured after all processing
Transit packets show the destination MAC address rewritten
Self-sourced packets may show an empty MAC address (0000.0000.0000)
2014 Cisco and/or its affiliates. All rights reserved.

38

Accelerated Security Path (ASP)


Packets and flows dropped in the ASP will increment a counter

Frame drop counters are per packet

Flow drops are per flow


See command reference under show asp drop for full list of counters
asa# show asp drop

Frame drop:
Invalid encapsulation (invalid-encap)
Invalid tcp length (invalid-tcp-hdr-length)
Invalid udp length (invalid-udp-length)
No valid adjacency (no-adjacency)
No route to host (no-route)
Reverse-path verify failed (rpf-violated)
Flow is denied by access rule (acl-drop)
First TCP packet not SYN (tcp-not-syn)
10942
Bad TCP Checksum (bad-tcp-cksum)

10897
9382
10
5594
1009
15
25247101
36888
893

2014 Cisco and/or its affiliates. All rights reserved.

39

Capturing ASP Drops


Capture all frames dropped in the ASP
asa# capture drops type asp-drop all

Capture all frames with a specific drop reason


asa# capture drop type asp-drop ?
acl-drop
rule
all
bad-crypto
bad-ipsec-natt
bad-ipsec-prot
bad-ipsec-udp
bad-tcp-cksum
bad-tcp-flags

Flow is denied by configured


All packet drop reasons
Bad crypto return in packet
Bad IPSEC NATT packet
IPSEC not AH or ESP
Bad IPSEC UDP packet
Bad TCP checksum
Bad TCP flags

ASP flow drops are non-atomic and cannot be captured


asa# capture drops type asp-drop tcp-not-syn
2014 Cisco and/or its affiliates. All rights reserved.

40

PACKET TRACER

5
*NOT RANKED BY IMPORTANCE.
2014 Cisco and/or its affiliates. All rights reserved.

41

Packet Tracer
Unique capability to record the path of a specially tagged packet through ASA

Best way to understand the packet path in the specific software version
Inject a simulated packet to analyse the behaviour and validate configuration
Feature order
and name

asa# packet-tracer input inside tcp 192.168.1.101 23121 172.16.171.125 23 detailed


Phase: 1
Type: CAPTURE
Ingress interface
Subtype:
Result: ALLOW
Config:
Additional Information:
[]

2014 Cisco and/or its affiliates. All rights reserved.

Packet information as it
enters the ingress interface
Include detailed internal flow and
policy structure information

42

Sample Packet Tracer Output


asa# packet-tracer input outside tcp 172.18.124.66 1234 172.18.254.139 3389
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list

2014

Phase: 3
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (outside,dmz) source dynamic any interface destination static interface Win7-vm service rdp-outside rdp-outside
Additional Information:
NAT divert to egress interface dmz
Untranslate 172.18.254.139/3389 to 192.168.103.221/3389
Cisco and/or its affiliates. All.
rights reserved.

43

Sample Packet Tracer Output


Phase: 4
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group outside_in in interface outside
access-list outside_in extended permit tcp any any eq 3389
Additional Information:

Phase: 8
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (outside,dmz) source dynamic any interface destination static interface Win7-vm service rdp-outside rdp-outside
Additional Information:
Dynamic translate 172.18.124.66/1234 to 192.168.103.221/1234

Phase: 12
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 16538274, packet dispatched to next module
2014 Cisco and/or its affiliates. All rights reserved.

44

Packet Tracer in ASDM


Launch from Tools >
Packet Tracer

Define simulated packet

Feature type and


resulting action

Direct link to edit policy

Associated
configuration

Final outcome (allowed or


dropped) and egress
interface information
2014 Cisco and/or its affiliates. All rights reserved.

45

Packet Tracer: Tracing Captured Packet


Enable packet tracer within an internal packet capture
asa# capture IN interface inside trace trace-count 20 match tcp any any eq
Trace inbound
packets only

Traced packet count per


capture (50 by default)

Find the packet that you want to trace in the capture


asa#
68
1:
2:
3:
4:
5:

show capture inside


packets captured
15:22:47.581116 10.1.1.2.31746 > 198.133.219.25.80:
15:22:47.583465 198.133.219.25.80 > 10.1.1.2.31746:
15:22:47.585052 10.1.1.2.31746 > 198.133.219.25.80:
15:22:49.223728 10.1.1.2.31746 > 198.133.219.25.80:
15:22:49.223758 198.133.219.25.80 > 10.1.1.2.31746:
...

S
S
.
P
.

ack
ack
ack
Ack

Select that packet to show the tracer results


asa# show capture inside trace packet-number 4
2014 Cisco and/or its affiliates. All rights reserved.

46

Packet Tracer Video

Embedded Event Manager


Troubleshooting tool added in 9.2(1), similar to IOS EEM
Powerful way to run CLI commands based on ASA events (syslogs) and save
the output
Trigger Event

Action

Syslog ID

Execute show commands

Console

Time based

Execute config commands

File on disk

Crash

Output Destination

None

Manual

48

2014 Cisco and/or its affiliates. All rights reserved.

48

Embedded Event Manager


Time-based events
Every midnight back up the ASA configuration to your tftp server
Every 3 hours gather the output of show memory detail and save it to the flash

Syslog based events


If the available 1550 byte blocks become depleted, gather show blocks pool 1550
dump and save to the disk
If the AAA server is marked down: ping tcp to the server on port 49, show aaa-server
to gather statistics, save to a file on disk, use SCH to email the file contents

Manual events
Gather the output of 10 different commands and save to a file

49

2014 Cisco and/or its affiliates. All rights reserved.

49

Embedded Event Manager


Goal: Backup the configuration when a user logs in, and again when they log off of a SSH
session
Determine the syslogs that should trigger the event
%ASA-6-605005: Login permitted from 14.36.103.220/54785 to 36net:14.36.103.88/ssh for user "cisco"
%ASA-5-611103: User logged out: Uname: cisco

Configure the event applet


event manager applet loginConfigBackup
event syslog id 605005
event syslog id 611103
action 1 cli command "show running-config"
output file rotate 50
!

Applet name
Trigger syslogs
Action Command
Output Destination

Files written to disk when a user logs in and then out


261
260
259

-rwx
-rwx
-rwx

161286
161331
161277

16:46:27 May 05 2014


16:46:14 May 05 2014
16:46:07 May 05 2014

eem-loginConfigBackup-0.log
eem-loginConfigBackup-1.log
eem-loginConfigBackup-2.log
50

2014 Cisco and/or its affiliates. All rights reserved.

50

VPN AUTHENTICATION DEBUGS

1
*NOT
RANKED BY IMPORTANCE.
2014 Cisco and/or its affiliates. All rights reserved.

52

Authentication Problems
debug webvpn <1-255>
Good Authentication

WebVPN: calling AAA with ewsContext (-925550560) and nh (927982512)!


WebVPN: started user authentication...
WebVPN: AAA status = (ACCEPT)
WebVPN: user: (user1) authenticated.
Bad Authentication

WebVPN: started user authentication...


webvpn_free_auth_struct: net_handle = 0xc839fc30
webvpn_allocate_auth_struct: net_handle = 0xc839fc30
webvpn_free_auth_struct: net_handle = 0xc839fc30
webvpn_auth.c:webvpn_aaa_callback[5107]
WebVPN: AAA status = (ERROR)
WebVPN: callback data is not valid!!
webvpn_remove_auth_handle: auth_handle = 5
53

2014 Cisco and/or its affiliates. All rights reserved.

53

RADIUS Authentication Problems


debug radius
RADIUS packet decode (authentication request)
-------------------------------------Raw packet data (length = 150).....
01 11 00 96 53 90 89 8e af bc 45 9a cb a8 c1 66
a7 54 fd f2 01 07 75 73 65 72 31 02 12 07 6f 5c
c4 03 ae cf cc bf df ec 1d 58 0f 31 38 05 06 00
00 70 00 1e 11 32 30 39 2e 31 36 35 2e 32 30 30
2e 32 32 35 1f 11 32 30 39 2e 31 36 35 2e 32 30
30 2e 32 32 36 3d 06 00 00 00 05 42 11 32 30 39
2e 31 36 35 2e 32 30 30 2e 32 32 36 04 06 0a 0a
0a fe 1a 24 00 00 00 09 01 1e 69 70 3a 73 6f 75
72 63 65 2d 69 70 3d 32 30 39 2e 31 36 35 2e 32
30 30 2e 32 32 36
Parsed packet data.....
Radius: Code = 1 (0x01)
Radius: Identifier = 17 (0x11)
Radius: Length = 150 (0x0096)
Radius: Vector: 5390898EAFBC459ACBA8C166A754FDF2
Radius: Type = 1 (0x01) User-Name
Radius: Length = 7 (0x07)
Radius: Value (String) =
75 73 65 72 31
Radius: Type = 2 (0x02) User-Password
Radius: Length = 18 (0x12)
send pkt 172.18.104.83/1645
RADIUS_SENT:server response timeout
RADIUS
RADIUS_DELETE
2014 Cisco and/or its affiliates. All rights reserved.
remove_req 0xcbeb5d00 session 0x14 id 17

|
|
|
|
|
|
|
|
|
|

....S.....E....f
.T....user1...o\
.........X.18...
.p...209.165.200
.225..209.165.20
0.226=.....B.209
.165.200.226....
...$......ip:sou
rce-ip=209.165.2
00.226

user1

Server not Responding


54

54

Domain Authentication Problem


debug ntdomain
Domain Controller Communication Problem

smb: negotiate phase failed: syserr = Network is down


Cifs_Connect_Server() returned FALSE, error_code = 18
ntdomain_process_ntinfo - state is NTDOMAIN_DELETE
INFO: Attempting Authentication test to IP address <172.18.85.123>
(timeout: 12 seconds)
ERROR: Authentication Server not responding: No error

Note: In this Example the Administrator Attempts to Authenticate to the Active Directory Server Using the TEST Utility Within ASDM
55

2014 Cisco and/or its affiliates. All rights reserved.

55

Additional Authentication Debugs


For Your
Reference

You can combine the debugs listed above with the debug webvpn
and debug aaa common when troubleshooting clientless
authentication problems.
56

2014 Cisco and/or its affiliates. All rights reserved.

56

Authentication Test Utility

Using the CLI:


test
aaa-server authentication NYGroup host 172.18.85.123 user domainuser password 123qweasd
2014 Cisco and/or its affiliates. All rights reserved.
57

57

2014 Cisco and/or its affiliates. All rights reserved.

58

Useful Show Commands


show vpn-sessiondb
asa# show vpn-sessiondb
--------------------------------------------------------------------------VPN Session Summary
--------------------------------------------------------------------------Active : Cumulative : Peak Concur : Inactive
---------------------------------------------AnyConnect Client
:
12 :
22 :
12 :
0
SSL/TLS/DTLS
:
12 :
22 :
12 :
0
--------------------------------------------------------------------------Total Active and Inactive
:
12
Total Cumulative :
22
Device Total VPN Capacity
:
25
Device Load
:
0%
----------------------------------------------------------------------------------------------------------------------------------------------------Tunnels Summary
--------------------------------------------------------------------------Active : Cumulative : Peak Concurrent
---------------------------------------------AnyConnect-Parent
:
12 :
22 :
12
SSL-Tunnel
:
12 :
22 :
12
DTLS-Tunnel
:
12 :
22 :
12
--------------------------------------------------------------------------Totals
:
12 :
6
2014 Cisco and/or its affiliates. All rights reserved.

59

show vpn-sessiondb additional options


asa# show vpn-sessiondb ?
exec mode commands/options:

anyconnect
detail
email-proxy
full
index
l2l
license-summary
ra-ikev1-ipsec
ratio
summary
vpn-lb
webvpn
|
<cr>

AnyConnect sessions
Show detailed output
Email-Proxy sessions
Output formatted for data management programs
Index of session
IPsec LAN-to-LAN sessions
Show VPN License summary
IKEv1 IPsec/L2TP-IPsec Remote Access sessions
Show VPN Session protocol or encryption ratios
Show VPN Session summary
VPN Load Balancing Mgmt sessions
WebVPN sessions
Output modifiers

2014 Cisco and/or its affiliates. All rights reserved.

60

debug webvpn
omar-asa# debug webvpn ?
<1-255>
anyconnect

webvpn anyconnect debugging

chunk
cifs

webvpn chunk debugging


webvpn cifs debugging

citrix
compression

webvpn citrix debugging


webvpn (anyconnect) compression debugging

cstp-auth
customization

webvpn cstp-auth debugging


webvpn customization debugging

failover
html

webvpn failover debugging


webvpn html debugging

javascript
kcd

webvpn javascript debugging


webvpn kcd debugging

listener
mus

webvpn listener debugging


webvpn MUS debugging

nfs
request

webvpn nfs debugging


webvpn request debugging

response
session

webvpn response debugging


webvpn session debugging

transformation
url

webvpn transformation debugging


webvpn url debugging

util
xml

webvpn util debugging


webvpn xml debugging

2014 Cisco and/or its affiliates. All rights reserved.

<cr>

61

SSL VPN TROUBLESHOOTING VIDEOS

2014 Cisco and/or its affiliates. All rights reserved.

63

DEBUG DAP TRACE


ASA(config)# debug dap trace
The DAP policy contains the following attributes:
------------------------------------------------1: action = continue
DAP_open: C9EEE930
DAP_add_CSD: csd_token = [4287F77A4F7347A553F4619C]
[ 0]: aaa.cisco.username = user2
[ 1]: aaa.cisco.tunnelgroup = DefaultWEBVPNGroup
dap_add_to_lua_tree:aaa["cisco"]["username"] = "user2";
dap_add_to_lua_tree:aaa["cisco"]["tunnelgroup"] = "DefaultWEBVPNGroup";
dap_clienttype_to_string(3) returns CLIENTLESS
dap_add_to_lua_tree:endpoint["application"]["clienttype"] = "CLIENTLESS";
dap_add_csd_data_to_lua:
endpoint.os.version = "Windows XP";
endpoint.os.servicepack = "2";
endpoint.location = "Default";
endpoint.protection = "secure desktop";
endpoint.fw["MSWindowsFW"] = {};
endpoint.fw["MSWindowsFW"].exists = "true;
64

2014 Cisco and/or its affiliates. All rights reserved.

64

Continuation of the debug dap


trace output

DEBUG DAP TRACE

endpoint.fw["MSWindowsFW"].description = "Microsoft Windows Firewall";


endpoint.fw["MSWindowsFW"].enabled = "true";
endpoint.av["McAfeeAV"] = {};
endpoint.av["McAfeeAV"].exists = "true";
endpoint.av["McAfeeAV"].description = "McAfee VirusScan Enterprise";
endpoint.av["McAfeeAV"].version = "7.0.0";
endpoint.av["McAfeeAV"].activescan = "true";
endpoint.av["McAfeeAV"].lastupdate = "132895";
endpoint.as["SpyBot"] = {};
endpoint.as["SpyBot"].exists = "true";
endpoint.as["SpyBot"].description = "Spybot - Search & Destroy 1.4";
endpoint.as["SpyBot"].version = "1.4";
endpoint.as["SpyBot"].activescan = "false";
endpoint.as["SpyBot"].lastupdate = "996895";
endpoint.enforce = "success";
Selected DAPs: McAfee-7,SpyBot

dap_request: memory usage = 19%


dap_process_selected_daps: selected 3 records
dap_aggregate_attr: rec_count = 3
DAP_close: C9EEE930
65

2014 Cisco and/or its affiliates. All rights reserved.

65

2014 Cisco and/or its affiliates. All rights reserved.

66

IPSec Debugs and Show Commands


omar-asa# debug crypto ?
ca

Set PKI debug levels

condition

Set IPSec/ISAKMP debug filters

engine

Set crypto engine debug levels

ike-common

Set IKE common debug levels

ikev1

Set IKEV1 debug levels

ikev2

Set IKEV2 debug levels

ipsec

Set IPSec debug levels

ss-api

Set Crypto Secure Socket API debug levels

vpnclient

Set EasyVPN client debug levels

2014 Cisco and/or its affiliates. All rights reserved.

67

IKEv2 Debug Commands


debugs specific for IKEv2

debug crypto ikev2 platform


Debugs ASA processing of IKEv2, not protocol specific exchanges.
This debug is useful for AAA and session management issues. Also to troubleshoot
the ASA cryptographic module performing encryption and decryption.
debug crypto ikev2 protocol
Debugs IKEv2 protocol specific exchanges.
debug crypto ikev2 timer

Debugs IKEv2 timer expiration. Useful when clients are complaining that their
connection is being timed-out too often.
Note: debug crypto ike-common can be used for both IKEv1 and IKEv2

68

2014 Cisco and/or its affiliates. All rights reserved.

68

show crypto ipsec sa


ciscoasa(config)# show crypto ipsec sa
interface: outside
Crypto map tag: def, local addr: 10.132.0.17

local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)


remote ident (addr/mask/prot/port): (172.20.0.21/255.255.255.255/0/0)
current_peer: 172.20.0.21
dynamic allocated peer ip: 10.135.1.5

#pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0


#pkts decaps: 1145, #pkts decrypt: 1145, #pkts verify: 1145
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 2, #pre-frag failures: 1, #fragments created: 10
#PMTUs sent: 5, #PMTUs rcvd: 2, #decapstulated frags needing reassembly: 1
#send errors: 0, #recv errors: 0

2014 Cisco and/or its affiliates. All rights reserved.

69

show crypto ipsec sa (cont.)


local crypto endpt.: 10.132.0.17, remote crypto endpt.: 172.20.0.21
path mtu 1500, ipsec overhead 60, media mtu 1500
current outbound spi: DC15BF68
inbound esp sas:
spi: 0x1E8246FC (511854332)
transform: esp-3des esp-md5-hmac
in use settings ={L2L, Transport, Manual key, (OSPFv3), }
slot: 0, conn_id: 3, crypto-map: def
sa timing: remaining key lifetime (sec): 548

IV size: 8 bytes
replay detection support: Y
outbound esp sas:
spi: 0xDC15BF68 (3692412776)

transform: esp-3des esp-md5-hmac


2014 Cisco and/or its affiliates. All rights reserved.

70

show crypto ipsec sa (cont.)


transform: esp-3des esp-md5-hmac
in use settings ={L2L, Transport, Manual key, (OSPFv3), }
slot: 0, conn_id: 3, crypto-map: def
sa timing: remaining key lifetime (sec): 548
IV size: 8 bytes
replay detection support: Y
Crypto map tag: def, local addr: 10.132.0.17
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)

2014 Cisco and/or its affiliates. All rights reserved.

71

2014 Cisco and/or its affiliates. All rights reserved.

72

AnyConnect Diagnostics and Reporting Tool


useful for troubleshooting AnyConnect installation and connection problems

To Launch DART go to
the Status Overview
Tab and click on
Diagnostics
1
73

2014 Cisco and/or its affiliates. All rights reserved.

73

DART Wizard
Under Bundle Creation Option, select Default or Custom. The Default option includes the typical log files and
diagnostic information. DARTBundle.zip is saved to the local desktop. If you choose Custom, the DART wizard
allows you to specify where and what files want to include in the bundle.

74

2014 Cisco and/or its affiliates. All rights reserved.

74

DART Wizard
continued

75

2014 Cisco and/or its affiliates. All rights reserved.

75

DART Bundled Files


Advanced Detailed Logs for each Installed Module in AnyConnect
DART BUNDLE SUMMARY
Username:
Time:

unknown (user is offline, or username was not specified in Request)


Tue Apr 05 17:12:17 2011

OS:
OS username:
Upload URL:
DART Mode:
Bundle on client computer:

Win7 : WinNT 6.1.7600


omar
None (offline mode)
User-Initiated/Offline Mode
C:\Users\omar\Desktop\DARTBundle_0405_1353.zip

=============================================================================================================================================
Cisco AnyConnect Secure Mobility Client:
Files Included in Bundle:
ID
Filename
Description
Truncate? Final Size Orig. Size
---------------------------------------------------------------------------------------------------------------------------ac-install
update_pre3.0.txt
AnyConnect install logs. Includes web
No
10 bytes
10 bytes
and standalone install logs
ac-install
anyconnect-win-2.3.0254-web
AnyConnect install logs. Includes web
No
322.35K
322.35K
-deploy-k9-install-22203701
and standalone install logs
062010.log
ac-install
update.txt
AnyConnect install logs. Includes web
No
10 bytes
10 bytes
and standalone install logs
ac-install
VPNManifest.dat
AnyConnect install logs. Includes web
No
181 bytes
181 bytes
and standalone install logs
ac-install
AnyConnectLocalPolicy.xml
AnyConnect install logs. Includes web
No
589 bytes
589 bytes
and standalone install logs
ac-install
UpdateHistory_20110405_1244
AnyConnect install logs. Includes web
No
705 bytes
705 bytes
00_log.txt
and standalone install logs
ac-logs
AnyConnect_pre3.0.txt
AnyConnect application logs
No
3.62M
3.62M
ac-logs
AnyConnect.txt
AnyConnect application logs
No
227.40K
227.40K
ac-logs
AnyConnect.evtx
AnyConnect application logs
No
1.06M
1.06M
ac-profile
CALO.xml
AnyConnect Profile
No
1.46K
1.46K
ac-profile
AnyConnectProfile.xsd
AnyConnect Profile
No
93.22K
93.22K
global-preferenc
preferences_global.xml
AnyConnect Global Preferences
No
546 bytes
546 bytes
es
user-preferences
preferences.xml
AnyConnect User Preferences
No
590 bytes
590 bytes
va-runtime
setupapi.app.log
Virtual Adapter runtime logs
No
320.88K
320.88K
va-runtime
setupapi.dev.log
Virtual Adapter runtime logs
No
9.70M
9.70M
2014 Cisco and/or its affiliates. All rights reserved.
----------------------------------------------------------------------------------------------------------------------------

MANY, MANY, MANY, MANY more


76

76

ANYCONNECT STATISTICS VIDEO

Thank you.

Potrebbero piacerti anche