cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
804
Views
0
Helpful
2
Replies

Hairpinned VPN clients unable to access internal LAN

Vindemiatrix
Level 1
Level 1

My legacy IPSEC and IKEv2 clients are able to connect and browse the internet via hairpinning through the ASA. However, the clients are unable to connect to the 10.0.0.0 network hosts attached to the inside interface. I added an ACL (VPN-LAN-access) and applied to a vpn-filter but I am wondering if it might be a NAT issue instead?

!

ASA Version 8.4(5)

!

hostname ciscoasa

enable password  encrypted

passwd encrypted

names

!

interface Ethernet0/0

switchport access vlan 2

!

interface Ethernet0/1

!

interface Ethernet0/2

!

interface Ethernet0/3

!

interface Ethernet0/4

!

interface Ethernet0/5

!

interface Ethernet0/6

!

interface Ethernet0/7

!

interface Vlan1

nameif inside

security-level 100

ip address 10.0.0.1 255.255.255.0

!

interface Vlan2

nameif outside

security-level 0

ip address dhcp setroute

!

boot system disk0:/asa845-k8.bin

ftp mode passive

same-security-traffic permit intra-interface

object network obj_any

subnet 0.0.0.0 0.0.0.0

object network VPN_NETWORK

subnet 192.168.1.0 255.255.255.192

object network LAN

subnet 10.0.0.0 255.255.255.0

access-list dynamic-filter_acl extended permit ip any any

access-list VPN-LAN-access extended permit ip 192.168.1.0 255.255.255.0 10.0.0.0 255.255.255.0

pager lines 24

logging enable

logging asdm informational

mtu inside 1500

mtu outside 1500

ip local pool VPN-DHCP-POOL 192.168.1.10-192.168.1.50

icmp unreachable rate-limit 1 burst-size 1

asdm image disk0:/asdm-702.bin

no asdm history enable

arp timeout 14400

no arp permit-nonconnected

nat (inside,outside) source static any any destination static VPN_NETWORK VPN_NETWORK no-proxy-arp route-lookup

!

object network obj_any

nat (inside,outside) dynamic interface

!

nat (outside,outside) after-auto source dynamic VPN_NETWORK interface

timeout xlate 3:00:00

timeout pat-xlate 0:00:30

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00

timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00

timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute

timeout tcp-proxy-reassembly 0:01:00

timeout floating-conn 0:00:00

dynamic-access-policy-record DfltAccessPolicy

user-identity default-domain LOCAL

aaa authentication http console LOCAL

aaa authentication ssh console LOCAL

http server enable 4443

http 10.0.0.0 255.255.255.0 inside

no snmp-server location

no snmp-server contact

snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart

no sysopt connection permit-vpn

crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-128-SHA esp-aes esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-128-MD5 esp-aes esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-192-MD5 esp-aes-192 esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-128-SHA-TRANS esp-aes esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-128-SHA-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-AES-128-MD5-TRANS esp-aes esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-128-MD5-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-AES-192-SHA-TRANS esp-aes-192 esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-192-SHA-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-AES-192-MD5-TRANS esp-aes-192 esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-192-MD5-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-AES-256-SHA-TRANS esp-aes-256 esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-AES-256-SHA-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-AES-256-MD5-TRANS esp-aes-256 esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-AES-256-MD5-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-3DES-SHA esp-3des esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-3DES-SHA-TRANS esp-3des esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-3DES-SHA-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-3DES-MD5-TRANS esp-3des esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-3DES-MD5-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-DES-SHA esp-des esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-DES-MD5 esp-des esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-DES-SHA-TRANS esp-des esp-sha-hmac

crypto ipsec ikev1 transform-set ESP-DES-SHA-TRANS mode transport

crypto ipsec ikev1 transform-set ESP-DES-MD5-TRANS esp-des esp-md5-hmac

crypto ipsec ikev1 transform-set ESP-DES-MD5-TRANS mode transport

crypto ipsec ikev2 ipsec-proposal DES

protocol esp encryption des

protocol esp integrity sha-1 md5

crypto ipsec ikev2 ipsec-proposal 3DES

protocol esp encryption 3des

protocol esp integrity sha-1 md5

crypto ipsec ikev2 ipsec-proposal AES

protocol esp encryption aes

protocol esp integrity sha-1 md5

crypto ipsec ikev2 ipsec-proposal AES192

protocol esp encryption aes-192

protocol esp integrity sha-1 md5

crypto ipsec ikev2 ipsec-proposal AES256

protocol esp encryption aes-256

protocol esp integrity sha-1 md5

crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set pfs group1

crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set ikev1 transform-set ESP-AES-256-SHA

crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set ikev2 ipsec-proposal AES256 AES192 AES 3DES DES

crypto map outside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP

crypto map outside_map interface outside

crypto map inside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP

crypto map inside_map interface inside

crypto ca trustpoint TrustPoint0

enrollment self

subject-name CN=ciscoasa

crl configure

crypto ca certificate chain TrustPoint0

certificate xyz

  quit

crypto ikev2 policy 1

encryption aes-256

integrity sha

group 5 2

prf sha

lifetime seconds 86400

crypto ikev2 policy 10

encryption aes-192

integrity sha

group 5 2

prf sha

lifetime seconds 86400

crypto ikev2 policy 20

encryption aes

integrity sha

group 5 2

prf sha

lifetime seconds 86400

crypto ikev2 policy 30

encryption 3des

integrity sha

group 5 2

prf sha

lifetime seconds 86400

crypto ikev2 policy 40

encryption des

integrity sha

group 5 2

prf sha

lifetime seconds 86400

