Periodically I find myself working with another party to establish a LAN to LAN, or Site to Site, IPSEC VPN tunnel and there are various parameters which must be agreed upon. I have found that exchanging a VPN worksheet ahead of time helps both parties think through the process better and speeds up the VPN configuration. This is preferable under all scenarios, but especially when one or more parties are paying by the hour to have someone configure it for them. Feel free to download, alter and use it as you see fit:
https://docs.google.com/leaf?id=0Bw0IToZ5AnXTMjAzMzJiYmEtOWRjOC00OTY0LTg4ZjUtYzk4ZTk4MjViNTEx&hl=en_US&authkey=CMbmnecO
Showing posts with label VPN. Show all posts
Showing posts with label VPN. Show all posts
Monday, June 27, 2011
Cisco ASA Remote Access VPN for IPSEC client
Here's a basic template for Remote Access VPN using the Cisco IPSEC VPN client. It includes a pool for address assignment, and an ACL to provide remote clients access to a few RDP servers. This also features PPPoE dialer for the WAN interface.
interface Vlan1 description LAN nameif inside security-level 100 ip address 10.0.0.1 255.255.255.0 ! interface Vlan2 description OUTSIDE nameif outside security-level 0 ip address pppoe setroute ! same-security-traffic permit inter-interface same-security-traffic permit intra-interface ! object-group network remoteVPNGroup network-object 172.16.0.0 255.255.255.0 object-group network insideNetworks network-object 10.0.0.0 255.255.255.0 object-group network RDP-Servers network-object host 10.0.0.6 network-object host 10.0.0.14 ! access-list inside_nat0_outbound extended permit ip object-group RDP-Servers object-group remoteVPNGroup ! ip local pool RAGenPool 172.16.0.2-172.16.0.30 mask 255.255.255.0 ! global (outside) 1 interface nat (inside) 0 access-list inside_nat0_outbound nat (inside) 1 10.0.0.0 255.255.255.0 ! crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac crypto dynamic-map outside_dyn_map 20 set pfs crypto dynamic-map outside_dyn_map 20 set transform-set ESP-3DES-SHA crypto dynamic-map outside_dyn_map 20 set reverse-route crypto map outside_map 65535 ipsec-isakmp dynamic outside_dyn_map crypto map outside_map interface outside crypto isakmp enable outside ! crypto isakmp policy n authentication pre-share encryption 3des hash sha group 2 lifetime 43200 ! group-policy RAGeneral internal group-policy RAGeneral attributes vpn-tunnel-protocol IPSec group-lock value RAGeneral split-tunnel-policy tunnelall address-pools value RAGenPool ! username testuser password ************** encrypted username testuser attributes vpn-group-policy RAGeneral group-lock value RAGeneral username superadmin password ********** encrypted privilege 15 ! tunnel-group RAGeneral type ipsec-ra tunnel-group RAGeneral general-attributes address-pool RAGenPool default-group-policy RAGeneral tunnel-group RAGeneral ipsec-attributes pre-shared-key *!vpdn group PPPOE-WAN request dialout pppoe vpdn group PPPOE-WAN localname my_ppp_username vpdn group PPPOE-WAN ppp authentication pap vpdn username my_ppp_username password *********
Thursday, August 5, 2010
Cisco ASA 7.2 PPPoE Lan-to-LAN IPSEC with conditional NAT Template
This is a pretty standard config, except for the conditional NAT. So in this case, only certain local IP addresses (host in network-object LocalHostsToNATtoVendor01) will match the VPN tunnel, and will be NATted before hitting the tunnel.
!ASA Version 7.2(4) ! enable password ********** encrypted passwd ********** encrypted names ! interface Vlan1 description LAN nameif inside security-level 100 ip address 10.10.10.1 255.255.255.0 ! interface Vlan2 description OUTSIDE nameif outside security-level 0 pppoe client vpdn group MyPPPUserName ip address pppoe setroute ! interface Ethernet0/0 switchport access vlan 2 ! same-security-traffic permit inter-interface same-security-traffic permit intra-interface ! object-group network RemoteVendor01 network-object 192.168.64.0 255.255.248.0 ! object-group network LocalHostsToNATtoVendor01 network-object host 10.10.10.150 network-object host 10.10.10.151 network-object host 10.10.10.152 network-object host 10.10.10.153 network-object host 10.10.10.154 network-object host 10.10.10.155 network-object host 10.10.10.156 network-object host 10.10.10.157 ! access-list outside_1_cryptomap extended permit ip 172.16.6.24 255.255.255.248 192.168.64.0 255.255.248.0 access-list inside_nat0_outbound extended permit ip 172.16.6.24 255.255.255.248 192.168.64.0 255.255.248.0 ! access-list LocalHostsToNATtoVendor01 remark conditional NAT access-list LocalHostsToNATtoVendor01 extended permit ip object-group LocalHostsToNATtoVendor01 object-group RemoteVendor01 ! !define two NAT pools, one pool of IPs, the other the outside interface address global (outside) 1 172.16.6.24-172.16.6.31 global (outside) 2 interface !don't nat some hosts nat (inside) 0 access-list inside_nat0_outbound !do NAT this ACL nat (inside) 1 access-list LocalHostsToNATtoVendor01 nat (inside) 2 10.10.10.0 255.255.255.0 ! crypto ipsec transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac crypto map outside_map 1 match address outside_1_cryptomap crypto map outside_map 1 set peer 192.152.45.12 crypto map outside_map 1 set transform-set ESP-AES-192-SHA crypto map outside_map interface outside crypto isakmp enable outside crypto isakmp policy 10 authentication pre-share encryption aes-192 hash sha group 5 lifetime 28800 ! vpdn group MyPPPUserName request dialout pppoe vpdn group MyPPPUserName localname MyPPPUserName vpdn group MyPPPUserName ppp authentication pap vpdn username MyPPPUserName password ********* ! tunnel-group 192.152.45.12 type ipsec-l2l tunnel-group 192.152.45.12 ipsec-attributes pre-shared-key * ! ! here's an interesting feature smtp-server 10.45.26.2 prompt hostname context
Tuesday, July 6, 2010
Quick and easy LAN-to-LAN VPN for Cisco ASA
The Scenario:
You want your workstation at H.Q. at your.local.subnet.15 to be able to Remote Desktop (TCP3389) to you server at your.remote.subnet.34. Your remote branch has a WAN IP address of your.remote.wan.29:
!
! Define "interesting" traffic to determine which traffic gets encrypted.
! In this case it's any packet from the local box with a destination address of the remote server, TCP port 3389 and ICMP traffic.
! Note that THIS ACL must be exacly the same, with source and destination addresses reversed, on the IPSEC peer at the other end.
! If you don't control both peers then it may be advisable to use simple host-based ACLs and leave off the ports.
! Naturally, this is less secure that specifying the ports here. You can always add an additional ACL (which doesn't have to match at the far end)
! on the tunnel-group with the "vpn-group-policy" option.
!
access-list outside_60_cryptomap extended permit tcp host your.local.subnet.15 host your.remote.subnet.34 eq 3389
access-list outside_60_cryptomap extended permit icmp host your.local.subnet.15 host your.remote.subnet.34
!
! Define IKE Phase I Parameters
! IKE Phase I authenticates IPSec peers and negotiates IKE SAs during this phase.
! This sets up a secure channel for negotiating IPSec SAs in phase 2.
!
crypto isakmp policy 20
authentication pre-share
encryption aes-256
hash md5
group 5
lifetime 14400
!
! Define IKE Phase II IPSEC transformations
! IKE Phase II negotiates IPSec SA parameters and sets up matching IPSec SAs in the peers.
!
crypto ipsec transform-set esp-aes-md5 esp-aes-256 esp-md5-hmac
!
!
! NAT considerations
! You may want to disable NAT across the IPSEC tunnel. In a SMB environment, there is probably no need or desire to source NAT.
! So, add and additional line to your existing nat exception ACL or create one. Here, we add a line to the existing inside_nat0_outbound ACL.
! This bit is a bet beyond the scope of this article
access-list inside_nat0_outbound extended permit ip host your.local.subnet.15 host your.remote.subnet.34
!
! Define the IPSEC peer and its IKE Phase II. PFS is optional
crypto map outside_map 60 match address outside_60_cryptomap
crypto map outside_map 60 set peer your.remote.wan.29
crypto map outside_map 60 set transform-set esp-aes-md5
! optionally enable Perfect Forwarding Secrecy. Disabled by default. It's more secure, but requires more processor.
crypto map outside_map 60 set pfs group5
! optionally enable aggressive mode (off by default and not encouraged). Aggressive mode is faster to setup but less secure.
crypto map outside_map 60 set phase1-mode aggressive
!
! Define the tunnel-group peer address and Pre-Shared Key. This is also where you configure address-pool, deafult-group-policy
tunnel-group your.remote.wan.29 type ipsec-l2l
tunnel-group your.remote.wan.29 ipsec-attributes
pre-shared-key #your.complex.key.here#
!
! Attach it to the outside interface. Note that you'll use your outside intefaces "ifname" and it IS case sensitive.
! If you already have IPSEC running then this is already done.
crypto map outside_map interface Outside
crypto isakmp enable Outside
!
You want your workstation at H.Q. at your.local.subnet.15 to be able to Remote Desktop (TCP3389) to you server at your.remote.subnet.34. Your remote branch has a WAN IP address of your.remote.wan.29:
!
! Define "interesting" traffic to determine which traffic gets encrypted.
! In this case it's any packet from the local box with a destination address of the remote server, TCP port 3389 and ICMP traffic.
! Note that THIS ACL must be exacly the same, with source and destination addresses reversed, on the IPSEC peer at the other end.
! If you don't control both peers then it may be advisable to use simple host-based ACLs and leave off the ports.
! Naturally, this is less secure that specifying the ports here. You can always add an additional ACL (which doesn't have to match at the far end)
! on the tunnel-group with the "vpn-group-policy" option.
!
access-list outside_60_cryptomap extended permit tcp host your.local.subnet.15 host your.remote.subnet.34 eq 3389
access-list outside_60_cryptomap extended permit icmp host your.local.subnet.15 host your.remote.subnet.34
!
! Define IKE Phase I Parameters
! IKE Phase I authenticates IPSec peers and negotiates IKE SAs during this phase.
! This sets up a secure channel for negotiating IPSec SAs in phase 2.
!
crypto isakmp policy 20
authentication pre-share
encryption aes-256
hash md5
group 5
lifetime 14400
!
! Define IKE Phase II IPSEC transformations
! IKE Phase II negotiates IPSec SA parameters and sets up matching IPSec SAs in the peers.
!
crypto ipsec transform-set esp-aes-md5 esp-aes-256 esp-md5-hmac
!
!
! NAT considerations
! You may want to disable NAT across the IPSEC tunnel. In a SMB environment, there is probably no need or desire to source NAT.
! So, add and additional line to your existing nat exception ACL or create one. Here, we add a line to the existing inside_nat0_outbound ACL.
! This bit is a bet beyond the scope of this article
access-list inside_nat0_outbound extended permit ip host your.local.subnet.15 host your.remote.subnet.34
!
! Define the IPSEC peer and its IKE Phase II. PFS is optional
crypto map outside_map 60 match address outside_60_cryptomap
crypto map outside_map 60 set peer your.remote.wan.29
crypto map outside_map 60 set transform-set esp-aes-md5
! optionally enable Perfect Forwarding Secrecy. Disabled by default. It's more secure, but requires more processor.
crypto map outside_map 60 set pfs group5
! optionally enable aggressive mode (off by default and not encouraged). Aggressive mode is faster to setup but less secure.
crypto map outside_map 60 set phase1-mode aggressive
!
! Define the tunnel-group peer address and Pre-Shared Key. This is also where you configure address-pool, deafult-group-policy
tunnel-group your.remote.wan.29 type ipsec-l2l
tunnel-group your.remote.wan.29 ipsec-attributes
pre-shared-key #your.complex.key.here#
!
! Attach it to the outside interface. Note that you'll use your outside intefaces "ifname" and it IS case sensitive.
! If you already have IPSEC running then this is already done.
crypto map outside_map interface Outside
crypto isakmp enable Outside
!
Thursday, May 27, 2010
limiting access for Remote Access IPSec clients on a Cisco ASA
So you have a Cisco ASA and you want to limit a particular user's access. It's a common scenario and one that's pretty simple to deal with. This works for 7.2(3) and I believe the commands are the same for 8.x
!! Create the user normally
username BobDobbs password *****
!! Assign the user a static IP. I use one that is in the same network as the Group's ip pool, but not in the pool.
!! For example if the pool is 192.168.4.2/24 - 192.168.4.60/24, I'd assign this user 192.168.4.61.
username BobDobbs attributes
vpn-group-policy RA-Client-Policy
vpn-framed-ip-address x.x.x.x 255.255.255.0
!! Create an ACL which permits the new user's address to do what you want, block them from doing anything else, then allow everyone else (or whatever you deem appropriate)
access-list RA-Client-ACL-01 extended permit ip host x.x.x.x host y.y.y.y
access-list RA-Client-ACL-01 extended deny ip host x.x.x.x any
access-list RA-Client-ACL-01 extended permit ip any any
!! Finally, apply that ACL to the group-policy
group-policy RA-Client-Policy attributes
vpn-filter value RA-Client-ACL-01
end
!! Create the user normally
username BobDobbs password *****
!! Assign the user a static IP. I use one that is in the same network as the Group's ip pool, but not in the pool.
!! For example if the pool is 192.168.4.2/24 - 192.168.4.60/24, I'd assign this user 192.168.4.61.
username BobDobbs attributes
vpn-group-policy RA-Client-Policy
vpn-framed-ip-address x.x.x.x 255.255.255.0
!! Create an ACL which permits the new user's address to do what you want, block them from doing anything else, then allow everyone else (or whatever you deem appropriate)
access-list RA-Client-ACL-01 extended permit ip host x.x.x.x host y.y.y.y
access-list RA-Client-ACL-01 extended deny ip host x.x.x.x any
access-list RA-Client-ACL-01 extended permit ip any any
!! Finally, apply that ACL to the group-policy
group-policy RA-Client-Policy attributes
vpn-filter value RA-Client-ACL-01
end
Subscribe to:
Posts (Atom)