Архив метки: vpn

Cisco: L2TP-IPSEC на Cisco 2811

http://pro-voip.com.ua cisco

L2TP создает туннель между двумя точками — в нашем случае (Remote Access VPN) клиента и сервера — но не производит шифрование. Для обеспечения шифрования данных, передаваемых в туннеле L2TP, используем IPSec.

 

 

http://pro-voip.com.ua cisco l2tp ipsec

 

 

Настройка L2TP

Алгоритм поднятия L2TP-туннеля на Cisco почти такой же, как алгоритм поднятия PPTP-туннеля, отличается только сам протокол — вместо pptp, указываем l2tp, что вполне логично.

1. vpdn
— глобально включаем vpdn:

Router(config)#vpdn enable

2. vpdn-group
— создаем и настраиваем vpdn-группу:

Router(config)#vpdn-group L2TP-IPSEC
Router(config-vpdn)#accept-dialin
Router(config-vpdn-acc-in)#protocol l2tp
Router(config-vpdn-acc-in)#virtual-template 3

3. interface virtual-template
— создаем и настраиваем шаблон виртуального интерфейса:

Router(config)#interface virtual-template 3
Router(config-if)# ip unnumbered FastEthernet0/0
Router(config-if)#peer default ip address pool L2TP-IPSEC-POOL
Router(config-if)#encapsulation ppp

4. ip local pool
— создаем пул адресов, которые будут выдаваться при поднятии туннеля:

Router(config)#ip local pool L2TP-IPSEC-POOL 50.50.50.1 50.50.50.15

5. username
— создаем пользователя:

Router(config)#aaa new-model
Router(config)#aaa authentication ppp default local
Router(config)#aaa authorization network default local
Router(config)#username vpn password strong_pass

 

Настройка IPSec

IPSec — это не протокол, а стандарт, состоящий из 3 протоколов:

  • ESP (Encapsulating Security Payload)  шифрует данные
  • AH (Authentication Header) отвечает за аутентификацию источника и проверку целостности данных
  • IKE (Internet Key Exchange protocol) используется для согласования параметров и создания защищенного туннеля

Процесс согласования параметров и создания туннеля происходит в 2 этапа — первая и вторая фаза IKE. В результате работы IKE создается 2 туннеля — ISAKMP-туннель и, собственно, защищенный туннель для передачи данных. ISAKMP-туннель после второй фазы IKE не разрывается, он служит для обновления ключей шифрования основного канала (ключи обновляются каждые N секунд, время обновления можно задать в настройках isakmp policy командой lifetime)

 

При первой фазе IKE стороны «меряются» ISAKMP-полисями, поэтому первым делом…

1. crypto isakmp policy
— создаем ISAKMP policy

ISAKMP policy используется для создания ISAKMP Tunnel при первой фазе IKE. Уже по ISAKMP туннелю стороны договариваются об SA (Security Association) основного шифрованого канала (метод шифрования, ключи). Создание второго туннеля уже для шифрования данных — это вторая фаза IKE.

Чем меньше номер policy, тем она приоритетнее. Если сторонам не удалось согласовать параметры для построения ISAKMP туннеля, используя политику, например, 10, то они переходят к согласованию, используя политику 20 и т.д.

  • номер политики — 10
  • алгоритм шифрования — 3des
  • метод аутентификации — pre-shared keys
  • задаем длину ключа — Diffie-Hellman (DH) группа 2 — 1024 bit
  • алгоритм хеширования — md5
  • время жизни ключа шифрования — 3600 сек — 1 час, после истечения lifetime ключ меняется
Router(config)#crypto isakmp policy 10
Router(config-isakmp)#encryption 3des
Router(config-isakmp)#authentication pre-share
Router(config-isakmp)#group 2
Router(config-isakmp)#hash md5
Router(config-isakmp)#lifetime 3600

 

2. crypto isakmp key
— создаем pre-shared key, который используется для создания ISAKMP-туннеля:

