Сетевые решения — PPTP Server

PPTP (Point-to-Point tunneling protocol) — туннельный протокол, позволяющий установить защищенное соединение с сервером. Данный протокол чаще всего используется для организации удаленного доступа в корпоративную сеть. Клиент PPTP установлен по умолчанию как минимум в операционных системах от Microsoft. В данной статье мы будем рассматривать настройку PPTP сервера на маршрутизаторе Cisco.

Содержание:

Часть 1. Базовая настройка

Рабочие станции с операционной системой Microsoft Windows по умолчанию поддерживают протокол PPTP. Поэтому, использовать данный тип подключения к корпоративной сети будет наиболее удобным для многих пользователей и относительно безопасным.

Настройка аутентификации:

aaa new-model
aaa authentication ppp default local-case
user cisco privilege 0 password cisco

Пароль для имени пользователя задается с помощью команды password, а не secret. В противном случае, этап аутентификации клиента пройдет с ошибкой. Подробнее о типах шифрования паролей и уровнях привилегий можно прочитать здесь.

Настройка Virtual Private Dialup Network (VPDN) для приема входящих соединений по протоколу PPTP:

vpdn-group VPDN-PPTP
 accept-dialin
  protocol pptp
  virtual-template 1
  exit
 pptp tunnel echo 10
 ip pmtu
 ip mtu adjust

Здесь задается наименование протокола protocol pptp, ссылка на виртуальный интерфейс для VPN пользователей virtual-template 1, команды для взаимодействия c пакетами ip pmtu и ip mtu adjust. Подробнее об этих командах можно узнать на сайте cisco.com.

Создание виртуального интерфейса, который будет играть роль IP шлюза для PPTP клиентов:

interface Loopback0
 description - LO-PPTP -
 ip address 10.10.10.1 255.255.255.0

Настройка пула IP адресов для автоматической выдачи PPTP клиентам:

ip local pool POOL-PPTP 10.10.10.2 10.10.10.254

Настройка DNS сервера для выдачи клиентам:

async-bootp dns-server 10.10.1.3

Настройка виртуального интерфейса:

interface Virtual-Template1
 description - PPTP -
 ip unnumbered Loopback0
 ip nat inside
 ip virtual-reassembly
 autodetect encapsulation ppp
 peer ip address forced
 peer default ip address pool POOL-PPTP
 ppp encrypt mppe auto
 ppp authentication ms-chap-v2

Здесь указываем интерфейс Loopback, тип инкапсуляции autodetect encapsulation ppp, автоматическую выдачу IP адресов peer ip address forced из пула peer default ip address pool POOL-PPTP, тип шифрования трафика ppp encrypt mppe auto, тип аутентификации ppp authentication ms-chap-v2. Отдельно отмечу команду ip nat inside, которая вкупе с другими базовыми настройками NAT необходима, если вы хотите обеспечить возможность использования интернет-ресурсов PPTP клиентами через собственное (компании) подключение к сети Интернет.

Суммируя вышесказанное, базовая настройка будет выглядеть так:

aaa new-model
aaa authentication ppp default local-case

user cisco privilege 0 password cisco

vpdn enable

vpdn-group VPDN-PPTP
 accept-dialin
  protocol pptp
  virtual-template 1
  exit
 pptp tunnel echo 10
 ip pmtu
 ip mtu adjust

interface Loopback0
 description - LO-PPTP -
 ip address 10.10.10.1 255.255.255.0

interface Virtual-Template1
 description - PPTP -
 ip unnumbered Loopback0
 ip nat inside
 ip virtual-reassembly
 autodetect encapsulation ppp
 peer ip address forced
 peer default ip address pool POOL-PPTP
 ppp encrypt mppe auto
 ppp authentication ms-chap-v2

async-bootp dns-server 10.10.1.3

ip local pool POOL-PPTP 10.10.10.2 10.10.10.50

Часть 2. Выдача конкретных IP адресов PPTP клиентам

Теперь рассмотрим ситуацию, когда нам необходимо предоставить выделенный IP адрес одному PPTP клиенту или несколько адресов группе пользователей, чтобы, например, ограничить их доступ к сети при помощи списка доступа. Для этого к уже существующей конфигурации нужно добавить следующее.

Для одного пользователя:

aaa authorization network default local

aaa attribute list user-ivanov
 attribute type addr "10.10.10.51" service ppp protocol ip

username ivanov privilege 0 password IvanovsPassword
username ivanov aaa attribute list user-ivanov

Для группы пользователей:

aaa attribute list group-managers
attribute type addr-pool "pool-managers" service ppp protocol ip

