IOS Easy VPN Server


 


Table of Contents
Course Files
Transcript
  • 1 Introduction Closed Caption 0h 37m
    2 CCIE Security Preparation Resources Closed Caption 0h 50m
    3 ASA Overview Closed Caption 0h 37m
    4 Basic ASA Initialization Closed Caption 1h 02m
    5 ASA Routing Closed Caption 0h 37m
    6 ASA Reliable Static Routing Closed Caption 0h 20m
    7 ASA Access Control Lists (ACLs) Closed Caption 0h 41m
    8 ASA Modular Policy Framework (MPF) Overview Closed Caption 0h 53m
    9 ASA Modular Policy Framework (MPF) Configuration Closed Caption 0h 51m
    10 ASA Advanced TCP Inspection with MPF Closed Caption 0h 40m
    11 ASA Advanced Application Inspection with MPF Closed Caption 0h 36m
    12 ASA Quality of Service (QoS) Closed Caption 0h 30m
    13 ASA Network Address Translation (NAT) Part 1 Closed Caption 0h 50m
    14 ASA Network Address Translation (NAT) Part 2 Closed Caption 0h 30m
    15 ASA Transparent Firewall Overview Closed Caption 0h 25m
    16 ASA Transparent Firewall Configuration Closed Caption 0h 43m
    17 ASA ARP Inspection with Transparent Firewall Closed Caption 0h 21m
    18 ASA Multiple Context Mode Overview Closed Caption 0h 42m
    19 ASA Multiple Context Mode Configuration Closed Caption 0h 59m
    20 ASA Redundant Interfaces Closed Caption 0h 22m
    21 ASA Failover Overview Closed Caption 0h 19m
    22 ASA Active/Standby Failover Routed Firewall Configuration Closed Caption 0h 29m
    23 ASA Active/Standby Failover Transparent Firewall Configuration Closed Caption 0h 17m
    24 ASA Active/Active Failover Routed Firewall Configuration Closed Caption 0h 37m
    25 ASA Multiple Context Transparent Firewall Configuration Closed Caption 0h 29m
    26 ASA Active/Active Failover Transparent Firewall Configuration Closed Caption 0h 29m
    27 IOS Access Control Lists (ACLs) Closed Caption 0h 23m
    28 IOS Time Based ACLs Closed Caption 0h 13m
    29 IOS Lock & Key Security with Dynamic ACLs Closed Caption 0h 24m
    30 IOS Reflexive ACLs Closed Caption 0h 44m
    31 IOS TCP Intercept and Content Based Access Control (CBAC) Closed Caption 0h 39m
    32 Zone Based Policy Firewall Overview Closed Caption 0h 26m
    33 Zone Based Policy Firewall Configuration Closed Caption 0h 44m
    34 ZBPF Self Zone & ZBPF Exceptions Closed Caption 0h 48m
    35 Port to Application Mapping (PAM) Closed Caption 0h 32m
    36 ZBPF Parameter Tuning Closed Caption 0h 32m
    37 ZBPF Application Inspection Closed Caption 0h 27m
    38 IOS Transparent Firewall Closed Caption 0h 28m
    39 IPsec Overview Closed Caption 0h 37m
    40 IOS IPsec LAN-to-LAN Configuration Closed Caption 0h 58m
    41 IPsec Troubleshooting Closed Caption 0h 42m
    42 GRE over IPsec, IPsec Profiles, & VTIs Closed Caption 0h 51m
    43 ASA IPsec Overview Closed Caption 0h 24m
    44 ASA IPsec LAN-to-LAN Configuration Closed Caption 0h 20m
    45 Certificate Authority (CA) Overview Closed Caption 0h 16m
    46 IOS & ASA LAN-to-LAN IPsec with Certificates Closed Caption 0h 57m
    47 Easy VPN Overview Closed Caption 0h 12m
    48 IOS Easy VPN Server Closed Caption 1h 10m
    49 IOS Easy VPN Client Closed Caption 0h 30m
    50 IOS Easy VPN with Dynamic VTIs, ISAKMP Profiles Closed Caption 0h 49m
    51 ASA Easy VPN Server Closed Caption 0h 51m
    52 ASA Easy VPN Server & IOS Easy VPN Client Closed Caption 0h 17m
    53 ASA Clientless & AnyConnect SSL VPN Closed Caption 1h 04m
    54 DMVPN Closed Caption 1h 05m
    55 IPS Overview, Promiscuous Mode & SPAN Closed Caption 0h 43m
    56 IPS Promiscuous Mode & RSPAN Closed Caption 0h 28m
    57 IPS Blocking Devices & Custom Signatures Closed Caption 0h 50m
    58 IPS Inline Mode, VLAN Pairing Closed Caption 0h 15m
    59 IPS Virtual Sensors and Signature Engines Closed Caption 0h 16m
    60 AAA Overview, Local AAA, & Role Based CLI Closed Caption 0h 51m
    61 RADIUS, TACACS+, & Cisco Secure ACS Configuration Closed Caption 0h 51m
    62 RADIUS & TACACS+ Exec Authorization & Accounting Closed Caption 0h 39m
    63 TACACS+ Command Accounting Closed Caption 0h 30m
    64 RADIUS & TACACS+ Enable Authentication Closed Caption 0h 14m
    65 IOS Authentication Proxy Closed Caption 0h 33m
    Total Duration   39h 19m
  • 0:00:13 In our next section we are going to look at running the easy VPN server on the IOS routers
    0:00:19 which again the first thing that we would want to know
    0:00:21 is where is this located
    0:00:23 from the documentation in the configuration guides
    0:00:28 we will see that there is a lot of individual steps that we need to go through
    0:00:31 in order to implement this particular configuration
    0:00:34 and there is multiple different variation whether we are using the Dynamic crypto map
    0:00:39 or whether we are using the Dynamic Virtual Tunnel Interfaces or the DVTIs
    0:00:46 in either case both of these are going to be under products
    0:00:50 IOS, regular IOS
    0:00:53 12.4, 12.4T
    0:00:56 configuration guides
    0:00:58 then under security we have secure connectivity
    0:01:05 then we have easy vpn
    0:01:08 two portions of documentation, the easy VPN remote, this is the
    0:01:11 client configuration
    0:01:14 then the easy VPN server
    0:01:16 obviously is going to be the server configuration
    0:01:21 Now when you look at this documentation, there is generally two portions that you would want to
    0:01:26 to go through
    0:01:28 the one is how to configure the easy VPN server
    0:01:32 which is going to give us the step by step task list
    0:01:35 of what is required
    0:01:37 and what is optional
    0:01:39 where mainly we can see it says we need to configure AAA in order to do our policy lookup
    0:01:44 we need to configure the mode configuration and extended authentication options
    0:01:51 we need to define the group policy information
    0:01:53 for the mode configuration push
    0:01:57 So this is going to be the
    0:01:58 the per group authentication
    0:02:04 then the vast majority of these other particular options
    0:02:08 we don't necessarily have to configure them but we can
    0:02:12 so this would be one way that we can piece the configuration together
    0:02:15 is to go through the individual task list and look at what is required what is optional
    0:02:19 and look at the possible configurations
    0:02:21 the other way would be to go towards the end
    0:02:24 and go to the configuration examples
    0:02:28 we will see both for the IOS and the ASA
    0:02:31 generally this is one of the best way to piece the configuration together
    0:02:35 just copy the example we have here
    0:02:37 and then we can change it around to match the particular
    0:02:41 configuration design that we need
    0:02:45 So lets take this input this in to notepad
    0:02:50 we will see that a lot of these configuration is similar to
    0:02:53 previous lan to lan vpn
    0:02:56 configurations that we did
    0:02:58 where we have the same type of configuration
    0:03:00 for the isakmp policy
    0:03:03 where we have our authentication, we have our hash
    0:03:06 the Diffy Halman group
    0:03:08 the encryption
    0:03:11 and you do have to be careful with this, because depending up on the individual client or version
    0:03:17 some of them will support different types of Diffy Halman groups
    0:03:21 or different types of authentication
    0:03:23 or some of the older ones may not support group 5
    0:03:26 some of the older ones may not support AES
    0:03:29 and likewise you may see that some of them do not support group 1
    0:03:33 for the Diffy Halman exchange
    0:03:36 Now when we actually configure this and then go through the debug
    0:03:39 of debug crypto isakmp on the server
    0:03:42 one thing we will see that is different
    0:03:44 when we are using the easy VPN server and the client
    0:03:48 is that they are going to be running in aggressive mode
    0:03:52 as opposed to main mode
    0:03:54 for phase I negotiation
    0:03:56 which means that we are essentially going to offer
    0:03:59 all these different possible policies
    0:04:01 from the client to the server
    0:04:04 then the server is going to respond with which particular policy
    0:04:06 that is acceptable
    0:04:09 So when we look at the debug output, we will see that its generally much more
    0:04:13 output to see when we are looking at the easy VPN server and client
    0:04:17 versus the lan to lan tunnel
    0:04:20 So would be a good idea if you are going to debug this
    0:04:23 you probably want to send this to the buffer as opposed to sending this to the console
    0:04:30 So lets start to build this configuration
    0:04:32 based on the example and the documentation
    0:04:35 we know that one of the first things that we need is going to be the isakmp policy
    0:04:40 So we will say that this is isakmp
    0:04:42 policy 10
    0:04:44 we will use the md5 hash, we will use pre shared authentication
    0:04:48 we will use group number 2
    0:04:51 and we will say the encryption
    0:04:53 is going to be 3DES
    0:04:58 since we are now using pre shared authentication
    0:05:02 it then means that we need to define what is the username and password for phase I
    0:05:09 in the case of the vpn client configuration
    0:05:12 the phase I authentication is the group
    0:05:15 authentication
    0:05:17 and this is what the crypto isakmp
    0:05:19 client configuration group does
    0:05:23 the name of this group here
    0:05:26 is the value
    0:05:27 that we are going to be putting in the VPN client side
    0:05:32 So on the test pc, this is what goes under the group
    0:05:35 username and the group authentication
    0:05:39 So I will say that this is the easy VPN
    0:05:43 _group
    0:05:45 and the key or the password is going to be cisco
    0:05:50 we are going to additionally see some of the other options here like
    0:05:52 the DNS server the WIN server, the domain name
    0:05:57 these are not going to be required options
    0:05:59 we could put them in there, but we don't necessarily have to
    0:06:02 Now the once that I do want to have in there
    0:06:05 would be this pool
    0:06:08 which I will say, this is the easy-vpn_pool
    0:06:13 this is going to define what is the ip address that the client is issued
    0:06:18 once the phase 1.5 negotiation
    0:06:21 through remote configuration and extended authentication has completed
    0:06:25 so the pool is being called from client configuration group
    0:06:28 then towards the end we should see that the pool is defined
    0:06:34 where they have ip local pool
    0:06:36 I will say this is the
    0:06:38 easyVPN_pool
    0:06:41 and the particular subnet that
    0:06:43 I want to define
    0:06:49 we will specify as 172.16.255.0/24
    0:06:59 So once the VPN client attaches
    0:07:02 router3 to vpn server is then going to allocate it an address from its particular pool
    0:07:08 So we will change this pool around to say that
    0:07:10 it will be the 172.16.255.1
    0:07:15 through 172.16.255.254
    0:07:21 and lets move this up towards the
    0:07:24 the client configuration groups that we can see exactly where this fits in
    0:07:30 So we have the pool there
    0:07:32 the access list is going to define the split tunneling policy
    0:07:37 which controls what traffic should go over the VPN
    0:07:40 and which traffic should be sent in the clear
    0:07:44 if I do not define the access list here
    0:07:47 then all traffic
    0:07:48 that the VPN traffic sends is automatically going to be sent over the tunnel
    0:07:54 Now this configuration can get a little bit confusing
    0:07:58 for the access list logic
    0:08:00 but the point to remember here is that the access list is from the perspective of the server
    0:08:05 not from the perspective of the client
    0:08:09 So lets say for this particular design that once the test pc connects
    0:08:13 I wanted to send over the tunnel
    0:08:16 only traffic that is going to 172.16.34
    0:08:21 and 172.16.4.0/24
    0:08:26 this means that in the split tunneling acl
    0:08:30 from router3's perspective who again is the server
    0:08:36 this is going to be traffic that is coming from the ip source
    0:08:40 172.16.34.0
    0:08:45 going to anywhere
    0:08:48 and likewise from 172.16.4.0
    0:08:52 going to anywhere
    0:08:57 this means that from the access list syntax
    0:08:59 where I am specifying acl 199 here
    0:09:02 I want to say that this is going to be traffic that is coming from
    0:09:07 172.16.34.0
    0:09:10 and 172.16.4.0
    0:09:17 So its the source not the destination
    0:09:20 I could be a little bit less specific here
    0:09:23 I could say that the
    0:09:27 acl is going to be anything that start with 172.16
    0:09:31 what this will ultimately control
    0:09:33 is what are the static routes
    0:09:36 that are assigned to the vpn client
    0:09:40 So once the vpn client connects, then we go to the command line and look at the route print output
    0:09:45 we should see that its going to have two new static routes installed
    0:09:49 one to 172.16.34.0/24
    0:09:53 and one for 172.16.4.0/24
    0:10:04 okay, so now we have the address pool, thats going to be assigned
    0:10:08 we have the access list that specifies what type of traffic is going to go over the tunnel
    0:10:15 next thing we need to figure out how are we actually going to authenticate the individual user
    0:10:21 with the extended authentication
    0:10:23 we can either do this locally
    0:10:26 or we could do this via RADIUS or TACACS through AAA
    0:10:31 for this particular example we are going to do it locally
    0:10:34 we will come back later in our
    0:10:36 identity management sections and talk about how to send this to RADIUS
    0:10:40 and also how to get this individual attributes to RADIUS
    0:10:44 like in address pool based on the username and password
    0:10:48 or a split tunneling acl based on the extended authentication
    0:10:55 so if we look at the RADIUS configuration or the AAA configuration, I should say
    0:11:00 we have AAA enabled
    0:11:02 a type of authentication and a type of authorization
    0:11:07 where login authentication is
    0:11:09 just like we would have if we were trying to telnet into the router or trying to ssh into the route
    0:11:15 but network authorization
    0:11:17 this one is going to be specifically
    0:11:19 for the easy VPN client configuration
    0:11:23 So similar to if you were to have, like a ppp dialup configuration
    0:11:27 that would be network authorization
    0:11:31 I am going to say that these are called
    0:11:34 lets call this easyVPN
    0:11:37 easyVPN_AAA
    0:11:40 and we will say these go to the local Database
    0:11:46 easyvpn_aaa
    0:11:51 Now since I am using the local database, this is then going to imply
    0:11:54 that I need a username and password, so we will say username cisco
    0:11:58 password cisco
    0:12:04 next we have the
    0:12:06 crypto transform set, this is going to be our phase II options
    0:12:10 I will say here
    0:12:12 we can use what they have listed, it says DES and SHA
    0:12:16 this is then called from a Dynamic crypto map
    0:12:21 that is setting this transform set
    0:12:24 and lets put this in capitals, just to make it a little bit easier to read
    0:12:31 so the dynamic crypto map is named mode
    0:12:34 and its using sequence number one
    0:12:36 lets make this a little bit clear, lets say that this is the dynamic _map
    0:12:41 sequence number 1
    0:12:43 where then the dynamic map
    0:12:46 is going to called from the static crypto map
    0:12:51 So in their example, they are not really making it that
    0:12:53 clear here, because the dynamic map and the static map were named the same thing
    0:12:57 both of them were named mode
    0:13:01 So to make this a little bit easier to read, we will say that this is the
    0:13:06 static_map
    0:13:10 which we can see is defining not only
    0:13:13 the regular crypto maps parameters
    0:13:16 but is defining the client
    0:13:19 authorization and the client authentication parameters
    0:13:24 where the list here, these are the AAA groups that we define
    0:13:29 in this case these were called the easy VPN
    0:13:33 _aaa
    0:13:38 So as you could see, there is a lot of additional steps here
    0:13:41 as compared to, just the lan to lan VPN
    0:13:44 so its a real good idea to use the documentation examples
    0:13:46 to make sure that you are not leaving out an individual step
    0:13:51 when we take a look at the Dynamic Virtual Tunnel Interfaces or the DVTIs
    0:13:56 its a little bit more straight forward now with that logic
    0:13:59 but with the crypto maps we need not only the static maps
    0:14:02 but also the dynamic maps
    0:14:06 So the dynamic map then is being referenced from the static map
    0:14:16 then unless the, we have this applied to
    0:14:19 the interface
    0:14:23 So lets review this again real quick
    0:14:26 first thing we have is our normal phase I parameters
    0:14:29 so this policy, we could have multiple ones
    0:14:31 just depends on what the individual vpn client is going to support
    0:14:35 Now we have our specific phase 1.5 options
    0:14:40 so what is the group name
    0:14:42 what is the group password
    0:14:45 once the group authentication occurs
    0:14:50 then we need to do the extended authentication
    0:14:55 we are saying username cisco password cisco
    0:14:57 is being checked via local
    0:15:00 authentication and local network authorization
    0:15:04 this is then what is being referred to
    0:15:06 from the static crypto map
    0:15:09 the authentication should use the group easyvpn_aaa
    0:15:14 the same with the isakmp authorization
    0:15:20 we are then assigning the client an ip address
    0:15:24 that is coming from this ip address pool called easyvpn_pool
    0:15:29 likewise we could forward this to an external DHCP server
    0:15:35 access list 199 is then specifying the split tunnelling
    0:15:40 which is essentially saying that from the vpn client's perspective
    0:15:44 any traffic going to 172.16.34.0
    0:15:49 or 172.16.4.0
    0:15:51 thats whats going to be sent over the tunnel
    0:15:56 then we have our additional phase II parameters, which are going to be the transform set
    0:16:01 which is called from the dynamic crypto map
    0:16:04 which is called from the static crypto map
    0:16:07 then finally the static crypto map, this is whats going to be applied to the actual interface
    0:16:14 Now notice that one of the other key points here is the different
    0:16:17 with the easy VPN server configuration versus the static lan to lan tunnel
    0:16:24 that the crypto map does not define the ipsec peer
    0:16:29 nor is it to find the proxy acl
    0:16:33 and the reason why is that with the easy vpn server
    0:16:37 we do not know what the initiator's ip address is going to be
    0:16:41 before the tunnel is started
    0:16:44 and thats what the crypto dynamic map is doing for
    0:16:48 its allowing us to bind this to the interface
    0:16:50 without having to use the set peer command
    0:16:53 or without having to match the address for the acl
    0:16:58 Now the proxy acl essentially is
    0:17:00 changed into the split tunnelling acl
    0:17:04 but the key is that, the any here
    0:17:07 this is not known, where we are actually going to send the traffic
    0:17:10 until the VPN client
    0:17:12 actually initiates the tunnel
    0:17:15 So now lets go on and apply this onto router3, which is the server
    0:17:23 the particular interface that we are going to be using
    0:17:26 for the crypto map, if we take a look at the topology
    0:17:29 is this serial1/0.23
    0:17:37 So lets see if this syntax is correct here
    0:17:48 so everything looks good from their example
    0:17:50 then last one we have on serial1/0.23
    0:17:57 is to apply the static crypto map
    0:18:06 we can see now isakmp is automatically enabled
    0:18:08 next thing we are going to look at is the debug crypto isakmp
    0:18:13 So I want to see all of the phase I negotiation parameters
    0:18:17 additionally I am going to send this log to the buffer, lets say logging buffer7
    0:18:23 and I am going make the log buffer size very large
    0:18:27 because this is going to generate a lot of output
    0:18:30 and we will say clear log
    0:18:38 So our next step now would be to configure the test pc
    0:18:41 the actual client configuration here is going to pretty straight forward, the only thing we need to apply
    0:18:48 is to tell the client, what is the service address that we want to initiate the connection to
    0:18:53 what is the group username and password
    0:18:56 and then what is the extended authentication username and password
    0:18:59 once we actually establish the tunnel
    0:19:04 so now from the windows machine
    0:19:08 lets go to the VPN client
    0:19:12 and we are going to start a new connection
    0:19:23 from here we see the group
    0:19:24 authentication name and password
    0:19:26 this is what we configured as the
    0:19:29 crypto ipsec configuration group
    0:19:33 which again is the
    0:19:34 the client configuration group, the isakmp client configuration group, I should say
    0:19:39 So this username here
    0:19:42 is what goes in the group name
    0:19:45 So we have the easyvpn_group
    0:19:51 and the password is what we define is essentially the pre shared key
    0:19:56 which is defined here
    0:19:59 I now need to know whats the peer address that we are connecting to
    0:20:03 which in this case is going to be the
    0:20:05 200.0.23.3 address
    0:20:10 so the outside interface of router3
    0:20:14 and the connection entry or the description this could be any
    0:20:17 value that we want, I will say r3
    0:20:22 if we look at the other options
    0:20:24 normally by default the vpn client is going to try to do ipsec over udp
    0:20:30 for transparent tunneling
    0:20:32 we can also configure it to do tunnelling over tcp
    0:20:37 and we will see exactly, why we would want to do that here
    0:20:40 its going to depend on whether we are going through a network address translation
    0:20:44 or whether we are going through any type of stateful
    0:20:47 or stateless firewall filtering
    0:20:52 but otherwise from the client's configuration, this is pretty much all we need to do
    0:20:56 just to find the address here
    0:20:58 the group name and the group password
    0:21:03 Now once we double click on the entry
    0:21:06 assuming that everything is correct in phase I on the server
    0:21:11 we should see that the user name
    0:21:14 and password box is going to show up
    0:21:17 this here is for the extended authentication
    0:21:22 what this now means, if we were to look back at the command line of the router3
    0:21:27 is that phase I is now complete
    0:21:33 So anytime you are connecting to vpn client
    0:21:35 and you get to this point where the username and password show up
    0:21:39 it means that phase I was successful
    0:21:41 and now you are proceeding on to phase 1.5, for the extended authentication
    0:21:48 before I actually put the username and the password in
    0:21:51 lets take a look at the debug on router3
    0:21:57 where it says we received a packet from the
    0:22:00 client destination port is 500
    0:22:03 which is the isakmp
    0:22:06 port, so it says we are starting a new undebug here
    0:22:10 says we are now trying to start a new isakmp sa
    0:22:23 next it says, we are going to start checking our isakmp policies
    0:22:28 Now we will see here
    0:22:30 different that what we saw in lan to lan tunnels
    0:22:32 is that vpn client is going to offer tonnes and tonnes
    0:22:37 of different policy
    0:22:39 where we could see the vpn client says, it could run AES, SHA
    0:22:44 group number 2
    0:22:45 then it would run extended authentication
    0:22:48 but initially use a pre shared key
    0:22:51 and the particular lifetime value
    0:22:56 it could also support
    0:22:58 AES with MD5 group number 2
    0:23:01 it could support
    0:23:03 AES with SHA and use just pre shared authentication
    0:23:07 and not do extended authentication
    0:23:11 and eventually we should see, ideally towards the bottom
    0:23:15 that one of these policies is going to match
    0:23:18 so finally, I guess, at the end it says that
    0:23:20 if they are offering 3DES with MD5
    0:23:24 with extended authentication
    0:23:27 group number 2, this is what is acceptable
    0:23:34 next step we should see that we now proceed on to
    0:23:37 phase 1.5
    0:23:40 and we could see here, it says, the state is am as opposed to mn
    0:23:46 where the vpn server and the vpn client they are running
    0:23:49 in aggressive mode for phase I
    0:23:51 as opposed to running in main mode
    0:23:56 So now it says our security association is doing
    0:23:59 pre shared key authentication plus extended authentication
    0:24:03 where the pre shared key thats coming from the group name and the group password
    0:24:09 So once we have agreed on, isakmp for phase I
    0:24:12 Now the authentication has to have
    0:24:15 we see the pre shared key replied
    0:24:20 the SA authentication status is authenticated
    0:24:25 So this now means that the group username and password was correct
    0:24:29 next step is that we are going on
    0:24:32 to the mode configuration and the extended authentication
    0:24:37 So now we will see the
    0:24:39 mode configuration for extended authentication
    0:24:43 we are going to ask for the username and password
    0:24:46 so we are requesting those attributes the username and password
    0:24:50 then eventually we are going to see, its going to time out because I didn't
    0:24:53 configure or I didn't type in the username and password
    0:24:56 but atleast upto this point we know that the basic phase I is working
    0:25:00 and that the group username and the group password was correct
    0:25:06 if we were to debug crypto
    0:25:09 isakmp again
    0:25:11 then to go to the vpn client
    0:25:14 and the modify this so that the password was incorrect
    0:25:20 which again is the group password, lets type anything in here
    0:25:30 we should see on router3 now
    0:25:33 that it never gets to the portion
    0:25:35 where we start to run extended authentication
    0:25:39 because the IKE packet from
    0:25:42 the client was not encrypted and it should have been
    0:25:47 this means that the authentication didn't happened
    0:25:52 Now we looked at this before when we were doing some troubleshooting on the lan to lan vpns
    0:25:56 its not really a very obvious
    0:25:58 troubleshooting message or really not an obvious log message
    0:26:02 because it doesn't simply say
    0:26:04 the password is wrong or the authentication has failed
    0:26:07 what it saying is that with the username and password
    0:26:11 You should be encrypting
    0:26:13 the phase I ISA
    0:26:16 when it gets to me
    0:26:17 says it supposed to be encrypted but it wasn't
    0:26:20 this either means that some is trying to do some sort of man in the middle attack
    0:26:24 by modifying the packet
    0:26:27 or more than likely just that the username and password combination is wrong
    0:26:32 so now lets go to our next step, where the
    0:26:35 the group username and password is correct
    0:26:37 or modify the tunnel again
    0:26:49 we can see the extended authentication, username and password box shows up
    0:26:54 so this means that everything in phase I goes correct
    0:27:01 Now I will enter the username and password cisco, cisco as I configured locally here
    0:27:06 we should now see that for
    0:27:14 we could see its a lot of debug output here
    0:27:27 So lets go back to where the phase I was completed
    0:27:38 which is here, so now the group authentication was correct
    0:27:42 the server is asking for the extended authentication, both the username and the password
    0:27:48 we should see the authentication come back in
    0:27:53 it says that we go the reply
    0:27:57 they replied with the username and password
    0:28:00 and it says the error is done with
    0:28:03 extended or not there, it says that the
    0:28:06 we are done with the extended authentication request and reply exchange
    0:28:11 this essentially means that the authentication was correct
    0:28:14 where again it kind of an odd output, the way that this says, it says its an error
    0:28:19 actually no, its an error false
    0:28:21 So there is no error message actually here
    0:28:24 we are done with extended authentication request and reply so the authentication was good
    0:28:29 Next what we should see
    0:28:30 is that we move on to the mode configuration
    0:28:34 this is where we will see all of these individual options
    0:28:38 Says ipv4 address, the netmask, the dns server
    0:28:42 the netbios name server which will be the WINS server
    0:28:46 we can give them a banner
    0:28:48 can they save their password locally
    0:28:51 whats their domain name
    0:28:53 are we going to do split tunnelling, split dns
    0:28:55 perfect forward secrecy
    0:28:57 are going to give their web browser a proxy
    0:29:01 are we going to
    0:29:03 assign them a hostname
    0:29:05 so we can see that there is a lot of individual options that we can
    0:29:08 apply under here
    0:29:10 usually the ones that are important here would be
    0:29:13 what are the address and the mask that we are applying on to them
    0:29:19 and are we doing split tunnelling
    0:29:24 then are we offering them transparent tunnel
    0:29:29 where in this case
    0:29:31 we are not offering them transparent tunneling yet
    0:29:34 so it says now we have the
    0:29:36 the access list, we are giving them is
    0:29:38 from 172.16.34.0
    0:29:42 and 172.16.4.0
    0:29:47 then we should see them assign an address
    0:29:58 which is here, says we are allocating the address 172.16.255.1
    0:30:06 Now at this point, we go through
    0:30:09 this phase 1.5 is completed
    0:30:12 we should then see the isakmp sa
    0:30:15 is now in QM_IDLE state or quick mode idle
    0:30:19 this now means that the easy vpn client
    0:30:22 can start offering the proposals
    0:30:24 for the ipsec transform set, or the phase II
    0:30:29 isakmp negotiation
    0:30:32 where we see that the first thing it offers, it says
    0:30:34 I want to run AES with md5
    0:30:37 256 bit AES
    0:30:40 I want to run in tunnel mode
    0:30:43 and these are the security association lifetime values
    0:30:50 says these attributes are acceptable, so these are the ones, we are going to use
    0:30:59 ESP AES with
    0:31:01 SHA
    0:31:04 these ones are acceptable as well, this ones says the ipsec policy invalidate proposal
    0:31:09 with error 256
    0:31:12 which
    0:31:14 most likely is this, which is
    0:31:19 a compression algorithm, that is trying to request
    0:31:25 So the vpn client is trying to ask for
    0:31:27 for compression
    0:31:28 the vpn server is saying no
    0:31:30 So now it gets down to, the next one, we could see its saying the
    0:31:34 these particular attributes are fine
    0:31:36 but then, this one is not, that whats the error must mean
    0:31:41 So we go all the way down to the bottom, we will see figure out which one is actually choosing
    0:31:46 which again see, it has to go through 16 different proposals
    0:31:53 but then it says that the phase II sa policy is not acceptable
    0:31:59 quick mode is being rejected
    0:32:04 essentially what this means now
    0:32:06 is that the transform set, I have configured on router3
    0:32:09 is not compatible with this particular version
    0:32:12 of the vpn client
    0:32:16 So lets look at the show run section crypto map
    0:32:19 or show run section crypto
    0:32:22 I am going to have to change now whatever
    0:32:25 this transform set is
    0:32:27 in order to be something compatible
    0:32:30 basically what this means, whatever the particular version we are running this, lets take a look at this, its
    0:32:35 4.8
    0:32:37 then sub to this 02.0010
    0:32:41 it doesn't support a DES
    0:32:44 because this is one of the less secure algorithms
    0:32:48 So lets say we are going to replace this with something a bit stronger
    0:32:52 lets try 3DES, we will say 3
    0:32:54 crypto ipsec
    0:32:56 transform set 3des_sha
    0:33:00 is esp 3des and esp sha
    0:33:05 then under the dynamic crypto map
    0:33:09 I will say no set transform set to des sha
    0:33:14 we will set this to 3des_sha
    0:33:21 then lets debug crypto isakmp
    0:33:57 if we now look at the very last portion of the negotiation
    0:34:01 it says it got the proposal number 12
    0:34:05 and it offered esp 3des
    0:34:08 with sha were running in tunnel mode
    0:34:11 with these particular sa lifetimes
    0:34:14 these attributes are acceptable
    0:34:17 and now it says that phase-II is complete
    0:34:24 from router3 which is the server, if we were to look at now the show crypto isakmp sa
    0:34:31 just like any of the lan to lan tunnels
    0:34:33 we should see this as QM_IDLE
    0:34:36 which means the phase I isakmp sa was successfully established
    0:34:42 if we look at the show crypto ipsec sa
    0:34:46 we should see that now the phase II ipsec sa is working
    0:34:52 it says that the peer
    0:34:54 is 192.168.118.100
    0:34:59 we have assigned them an address of 172.16.255.2
    0:35:05 the particular sa is using 3des and sha
    0:35:12 if we actually test this out, now we go to the windows machine
    0:35:17 and open up the vpn client again
    0:35:19 under the status, we want to go to the statistics
    0:35:25 this output here, the tunnel details
    0:35:28 this essentially the equivalent of looking it to show crypto ipsec sa on the router
    0:35:34 its showing me the address that I was negotiating
    0:35:37 it shows me the server's address, thats the peer
    0:35:40 it shows me the crypto transform set
    0:35:43 So we are using 3des and sha
    0:35:47 says packets
    0:35:48 right now nothing is being encrypted or decrypted because we are not actually sending anything over the tunnel yet
    0:35:54 transparent tunnelling is inactive
    0:35:57 this means that we are going to be sending the traffic natively over esp
    0:36:02 its not going to be encapsulated on udp
    0:36:05 its not going to be encapsulated inside of tcp
    0:36:10 next if we go to the route details
    0:36:13 these secure routes
    0:36:15 this is the split tunnelling acl
    0:36:18 that the easy vpn server has configured
    0:36:24 the result of this, if we were to go to the command line
    0:36:27 and look at the ipconfig
    0:36:30 we see that we have this address 172.16.255.2
    0:36:36 and if we look at the route print
    0:36:39 we should see that there is two new routes installed here
    0:36:44 which are the 172.16.4.0
    0:36:48 and 172.16.34.0
    0:36:53 both of these are using the interface
    0:36:55 172.16.255.2
    0:36:59 which essentially is the vpn adapter
    0:37:03 So now lets test our final configuration
    0:37:05 assuming everything is working
    0:37:08 what we should be able to do
    0:37:10 is to go to router4
    0:37:12 and look at the debug
    0:37:15 ip
    0:37:18 icmp
    0:37:20 debug ip icmp
    0:37:22 then from the test pc we are going to ping this address of router4
    0:37:28 ideally what we should see
    0:37:29 is that the traffic is coming from
    0:37:31 the 172.16
    0:37:34 .255 address
    0:37:37 this is going to tell us that
    0:37:39 the tunnel was properly established
    0:37:42 that the test pc was actually allocated that address
    0:37:46 and there is nothing filtering the traffic
    0:37:48 as if comes from the client
    0:37:50 going over the tunnel
    0:37:54 now if router4 is able to respond and the test pc actually gets the ping replies back in
    0:37:59 then we know that the tunnel is working bidirectional
    0:38:03 So next on router4
    0:38:06 lets say debug
    0:38:08 debug ip icmp
    0:38:12 then on the test pc lets ping
    0:38:15 172.16.4.4
    0:38:17 and I will say -t
    0:38:19 which is going to
    0:38:21 be a continuous ping
    0:38:28 router4 says I am sending an echo reply
    0:38:32 going to 172.16.255.2
    0:38:37 but notice we have a problem now here, it says
    0:38:39 we are receiving an icmp host unreachable message
    0:38:43 from 172.16.34.3
    0:38:52 Now what this means here is that, at a minimum
    0:38:55 we know that router4 is receiving the traffic in
    0:39:02 So the packet is properly coming into tunnel
    0:39:04 4 is getting it and trying to reply
    0:39:07 its sending the packet back toward 3
    0:39:11 but 3 is replying back saying, I don't know how to reach that host
    0:39:17 and the reason why
    0:39:19 is that if we look at the routing table
    0:39:22 and lets undebug all first on router3
    0:39:24 if we look at the routing table of router3
    0:39:27 we don't have an entry for the pool address
    0:39:34 that we are allocating the users
    0:39:39 now we haven't really doubt with this problem yet in the previous lan to lan vpns
    0:39:44 because that topology was pre configured with dynamic routing
    0:39:48 and we looked at the examples of using the GRE tunnels
    0:39:51 or the static virtual tunnel interfaces
    0:39:54 we were able likewise, to run dynamic routing protocols over there
    0:39:57 which are going to solve any of the lan to lan routing issues
    0:40:02 but with the remote access vpns, the easy vpn client
    0:40:07 there is no way that we can really dynamically
    0:40:10 route back to the sources
    0:40:12 because we are the one who is manually
    0:40:16 issuing or manually allocating the addresses down to them
    0:40:21 So its not necessarily an ipsec problem
    0:40:23 but is an issue that we have to address
    0:40:26 that just like we saw with the IOS and the ASA before
    0:40:30 the network address translation process and the routing process were separate
    0:40:34 same thing is going to be true about ipsec
    0:40:36 the ipsec tunnel doesn't have anything to do with the routing
    0:40:40 to separate unrelated problem that we have to solve
    0:40:43 So on router3
    0:40:45 when the packet is coming back in and it is trying to reach 172.16.255.2
    0:40:54 says I don't have a route to that
    0:40:57 So it actually goes to my eigrp
    0:40:59 summary which is a default route going to Null0
    0:41:02 and router3 is dropping the packet
    0:41:05 this is why router3 is getting that icmp unreachable back in
    0:41:12 Now there is a couple of different solutions for this particular problem
    0:41:16 we could just go to router3
    0:41:18 and statically tell it
    0:41:20 to point a route
    0:41:22 towards the interface with the crypto map
    0:41:25 for that pool, the 172.168.255.0/24
    0:41:33 or we could tell it as the vpn client connect
    0:41:37 I want to automatically put their addresses into the routing table
    0:41:40 which is known as the reverse route injection or the RRR feature
    0:41:48 Now either these are going to be valid
    0:41:51 really the only time that its going to make a difference
    0:41:53 whether you are using the reverse route injection versus the
    0:41:56 the manual routing, or which is sometimes called a hold down route
    0:42:01 is how many potential vpn clients do you have connecting
    0:42:06 so if would have a network designed, where lets say
    0:42:08 theoretically you have 10000 vpn clients connecting
    0:42:12 then you wouldn't want to install 10000 host routes into your routing table
    0:42:16 you probably be better off with
    0:42:18 with static routes that are pointing to the dhcp pools
    0:42:22 for those particular vpn clients
    0:42:29 Now the other potential issue
    0:42:31 would be what you if you were to have multiple vpn servers
    0:42:35 where we have router1
    0:42:38 and router2 on the edge
    0:42:40 they are both listening for the easy vpn server connections
    0:42:44 and if they are sharing the same dhcp pools
    0:42:49 so lets say we have router3 here
    0:42:51 and then somewhere else in the network we have the dhcp server
    0:42:56 if the vpn client comes in this way
    0:43:01 and it asks for an address from the vpn
    0:43:04 or from the dhcp server
    0:43:06 So the dhcp server allocates it to the client
    0:43:10 the rest of the network would then need to know, lets say this client is A
    0:43:14 it would need to know that A's route is reachable via this vpn server
    0:43:19 as opposed to be reachable via this one
    0:43:24 so its really more of a design issue here, whether
    0:43:26 you have multiple
    0:43:28 vpn servers on the edge that are showing the same
    0:43:31 dhcp pool for the client
    0:43:33 then we would need to use the exact host routing
    0:43:36 to make sure that we have the correct path
    0:43:38 or back to the actual client
    0:43:41 but in our particular design here we only have one vpn server
    0:43:44 so its not really going to make a difference
    0:43:46 I could just go to router3
    0:43:48 and say I have the route 172.16.255.0/24
    0:43:57 that goes out my point to point
    0:43:59 sub interface serial1/0.23
    0:44:04 now since router4 is already defaulting to router3
    0:44:10 we could see now we are not getting that
    0:44:12 there host unreachable message back in from router3
    0:44:17 if we were to look at router3, and look at now the show crypto
    0:44:22 ipsec sa
    0:44:25 what we would want to know is
    0:44:28 are we receiving
    0:44:29 the packets in
    0:44:31 and are we sending packets back out
    0:44:35 so again this first line this is the outbound packets
    0:44:39 the second line this is the inbound packets
    0:44:42 so I know I am receiving packets in the tunnel and then I am sending packets back out of the tunnel
    0:44:49 if we look at now, the test pc
    0:44:53 there is still something wrong with the connectivity here
    0:44:57 where I now know based on this corners
    0:45:00 that at a minimum
    0:45:01 the packets are going from the test pc out its tunnel
    0:45:05 they get to 33 sending them to 4
    0:45:08 4 is now replying
    0:45:10 and 3 is sending them this direction
    0:45:14 I could tell this just based on the ipsec sa corners
    0:45:19 Now the test pc is not actually receiving the traffic back in
    0:45:23 So it could be a potential
    0:45:25 where the traffic is being filtered out
    0:45:29 So just like we saw in the lan to lan tunnels
    0:45:32 when I look at the ipsec sa
    0:45:35 and it shows the packets are being encapsulated and decapsulated
    0:45:40 I now know its not a problem with phase I negotiation
    0:45:44 phase 1.5 negotiation, the mode configuration or the extended authentication
    0:45:49 nor could it be a problem with the phase II negotiation
    0:45:54 because otherwise I wouldn't create
    0:45:56 the ipsec security association
    0:45:59 its now something related to the data plane, some sort of
    0:46:03 most likely filtering or may be like a routing problem in the network
    0:46:08 Now when we look at our topology here
    0:46:10 we know that we have ASA1, thats in the transit path
    0:46:15 and if the test pc is not being offered transparent tunnelling
    0:46:21 so its running the ipsec tunnel directly over esp
    0:46:26 the ASA is going to drop this traffic as it tries to move from the outside back in
    0:46:35 So its the same type of filtering problem that we saw before
    0:46:38 because remember with the phase I isakmp sa
    0:46:42 that is a bidirectional udp port 500 tunnel
    0:46:46 So the test pc initiates it
    0:46:48 from the ASA's perspective its goes from the inside to out
    0:46:52 and then it returns
    0:46:54 if we were to go to ASA1 and look at the show connections
    0:46:59 we see that the UDP 500 connection was originated from the inside
    0:47:04 and were expecting it to come from the outside back in
    0:47:08 however for the ipsec sa
    0:47:12 that is two unidirectional sa-s
    0:47:15 one that was originated from the inside to out
    0:47:18 then one that came from the outside to back in
    0:47:23 if we were to turn the logging on
    0:47:27 on the ASA, most likely we are going to see
    0:47:36 is that these packets are going to get dropped
    0:47:40 as they come in on the outside interface
    0:47:46 So lets see, is the
    0:47:49 the test pc is sending the
    0:47:53 the pings, lets try to start this again
    0:47:56 lets disconnect the tunnel and reconnect it
    0:48:00 and we will see, what the log of the ASA shows
    0:48:12 So I will connect to tunnel
    0:48:21 and start the ping again
    0:48:27 the ASA says I am denying inbound traffic from router3
    0:48:32 that is trying to return back to the VPN client
    0:48:38 and we can see, this is protocol number 54 esp
    0:48:43 so without transparent tunnelling configured, which means that we are not encapsulating the
    0:48:47 the esp inside of udp or inside of tcp
    0:48:51 we would need to make sure that we have native ip protocol 50 transport
    0:48:55 from the client to the server and then back
    0:49:00 Now there is a couple of different solutions for this type of problem here
    0:49:03 we talked about two of them already
    0:49:05 which I could simply go to the ASA
    0:49:08 and say something like access list outside in
    0:49:12 permit esp any any
    0:49:15 and then allow this in on the outside interface
    0:49:18 So it is just static exception
    0:49:21 the other thing I could do is under the global policy
    0:49:26 I could inspect ipsec pass through
    0:49:30 which would then dynamically allow
    0:49:32 the esp traffic to return back in
    0:49:35 or the third option
    0:49:37 I could configure the
    0:49:39 easyvpn server
    0:49:41 which is router3 in this case
    0:49:43 I could to tell it to offer the client transparent tunnelling
    0:49:47 transparent tunnelling over udp
    0:49:50 Now with transparent tunnelling there is three different options that we can use
    0:49:54 in order to accomplish this
    0:49:56 where the overall goal in either the case
    0:49:59 is that we don't want to encapsulate the tunnel directly into the esp
    0:50:04 that we are going to send it either over udp
    0:50:07 or over tcp
    0:50:09 and which one do we choose depend on a couple of different options
    0:50:13 which particular platform we are using the server
    0:50:16 for the server, whether its the IOS or its the ASA
    0:50:19 and whether or not we are going through a network address translation
    0:50:24 Now first of these three options for transparent tunnelling
    0:50:27 is known as the NAT transparent or the NAT traversal
    0:50:32 with NAT traversal
    0:50:34 the ipsec tunnel is going to be encapsulated inside of udp
    0:50:38 port 4500
    0:50:43 Now the key with NAT transparency or NAT traversal
    0:50:47 is that when the easyvpn client
    0:50:49 starts the negotiation to the server
    0:50:52 the server is going to see that the
    0:50:54 isakmp packet which is our udp port 500 packet
    0:50:58 is coming from a different source address
    0:51:01 then the IKE identifier in the actual payload
    0:51:06 So in our particular case, when we look at the topology
    0:51:09 if the easyvpn client was the test pc
    0:51:13 with an address of 192.168.118.100
    0:51:20 but it was being translated to an address on the outside lets say the 200.0.111.100 address
    0:51:30 when router3 receives the isakmp packet in
    0:51:33 its going to say the actual packet came from the source address
    0:51:36 but the IKE identifier
    0:51:39 is this inside local address 192.168
    0:51:44 and simply based on that fact that it sees the difference between the
    0:51:47 pre and the post NAT address
    0:51:50 the easyVPN server is automatically going to offer
    0:51:52 the transparent tunnelling at udp port 4500
    0:51:58 the second option
    0:51:59 would be to configure
    0:52:01 transparent tunnelling
    0:52:04 over udp
    0:52:06 which is used in case is
    0:52:08 where we are not going through a Network Address Translation
    0:52:11 but we still want to encapsulate the esp packet inside of udp
    0:52:17 and typically this is going to be running
    0:52:19 over upd port 10000
    0:52:23 Now the key difference between these two
    0:52:25 is that the NAT transparency or the NAT traversal, which is our first option
    0:52:29 and this is a standardised implementation
    0:52:32 its an RFC defined implementation
    0:52:34 of how
    0:52:35 the , the esp packets can be encapsulated inside of udp
    0:52:40 with this second option of sending them over udp port 10000
    0:52:44 this is a cisco proprietary implementation
    0:52:47 that came from the vpn 3000 concentrator
    0:52:52 so we will see that the second with using udp port 10000
    0:52:55 we can use this when the ASA is the easy server
    0:52:59 but not when the router is the easyVPN server
    0:53:03 the third option we have
    0:53:06 is the same type of transparent tunnelling
    0:53:09 which is going to run over tcp
    0:53:13 as opposed to udp
    0:53:16 and this likely udp is going to use tcp port 10000 by default
    0:53:20 and this is a cisco proprietary implementation
    0:53:23 Sometimes this is called the TCP
    0:53:28 implementation
    0:53:29 which is talking about the esp encapsulated inside of a tcp payload
    0:53:36 so again for the first option, this is going to be used when we are going through a
    0:53:39 Network Address Translation or a port address translation
    0:53:43 second one is when the ASA is the easyVPN server
    0:53:47 third one is either one of the router
    0:53:48 or the ASA as the server, if we want to offer tcp as transparent tunnelling
    0:53:55 Now the most common implementation of this
    0:53:58 that you see is generally the first one
    0:54:00 because in a design like we have here in our diagram
    0:54:04 if the test pc is already on a private network
    0:54:07 generally when this traffic is routed out to the public network like the internet
    0:54:12 it is going to be going through a network address translation
    0:54:15 and when the easyvpn server receives that
    0:54:18 its automatically going to know that again
    0:54:21 based on the disconnect between the IKE identifier
    0:54:23 and where the actual isakmp packet is coming from
    0:54:28 so in order to implement this type of tunnelling
    0:54:30 the only thing that we need to do is go to the ASA
    0:54:34 and tell it to do a Network Address Translation
    0:54:37 from the inside addresses to the outside addresses
    0:54:43 So next lets go to ASA1
    0:54:46 and will actually configure this, this is to the context that is for
    0:54:49 the connection to vlan 118, going down to the test pc
    0:54:55 we will define a NAT rule for the inside, we will say nat
    0:55:00 for packets that are coming in in the inside, we will name this room number1
    0:55:03 and I will say that for simply any source address
    0:55:06 I don't care where its coming from
    0:55:09 but this is always going to be matched by that nat rule
    0:55:13 then we will define our global translation
    0:55:15 we will say as traffic goes to the outside
    0:55:18 this is nat rule number 1
    0:55:21 and we are simply going to translate it to the address thats on the
    0:55:24 the outside interface
    0:55:27 Now I could define a nat pool here
    0:55:29 that were translating to, I could do static port translations
    0:55:32 but just for the most basic example
    0:55:35 we simply have this two commands, the nat inside 100
    0:55:39 and the nat outside 1 interface
    0:55:43 so now if we were to go to the test pc
    0:55:46 and send packets from the inside to the outside, lets say we were to ping
    0:55:51 router4's address again
    0:55:54 we should see when router4, receives this
    0:55:57 they should be getting translated
    0:55:59 to
    0:56:00 the outside interface of the ASA, which in this case is
    0:56:05 the 200.0.111.118 address
    0:56:12 if we were to look at the ASA and look at the show xlate
    0:56:16 we should see the
    0:56:18 the port address translation ASA1
    0:56:21 the show xlate
    0:56:24 we could see the port translation from the host on the inside
    0:56:27 which is the 118.100
    0:56:30 and we are translating that to the outside interface of the ASA
    0:56:33 the 200.0.111.118
    0:56:38 So now lets go to router3 and look at
    0:56:40 the debug crypto isakmp
    0:56:43 and what we should see now when the easyVPN client initiates the tunnel
    0:56:48 router3 is automatically going to detect that it is behind a Network Address Translation
    0:56:53 and it is going to operate udp port 4500 for the transparent tunnelling
    0:56:59 if we go to the test pc
    0:57:01 open up the vpn client
    0:57:05 and authenticate with our extended authentication
    0:57:11 what we should see is that when we actually
    0:57:14 go through the phase I negotiation
    0:57:18 and again we could see its a lot of output here for the debug
    0:57:21 of phase I
    0:57:25 but once this is complete, we could see it says
    0:57:27 that for the actual phase II tunnel, the encapsulation is running over udp
    0:57:33 and we will see the port number is listed
    0:57:36 in the phase I negotiation
    0:57:38 where it says that
    0:57:40 we are sending a packet to 200.0.111.118
    0:57:45 which remembers the outside interface as the ASA
    0:57:48 and its going over udp port 4500
    0:57:53 if we now look at the vpn client
    0:57:56 and go to
    0:57:59 the statistics
    0:58:02 and look at the tunnel details
    0:58:04 which remember similar to the show crypto ipsec sa
    0:58:07 it says now the transparent tunnellings active
    0:58:10 on udp port 4500
    0:58:15 we could see now the packets are getting through
    0:58:18 where previously the ASA was dropping them because they were esp
    0:58:22 if we go to ASA1
    0:58:26 and now look at the show connections
    0:58:31 we should see two different connections
    0:58:33 one of them for the phase I isakmp tunnel
    0:58:38 which is udp port 50, excuse me, udp port 500
    0:58:41 and then the phase II ipsec sa
    0:58:45 which is now running over udp port 4500
    0:58:51 Now again the key point
    0:58:54 with this first option of transparent tunnelling, which is the NAT
    0:58:56 traversal or the NAT transparency
    0:58:59 is that we have to be going through either a Network Address Translation
    0:59:03 or a Port Address Translation in order for the server to offer this
    0:59:08 So it is going to be doing this by default
    0:59:11 there is nothing special we need to configure on router3
    0:59:14 on the client itself
    0:59:16 if we look at the
    0:59:18 the details of the tunnel
    0:59:20 if we modify this connection
    0:59:29 when we look at the transport option
    0:59:32 we can see that the enable transparent tunnel feature is checked automatically
    0:59:36 and its going to default to ipsec over udp, which is
    0:59:39 NAT transparency or the
    0:59:42 the port address translation and the network address translation
    0:59:47 Now the other potential problem we could run into here
    0:59:51 is either
    0:59:53 if the tunnel is not going through a Network Address Translation
    0:59:58 or if there is a firewall in the transit path
    1:00:01 that is filtering udp port 500
    1:00:06 because again when we look at the ASA here
    1:00:08 it has two different connections
    1:00:10 one of them is for the phase I isakmp sa
    1:00:14 one of the them is for the phase II ipsec sa
    1:00:18 where the phase II tunnel, this is what is changing with the NAT traversal,its now running over the udp port 4500
    1:00:25 but for phase I this is still
    1:00:27 isakmp over port 500
    1:00:31 So if the firewall filtering policy was very strict
    1:00:34 and we were to say something like access list
    1:00:37 outside in
    1:00:40 deny udp any any equal to 500
    1:00:46 then ip access group outside in
    1:00:50 in interface
    1:00:52 outside
    1:00:54 the issue that we are going to run into now
    1:00:57 is that even if the tunnel
    1:01:00 is trying to use the NAT
    1:01:01 traversal or the NAT transparency
    1:01:04 we would see that the phase I negotiation would now fail
    1:01:09 because udp port 500 is going to be blocked
    1:01:14 So if we look at the
    1:01:16 look at the ASA, lets make sure that this is applied correctly, lets say show run access list
    1:01:23 and show run
    1:01:29 show run access group
    1:01:32 what I would actually need to say here is I would to flip these port values
    1:01:37 I would need to say look for source 500 or destination 500
    1:01:42 because I would want to drop the
    1:01:43 the negotiation in both directions
    1:01:46 So let me add another entry here, we will say access list outside in
    1:01:50 is going to deny
    1:01:52 any equal
    1:01:54 to isakmp or any equal to 500 any
    1:02:00 and now on the
    1:02:04 now on the vpn client
    1:02:08 we should see when we connect
    1:02:12 that this is going to be
    1:02:14 that this is going to be dropped
    1:02:19 if we look at the show connections
    1:02:24 says the udp 500 connection is still there, what I may need to do is delete these
    1:02:28 lets say clear connections all
    1:02:33 and lets turn logging
    1:02:36 on for the access list to see if we actually see
    1:02:39 these drops
    1:02:42 So lets disconnect the tunnel
    1:02:45 and we will reconnect it
    1:03:02 says we built an outbound udp connection
    1:03:04 for the outside that is
    1:03:07 200.0.23.3
    1:03:10 at port 500
    1:03:12 if we look at the show connections
    1:03:15 we could see now the udp port 500 is still being allowed
    1:03:19 what I actually need to do here because
    1:03:22 remember with the ASA's filtering logic
    1:03:24 when traffic is moving from the outside in
    1:03:28 we are going to check the state table first
    1:03:31 before we look at the access list exceptions
    1:03:34 So what I actually need to do is, is the reverse of this, we need to say
    1:03:40 access list inside in
    1:03:43 deny udp any any = 500
    1:03:48 then I could say access list inside in
    1:03:51 permit everything else, so permit ip any any
    1:03:54 and access group
    1:03:56 inside in
    1:03:58 in interface inside
    1:04:02 then was turned logging back on, logging console
    1:04:04 7 and logging on
    1:04:08 when I now try to start
    1:04:10 the tunnel again
    1:04:15 So lets disconnects
    1:04:18 then reconnect
    1:04:20 we could see now the tunnel is being dropped, says deny udp
    1:04:23 source from the inside thats going to port 500
    1:04:28 So now the firewall is filtering out not only the esp traffic
    1:04:32 from coming outside in
    1:04:34 but its now stopping the phase I
    1:04:36 isakmp negotiation with udp 500
    1:04:42 in this particular case
    1:04:44 this is where we can use the third option
    1:04:47 which is for transparent tunnelling over tcp
    1:04:52 where normally our phase I isakmp sa is going to be negotiated using udp port 500
    1:04:59 with the cisco proprietary implementation
    1:05:01 we can tell it to use a particular tcp port of our choosing
    1:05:05 in order to get around that firewall filtering policy
    1:05:10 Now we will see this is similar to logic of the SSL
    1:05:14 VPNs that runs over tcp port
    1:05:16 443
    1:05:19 but its still an ipsec vpn
    1:05:22 its an ipsec vpn thats using tcp as a transport
    1:05:25 as opposed to an ipsec vpn thats using either esp
    1:05:28 or using udp for its transport
    1:05:32 Now configuration of this
    1:05:34 does require some additional steps on the server
    1:05:37 very very straight forward though
    1:05:39 the only thing we need to do is enable this feature, which is the crypto
    1:05:43 TCP
    1:05:46 and specify what the port number that we want
    1:05:49 where as I mentioned before, the default for this is going to be port 10000
    1:05:55 Now on the client
    1:05:58 which is the
    1:06:00 the windows machine with the vpn client
    1:06:02 if we go to modify these parameters for the tunnel
    1:06:06 then under the transport tab
    1:06:09 we are going to change this
    1:06:11 not to use udp for the transparent tunnelling, but to use tcp
    1:06:17 we should now see that we could can get around
    1:06:20 this udp port 500 filter
    1:06:26 the tunnel should establish correctly
    1:06:29 and when we actually send the traffic
    1:06:31 we should see that we do get the responses back in
    1:06:36 but now if we were to go to the ASA and look at the show connections
    1:06:41 we see that the inside host
    1:06:44 the 192.168.118.100
    1:06:47 is now translating to tcp port 10000
    1:06:52 as opposed to being translated to either
    1:06:55 udp 4500 for the NAT traversal
    1:07:00 or the cisco proprietary udp port 10000 that would be used for the ASA
    1:07:05 Now we are sending this over tcp
    1:07:12 So again in addition to the normal
    1:07:14 VPN server configuration on the IOS
    1:07:18 you do need to take into account the rest of the design of the topology
    1:07:22 to figure out once the tunnel is actually working
    1:07:25 do I have any type of filters
    1:07:28 that are going to affect the actual transport in data plane
    1:07:33 then initially
    1:07:35 or additionally we have that problem on router3 of the routing
    1:07:39 where when the vpn client connected
    1:07:42 we were assigning it an address from the
    1:07:44 pool 172.16.255.0
    1:07:48 and unless router3 actually has a route back to this
    1:07:52 its not going to know where to forward the packet
    1:07:55 the way that I solved this in this particular design with
    1:07:58 was to simply do a static route on router3
    1:08:02 but the other option that we could have
    1:08:03 is under the dynamic crypto map
    1:08:09 So crypto map dynamic
    1:08:12 the name is dynamic map
    1:08:14 we could say to inject the reverse route
    1:08:22 which then if we were to disconnect
    1:08:25 and reconnect the client
    1:08:35 if we now take a look at the routing table of router3
    1:08:40 and lets undebug all first here
    1:09:02 if we now look at the show ip route
    1:09:06 we should have the individual host route
    1:09:09 for that particular device that
    1:09:12 connected to the tunnel
    1:09:15 and notice that this static route is pointing towards where the source of the tunnel is coming from
    1:09:20 so we are assuming that we already have an address
    1:09:22 towards the tunnel peer
    1:09:27 then any traffic that is going towards
    1:09:28 that peer is likewise going to go inside of the ipsec tunnel
    1:09:33 Now notice that since this is a static route
    1:09:36 it would then still assume that anyone who is behind the vpn server
    1:09:39 is going to need to learn this information somehow
    1:09:42 whether we are doing redistribution of static routes into our igp
    1:09:46 or may be the devices behind the servers are just doing default routing
    1:09:51 we need to make sure that the routing
    1:09:53 is solved separately from the tunnel configuration
    1:09:57 and then the transport of the tunnel again is going to be another separate issue
    1:10:01 So are we running it natively over esp
    1:10:04 are we running it over udp over nat reversal
    1:10:08 are we running it over udp transparent tunnelling
    1:10:11 or we running it over tcp
CCIE Security Advanced Technologies Class
Title: CCIE Security Advanced Technologies Class
Duration: 39h 19m
The CCIE Security Advanced Technologies Class is the first step in understanding CCIE level technologies and is a companion to the Advanced Technologies Lab Workbook. Each technology you need to know for the CCIE Security lab will be described in detail using an instructor led hands on demonstration. The class consists of over 40 hours of in depth explanations and examples.
Get instant access to our entire library!
$159/month Add to Cart
Download this Course
$299.00 Add to Cart


© 2003 - 2012 INE All Rights Reserved