суббота, 7 декабря 2013 г.

Easy VPN Server and Remote hardware client

Готовлюсь к экзамену 642-637 SECURE. Все лабораторные работы проходили спокойно и по расписанию. Все понятно. Но тут дошло дело до Easy VPN. Название не предвещает ничего плохого, наоборот, говорит о том, что это «легко». Не тут то было. Настроить сервер через CLI в IOS для подключения программного клиента из Windows не составило большого труда, хотя конфигурация в количестве строчек выглядит внушительно. Проблемы начались, когда я подошел к конфигурации «сервер – аппаратный клиент». В рамках экзамена SECURE я рассматриваю соединение двух IOS устройств. Несмотря на то, что в офисе имеется два 2911, я решил реализовать схемы лабораторных работ в GNS.
Итак, изучив теорию, поняв, какие параметры IKE устраивают программные клиенты, какие подходят для аппаратных, я решил запустить простую схему сервер клиент. Уточню, что клиент находится в режиме «network-extension». Схема указана на рисунке ниже. В данном случае я столкнулся с проблемой, что клиент не помещает маршрут на приватную сеть сервера VPN в таблицу маршрутизации, хотя в split-tunnel она приезжает. Для того чтобы частная сеть клиента видела частную сеть сервера на маршрутизаторе клиента необходимо прописать статический маршрут на сеть сервера через внешний интерфейс. На этом интерфейсе уже есть карта шифрования, которая подхватит пакеты с нужным адресом назначения и завернет их в туннель.

Не буду приводить тут выводы дебагов, пингов и трасс. Это всё вам придется исследовать самостоятельно. Тут я положу схему сети и конфиги маршрутизаторов из GNS. Для этих экспериментов я использовал образ «c3745-adventerprisek9-mz.124-15.T14».



R1:
!
interface FastEthernet0/0
 description Local LAN
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed auto
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!

R2:
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
aaa new-model
!
!
aaa authentication login ra-usrs local
aaa authorization network ra-grps local 
!
!
aaa session-id common
memory-size iomem 5
ip cef    
!
!
!
!
no ip domain lookup
ip domain name lab.local
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!         
!
!
!
!
!
!
username ra1 secret 5 $1$mTlr$i9ToAd8VhuCRGCGMVHAn5/
username ra2 secret 5 $1$/crY$Ibo3W1NlA3Du1VmNuX6FI1
archive
 log config
  hidekeys
!
crypto isakmp policy 100
 encr aes
 authentication pre-share
 group 2
crypto isakmp keepalive 20 3
crypto isakmp nat keepalive 30
!
crypto isakmp client configuration group ra2_grp
 key ra2key
 domain fqdn.domain.ltd
 acl split-acl
 save-password
!
!
crypto ipsec transform-set tset1 esp-aes esp-sha-hmac 
!
crypto dynamic-map dyn-cmap 10
 set transform-set tset1 
 reverse-route
!
!
crypto map stat-cmap client authentication list ra-usrs
crypto map stat-cmap isakmp authorization list ra-grps
crypto map stat-cmap client configuration address respond
crypto map stat-cmap 10 ipsec-isakmp dynamic dyn-cmap 
!
!
!
!
!
!
!
interface FastEthernet0/0
 description Local LAN
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description Internet Connection
 ip address 10.1.1.1 255.255.255.0
 duplex auto
 speed auto
 crypto map stat-cmap
!
interface FastEthernet1/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
ip local pool ra1pool 192.168.20.10 192.168.20.20
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
ip access-list extended split-acl
 permit ip 192.168.1.0 0.0.0.255 any
!
!
!
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
!
!
end

R3:
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
ip cef
!
!
!
!
no ip domain lookup
ip domain name lab.local
!         
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
archive   
 log config
  hidekeys
!
!
crypto ipsec client ezvpn ra2
 connect auto
 group ra2_grp key ra2key
 mode network-extension
 peer 10.1.1.1
 username ra2 password ra2pwd
 xauth userid mode local
!
!
!
!
!
!
!
interface FastEthernet0/0
 ip address 192.168.5.1 255.255.255.0
 duplex auto
 speed auto
 crypto ipsec client ezvpn ra2 inside
!
interface FastEthernet0/1
 ip address 10.1.1.2 255.255.255.0
 duplex auto
 speed auto
!
ip forward-protocol nd
ip route 192.168.1.0 255.255.255.0 FastEthernet0/1
!
!
no ip http server
no ip http secure-server
!
ip access-list extended split-acl
 permit ip 192.168.1.0 0.0.0.255 any