username ivanov privilege 0 password ManagerPassword
username ivanov aaa attribute list group-managers

ip local pool pool-managers 10.10.10.100 10.10.10.150

После этого, когда мы уже будем иметь представление о том, какие IP адреса и кому назначаются, можно создать список доступа и повесить на interface Virtual-Template 1.

Есть вариант убрать общий пул IP адресов и оставить только тот адрес, который привязан для выдачи конкретному пользователю. В данном случае только данный пользователь сможет подключиться к сети и получить предназначенный для него IP адрес.

Сведу воедино список команд:

aaa new-model
!
aaa authentication ppp default local-case
aaa authorization network default local
!
aaa attribute list user-ivanov
attribute type addr 10.10.10.51 service ppp protocol ip mandatory
!
username ivanov privilege 0 password 0 IvanovPassword
username ivanov aaa attribute list user-ivanov

vpdn-group VPDN-PPTP
! Default PPTP VPDN group
accept-dialin
protocol pptp
virtual-template 1
pptp tunnel echo 10
ip pmtu
ip mtu adjust 

interface Virtual-Template1
ip unnumbered Loopback0
ip virtual-reassembly
autodetect encapsulation ppp
ppp encrypt mppe auto
ppp authentication ms-chap-v2

Часть 3. Настройка аутентификации через сервер ACS

Настройки данного пункта восстанавливаю по памяти. Прежде всего нужно настроить взаимодействие маршрутизатора с сервером ACS по протоколу tacacs+:

tacacs-server host 10.10.1.4 single-connection
tacacs-server key SharedServerPassKey

Для проверки взаимодействия с сервером можно включить аутентификацию на устройство через сам сервер и проверить, можете ли вы зайти на маршрутизатор используя свои идентификационные данные с сервера ACS. Для этого, на сервере ACS создайте профиль маршрутизатора в меню Network Configuration, где укажите его IP адрес (или адреса, если их несколько), укажите Shared Secret, определите группу. После этого создайте нового пользователя, поместите его в группу пользователей, назначьте права группе пользователей (или конктретно пользователю, на ваше усмотрение). Затем на маршрутизаторе добавьте следующие команды и проверьте аутентификацию (предварительно сделав logoff) введя имя пользователя и пароль, которые мы создали на сервере:

aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+ enable

Если у вас получилось зайти на маршрутизатор под именем пользователя, указанного в ACS, то можно перейти к настройке PPTP аутентификации.

Сначала проделаем предварительную настройку на сервере ACS. В меню Interface Configuration кликните по пункту TACACS+ (Cisco IOS) и выставьте в нем следующие настройки (может быть здесь что-то лишнее, но у меня все работало):

Далее перейдите в меню Group Settings, выберите группу, к которой прикреплен пользователь и кликните Edit Settings. Установите галочки в тех полях, которые касаются PPP соединения, например, как на картинке (на картинке отражено не все, у себя в ACS прокрутите ниже и найдите остальные разделы PPP):

После этого нужно добавить одну строку в маршрутизатор, тем самым указав из какой базы данных аутентифицировать пользователей:

aaa authentication ppp default group tacacs+

Если при подключении возникает ошибка 691, значит вы не правильно провели конфигурацию PPP на ACS, проверьте наличие галочек в нужных местах, проверьте логи сервера ACS.

Если при подключении возникает ошибка 734, значит как минимум до сервера аутентификации вы добрались, но проблема возникла на стыке протокола аутентификации. Ошибка 734 у меня возникла по причине того, что сервер ACS интегрирован с контроллером домена на Windows Server где хранятся все учетные записи в Active Directory. Поэтому когда ACS получает запрос на аутентификацию PPTP пользователя он перенаправляет запрос в Active Directory, который умеет отвечать только по протоколу PAP. Данная информация взята с сайта cisco.com. Пруфлинк не дам, если он вам нужен, можете найти его сами. Отсюда о каком-либо шифровании можно забыть и в данной ситуации я бы не рекомендовал использовать PPTP в дальнейшем. Но если вам нужно, чтобы данная схема заработала, тогда придется немного изменить конфигурацию на самом маршрутизаторе — убрать mppe шифрование и изменить протокол аутентификации на PAP:

interface Virtual-Template1
 description - PPTP -
 ip unnumbered Loopback0
 ip nat inside
 ip virtual-reassembly
 autodetect encapsulation ppp
 peer ip address forced
 peer default ip address pool POOL-PPTP
 ppp authentication pap

Понравилась статья? Поделиться с друзьями:
TelecomBook
Яндекс.Метрика