crypto ikev2 enable outside client-services port 443

crypto ikev2 remote-access trustpoint TrustPoint0

crypto ikev1 enable outside

crypto ikev1 policy 1

authentication pre-share

encryption 3des

hash sha

group 2

lifetime 86400

telnet timeout 5

ssh 10.0.0.0 255.255.255.0 inside

ssh timeout 30

ssh version 2

ssh key-exchange group dh-group1-sha1

console timeout 0

dhcp-client client-id interface outside

dhcpd auto_config outside

!

dhcpd address 10.0.0.100-10.0.0.131 inside

dhcpd dns 8.8.8.8 8.8.4.4 interface inside

dhcpd option 3 ip 10.0.0.1 interface inside

dhcpd enable inside

!

threat-detection basic-threat

threat-detection statistics access-list

no threat-detection statistics tcp-intercept

dynamic-filter enable interface outside classify-list dynamic-filter_acl

dynamic-filter drop blacklist interface outside

ssl encryption 3des-sha1 des-sha1 rc4-md5 aes128-sha1 aes256-sha1

ssl trust-point TrustPoint0 outside

webvpn

enable outside

anyconnect image disk0:/anyconnect-win-3.1.04063-k9.pkg 1

anyconnect profiles IKEv2-VPN_client_profile disk0:/IKEv2-VPN_client_profile.xml

anyconnect enable

tunnel-group-list enable

group-policy EdgeAccess internal

group-policy EdgeAccess attributes

dns-server value 8.8.8.8 8.8.4.4

vpn-tunnel-protocol ikev1

group-policy DfltGrpPolicy attributes

vpn-tunnel-protocol ikev1 ikev2 ssl-clientless

group-policy GroupPolicy_IKEv2-VPN internal

group-policy GroupPolicy_IKEv2-VPN attributes

wins-server none

dns-server value 8.8.8.8

vpn-filter value VPN-LAN-access

vpn-tunnel-protocol ikev2 ssl-client

default-domain none

webvpn

  anyconnect profiles value IKEv2-VPN_client_profile type user

group-policy GroupPolicy1 internal

group-policy GroupPolicy1 attributes

vpn-tunnel-protocol l2tp-ipsec

username atlas password xyz encrypted privilege 15

tunnel-group EdgeAccess type remote-access

tunnel-group EdgeAccess general-attributes

address-pool VPN-DHCP-POOL

default-group-policy EdgeAccess

tunnel-group xyz ipsec-attributes

ikev1 pre-shared-key xyz

tunnel-group IKEv2-VPN type remote-access

tunnel-group IKEv2-VPN general-attributes

address-pool VPN-DHCP-POOL

default-group-policy GroupPolicy_IKEv2-VPN

tunnel-group IKEv2-VPN webvpn-attributes

group-alias IKEv2-VPN enable

!

class-map inspection_default

match default-inspection-traffic

!

!

policy-map type inspect dns preset_dns_map

parameters

  message-length maximum client auto

  message-length maximum 512

policy-map global_policy

class inspection_default

  inspect dns preset_dns_map

  inspect ftp

  inspect h323 h225

  inspect h323 ras

  inspect ip-options

  inspect netbios

  inspect rsh

  inspect rtsp

  inspect skinny 

  inspect esmtp

  inspect sqlnet

  inspect sunrpc

  inspect tftp

  inspect sip 

  inspect xdmcp

!

service-policy global_policy global

privilege show level 0 mode configure command filter

privilege cmd level 0 mode configure command filter

privilege cmd level 0 mode config-group-webvpn command filter

privilege cmd level 0 mode config-username-webvpn command filter

prompt hostname context

no call-home reporting anonymous

: end

2 Replies 2

Jouni Forss
VIP Alumni
VIP Alumni

Hi,

Not really sure if the NAT is the reason it aint working. Though I usually configure it a different way for just the specific networks

nat (inside,outside) source static LAN LAN destination static VPN_NETWORK VPN_NETWORK

You could always check with "packet-tracer" while a host is connected with VPN Client what it says.

packet-tracer input outside tcp 12345

Could atleast see if any ASA configuration/rule drop the traffic.

Ofcourse it might be possible that there is some problem with the actual host on either the LAN or the one using VPN Client.

You dont need an VPN Filter ACL on the VPN configuration unless you specifically want to limit some traffic. The default setting on the ASA is that it will allow all connections coming from a VPN connection. If you wanted to disable that setting you would have to issue "no sysopt connection permit-vpn" after which you would need to allow/deny traffic in the ACL attached to the "outside" interface in the direction "in".

- Jouni

Thanks for the quick response.

I made a few changes per you comments. Adjusted the NAT statement, enabled the sysopt option although I would prefer to keep it off and use ACL's as I *think* that would be more secure?, and disable the vpn-filter for the ACL. Hairpinning still works but still unable to get to the internal clients per the trace below.

sysopt connection permit-vpn

no vpn-filter value VPN-LAN-access

no nat (inside,outside) source static any any destination static VPN_NETWORK VPN_NETWORK no-proxy-arp route-lookup

nat (inside,outside) source static LAN LAN destination static VPN_NETWORK VPN_NETWORK no-proxy-arp route-lookup

Per the output below, the question is how do I prevent the traffic from being dropped in phase 3?

ciscoasa(config)# packet-tracer input outside tcp 192.168.1.11 10000 10.0.0.10$

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

Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (inside,outside) source static LAN LAN destination static VPN_NETWORK VPN_NETWORK no-proxy-arp route-lookup
Additional Information:
NAT divert to egress interface inside
Untranslate 10.0.0.101/3389 to 10.0.0.101/3389

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

Result:
input-interface: outside
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