!
access-list 111 permit icmp host 192.168.5.2 any
access-list 112 permit icmp any any
access-list 112 permit esp any any
access-list 112 permit ip any any
!
!         
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R4:
!
interface FastEthernet0/0
 ip address 192.168.5.2 255.255.255.0
 duplex auto
 speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.5.1
!

Прочитав главу о Easy VPN Remote в официальном руководстве SECURE, я сразу захотел реализовать пример из книги. Там рассматривался пример IOS Easy VPN Server IOS Eazy VPN Client используя VTI. А что это означает? Это означает, что мы можем использовать QoS. Сама технология качества обслуживания тут не рассматривается, но есть пример, как реализовать схему с использованием VTI. Ниже схема из GNS и конфиги маршрутизаторов.

R1:
!
interface FastEthernet0/0
 description Local LAN
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!

R2:
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
aaa new-model
!
!
aaa authentication login LOCAL-AUTHEN local
aaa authorization network LOCAL-AUTHOR local 
!
!
aaa session-id common
memory-size iomem 5
ip cef    
!
!
!
!
no ip domain lookup
ip domain name lab.local
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!         
!
!
!
!
!
!
username vpnuser privilege 0 secret 5 $1$9RkP$oHblvlcsQ00.rnnMgB/bN0
archive
 log config
  hidekeys
!
crypto isakmp policy 3
 encr 3des
 authentication pre-share
 group 2
!
crypto isakmp client configuration group MY-GROUP
 key mykey1
 domain mydomain.com
 pool MY-POOL
 acl MY-SPLIT-TUNNEL
 save-password
crypto isakmp profile MY-ISA-PROFILE
   match identity group MY-GROUP
   client authentication list LOCAL-AUTHEN
   isakmp authorization list LOCAL-AUTHOR
   client configuration address respond
   client configuration group MY-GROUP
   virtual-template 1
!
!
crypto ipsec transform-set MY-TSET esp-aes esp-sha-hmac 
!
crypto ipsec profile MY-PROFILE
 set transform-set MY-TSET 
 set isakmp-profile MY-ISA-PROFILE
!
!
!
!
!
!
!
!
interface FastEthernet0/0
 description Local LAN
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description Internet Connection
 ip address 10.1.1.1 255.255.255.0
 duplex auto
 speed auto
!
interface Virtual-Template1 type tunnel
 ip unnumbered FastEthernet0/1
 tunnel source FastEthernet0/1
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile MY-PROFILE
!
ip local pool MY-POOL 10.255.0.1 10.255.0.100
ip forward-protocol nd
ip route 10.1.2.0 255.255.255.0 10.1.1.2
!
!
no ip http server
no ip http secure-server
!
ip access-list extended MY-SPLIT-TUNNEL
 permit ip 192.168.1.0 0.0.0.255 any
!
access-list 111 permit icmp any any
!
!
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!         
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
!
!
end

R3:
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
ip cef
!
!
!
!
no ip domain lookup
ip domain name lab.local
!         
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
username vpnuser password 0 vpnpass
archive
 log config
  hidekeys
!
!
!
!
!
crypto ipsec client ezvpn MY-EXVPN-CLIENT
 connect auto
 group MY-GROUP key mykey1
 mode network-extension
 peer 10.1.1.1
 virtual-interface 1
 username vpnuser password vpnpass
 xauth userid mode local
!
!
!
!
!
!         
!
!
interface FastEthernet0/0
 ip address 192.168.5.1 255.255.255.0
 duplex auto
 speed auto
 crypto ipsec client ezvpn MY-EXVPN-CLIENT inside
!
interface FastEthernet0/1
 description Internet Connection
 ip address 10.1.2.2 255.255.255.0
 duplex auto
 speed auto
 crypto ipsec client ezvpn MY-EXVPN-CLIENT
!
interface Virtual-Template1 type tunnel
 no ip address
 tunnel mode ipsec ipv4
!
ip forward-protocol nd
ip route 10.1.1.0 255.255.255.0 10.1.2.1
!
!         
no ip http server
no ip http secure-server
!
access-list 111 permit icmp any any
!
!
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

R4:
!
interface FastEthernet0/0
 ip address 192.168.5.2 255.255.255.0
 duplex auto
 speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.5.1

R5:
!
interface FastEthernet0/0
 description Local LAN
 ip address 10.1.1.2 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description Internet Connection
 ip address 10.1.2.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet1/0
 description Internet Connection
 ip address 172.16.0.1 255.255.255.0
 duplex auto
 speed auto
!
ip route 192.168.1.0 255.255.255.0 10.1.1.1
!

В завершении вставляю несколько полезных ссылок, которые мне помогли разобраться с EZVPN и хорошую картинку одного из авторов блога в ссылках.



Комментариев нет:

Отправить комментарий