PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. (c) wiki
VPDN (Virtual Private Dialup Network)
Сценарий 1
Подключаемся к PPTP-серверу, получаем отдельный белый ip и с этим ip выходим в интернет.
Получается, что на каждое подключение — свой белый ip-адрес.
На стороне провайдера необходим маршрут в нашу сеть, которая выдается для PPTP.
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.
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