Router(config)#crypto isakmp key cisco address 0.0.0.0 0.0.0.0 no-xauth
Router(config)#crypto isakmp keepalive 3600

Смотрим параметры новосозданной ISAKMP-полиси:

Router#show crypto isakmp policy

Global IKE policy
Protection suite of priority 10
encryption algorithm:    Three key triple DES
hash algorithm:        Message Digest 5
authentication method:    Pre-Shared Key
Diffie-Hellman group:    #2 (1024 bit)
lifetime:        3600 seconds, no volume limit
Router#show crypto isakmp key
Keyring      Hostname/Address                            Preshared Key

default      0.0.0.0        [0.0.0.0]                    cisco

 

При второй фазе IKE для создания туннеля для шифрованых данных стороны «меряются» transform-set’ами

3. crypto ipsec transform-set
— cоздаем transform-set  — набор протоколов, которые поддерживает сторона для установления IPSEC. transform-set определяет, как будут шифроваться данные:

Router(config)#crypto ipsec transform-set 3DES-MD5 esp-3des esp-md5-hmac
Router(cfg-crypto-trans)#mode transport

Есть два режима работы IPSec:

  • туннельный (он включен по умолчанию) — шифруются данные вместе с ip-заголовками
  • транспортный — шифруются только данные

Для работы совместо с L2TP нам нужен транспортный режим, что мы и задаем в настройка transform-set’a командой mode transport

 

4. crypto dynamic-map
— создаем динамическую карту шифрования, назовем ее, например, 3DES-MD5-DYNMAP, и к ней привязываем transform-set:

Router(config)#crypto dynamic-map 3DES-MD5-DYNMAP 10
Router(config-crypto-map)#set transform-set 3DES-MD5

5. crypto-map

— создаем статическую карту шифрования, связываем динамическую карту шифрования со статической:

Router(config)#crypto map 3DES-MD5-MAP 10 ipsec-isakmp dynamic 3DES-MD5-DYNMAP

6. interface
— привязываем статическую карту шифрования к интерфейсу:

Router(config)#interface fastEthernet 0/0
Router(config-subif)#crypto map 3DES-MD5-MAP

*Jun 16 11:46:56.183: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ONip

 

При подключении к L2TP/IPSec в VPN-клиенте помимо ip-адреса сервера, логина и пароля, нужно указать ключ (Shared Secret). Этот ключ мы задавали командой crypto isakmp key, в моем примере ключ cisco.

Cisco: PPTP-сервер на Cisco 2811

http://pro-voip.com.ua cisco

PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. (c) wiki

VPDN (Virtual Private Dialup Network)

Сценарий 1

Подключаемся к PPTP-серверу, получаем отдельный белый ip и с этим ip выходим в интернет.
Получается, что на каждое подключение — свой белый ip-адрес.
На стороне провайдера необходим маршрут в нашу сеть, которая выдается для PPTP.

 

 

cisco-pptp-scenario1

 

 

1. Включаем VPDN

Router(config)#vpdn enable

2. Создаем VPDN-группу

Заходим в режим конфигурации VPDN-группы:

  • разрешаем входящие «dial-in» запросы
  • указываем протокол pptp
  • определяем шаблон, который будем использовать при создании виртуального интерфейса
Router(config)#vpdn-group VPN-1
Router(config-vpdn)#accept-dialin
Router(config-vpdn-acc-in)#protocol pptp
Router(config-vpdn-acc-in)#virtual-template 1

3. Создаем virtual-template для VPDN-группы 

При подключении пользователя к PPTP-серверу создается Virtual-Access-интерфейс.  Virtual-Access-интерфейс клонируется с Virtual-Template-интерфейса (с шаблона).

Создаем шаблон virtual-template и настраиваем параметры будущего виртуального интерфейса:

  • задаем инкапсуляцию ppp
  • список адресов, назначаемых виртуальному интерфейсу выделяется динамически с пула VPN-POOL-1
  • задаем реальный интерфейс, который клонируем в виртуальный
  • отключаем keepalive
  • задаем параметры ppp — шифрование (encrypt) и перечисляем возможные методы аутентификации (authentication)
Router(config)#interface virtual-template 1
Router(config-if)#encapsulation ppp
Router(config-if)#peer default ip address pool VPN-POOL-1
Router(config-if)#ip unnumbered FastEthernet 0/0
Router(config-if)#no keepalive
Router(config-if)#ppp encrypt mppe auto
Router(config-if)#ppp authentication pap chap ms-chap ms-chap-v2

4. Создаем пул адресов VPN

Router(config)#ip local pool VPN-POOL-1 50.50.50.1 50.50.50.15

5. Создаем пользователя

  • включаем aaa new-model (если еще не включена)
  • ppp аутентификация и авторизация будет производиться с использованием локальной базы пользователей
  • добавляем пользователя
Router(config)#aaa new-model
Router(config)#aaa authentication ppp default local
Router(config)#aaa authorization network default local
Router(config)#username vpn password strong_pass

 


 

Сценарий 2

Если нет отдельной сети белых ip-адресов для VPN-пула, можно использовать сеть серых адресов + NAT

Подключаемся к PPTP-серверу, серый ip, NAT’им «серый» ip в «белый» и с «белым» ip выходим в интернет.
В итоге на все подключения — 1 «белый» ip.

 

 

cisco-pptp-scenario2

 

 

1. Включаем VPDN

Router(config)#vpdn enable

2. Создаем VPDN-группу

Router(config)#vpdn-group VPN-2
Router(config-vpdn)#accept-dialin
Router(config-vpdn-acc-in)#protocol pptp
Router(config-vpdn-acc-in)#virtual-template 2

3. Создаем virtual-template для VPDN-группы 

+ NAT

! NAT включаем на Virtual-Template -интерфейсе, а не на реальном FastEthernet0/0:

Router(config)#interface virtual-template 2
Router(config-if)#encapsulation ppp
Router(config-if)#peer default ip address pool VPN-POOL-2
Router(config-if)#ip unnumbered FastEthernet 0/0
Router(config-if)#no keepalive
Router(config-if)#ppp encrypt mppe auto
Router(config-if)#ppp authentication pap chap ms-chap ms-chap-v2

Router(config-if)#ip nat enable
Router(config-if)#ip nat inside

4. Создаем пул адресов VPN

Router(config)#ip local pool VPN-POOL-2 192.168.1.1 192.168.1.254

5. Создаем пользователя

Router(config)#aaa new-model
Router(config)#aaa authentication ppp default local
Router(config)#aaa authorization network default local
Router(config)#username vpn password strong_pass

6. Завершаем настройку NAT

+ NAT

nat inside — виртуальный интерфейс
nat outside — реальный интерфейс Fa0/1

Router(config)#interface FastEthernet0/1
Router(config-subif)#ip nat enable
Router(config-subif)#ip nat outside

C помощью стандартного access-list 1 указываем какую сеть натить и в какой интерфейс:

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat inside source list 1 interface FastEthernet0/1 overload

 


 

Дополнение

Если настроить на Cisco оба вышеописаных сценария, Cisco ругнется, что у нас две VPDN-группы с одинаковой конфигурацией:

% Warning, the vpdn groups VPN-1 and VPN-2 have the same configuration

— указан один и тот же протокол — pptp

И правильно ругнется —  когда пользователь будет подключаться по PPTP, как циске выбрать, к какой группе этого пользователя прилепить — VPN-1 или VPN-2 ? Работать PPTP-сервер в таком случае будет, но будет активной только одна VPDN-группа — та, которая была создана первой, т.е. VPN-1.

Если все-таки нужно несколько групп, можно поступить следующим образом: для подключения к разным VPDN-группам нужно использовать разные ip-адреса интерфейсов cisco для pptp-сервера:

Router(config)#vpdn-group VPN-1
Router(config-vpdn)#source-ip 10.10.10.1