Часть 14 PPTP VPN 

 

 †Оглавление†

<<< Предыдущая Глава | Следующая Глава >>>

 

pfSense может использоваться в качестве сервера pfsense VPN PPTP (как один из вариантов организации VPN). Это весьма привлекательная возможность, поскольку клиент PPTP имеется практически в любой версии Windows или OS X выпущенной за последние 10 лет. Кроме того вы можете предоставить услуги по передачи сервиса внутреннему PPTP серверу. Общее обсуждение VPN, доступных в pfSense, их достоинства и недостатки описываются в главе 12 "Виртуальные частные сети".

PPTP предупреждение безопасности

Если вы не использовали PPTP раньше, вам следует обратиться к разделу 12.2.7 "Криптографическая защита" рассказывающему о безопасности VPN. PPTP достаточно широко используется, однако это не самое безопасное решение VPN

PPTP и правила брандмауэра

По умолчанию, когда вы используете перенаправление PPTP или включаете сервер PPTP, для WAN будут автоматически добавлены скрытые правила брандмауэра, разрешающие TCP 1723 и трафик GRE от любого источника до адреса получателя. Вы можете отключить поведение по умолчанию на pfSense 1.2.3 и более поздних версиях отметив чекбокс <Отключить все авто добавления VPN правил> (Disable all auto- added VPN rules) в меню Система >> Дополнительно (System >> Advanced). Вы можете захотеть использовать эту возможность, если точно знаете, что ваши PPTP клиенты будут соединяться только с определённых удалённых сетей. Это позволит предотвратить потенциальные злоупотребления с произвольных узлов, хотя в тех развертываниях системы, где пользователи мобильны и соединения производятся с различных узлов, знать все подключения невозможно и не практично использовать сжатый набор правил, в итоги приводящий к проблемам пользователей.

PPTP и multi-WAN

К сожалению, из-за способа работы PPTP и способа работы PF с протоколом GRE, возможность запуска PPTP сервера реализована только для основного WAN интерфейса.

 

Ограничения PPTP

Код отслеживания состояния лежащий в основе брандмауэра PF для протокола GRE позволяет отслеживать только единственную сессию на публичном IP внешнего сервера. Это означает, что если вы используете соединение PPTP VPN, только одна внутренняя машина одновременно может соединиться с PPTP сервером в интернет. Тысяча машин может одновременно соединиться с тысячей различных серверов PPTP, но только одна машина может присоединяться к одному серверу одновременно. Единственная возможность - использовать множество публичных IP на вашем брандмауэре, один на клиент, или использовать множество публичных IP на внешнем PPTP сервере. С другими типами VPN соединений таких проблем нет. Это же ограничение означает, что если вы добавляете функции PPTP сервера или перенаправления PPTP, никакие клиенты подключенные через NAT к вашему WAN IP адресу не смогут соединиться с внешним PPTP сервером. Рабочее решение - доступ клиентов в интернет через NAT реализуется с различных публичных IP адресов. Оба этих ограничения позволяют работу в большинстве сред, однако их устранение имеет высокий приоритет для релиза pfSense 2.0. Во время написания этой книги, ведутся разработки позволяющие устранить эти ограничения, хотя говорить о их успехе пока ещё рано.  

 

Конфигурирование сервера PPTP

Для конфигурирования PPTP сервера, перейдите в меню VPN >> PPTP. Выберите Включить PPTPсервер (EnablePPTPserver).

Вам необходимо решить, какие IP адреса использовать для сервера PPTP и клиентов. Обычно, удалённое пространство адресов - часть подсети LAN например такой как 192.168.1.103. Затем вам следует выбрать IP адрес за пределами данного диапазона для адреса сервера, например 192.168.1.244, как показано на рисунке 14.1, "IP адресация PPTP".

Рис.14.1 IP адресация PPTP

NOTE: Эта подсеть может не входить в пределы существующей подсети вашего маршрутизатора. При желании вы можете использовать различный набор IP адресов.

Аутентификация

Можно производить аутентификацию пользователей по локальной базе пользователей, или посредством RADIUS-сервера. RADIUS позволяет соединяться с другим сервером в вашей сети, для целей аутентификации. Такая возможность может использоваться для аутентификации пользователей PPTP с помощью Microsoft Active Directory (см. раздел 24.1 "Аутентификация RADIUS с Windows Server"), или другими RADIUS совместимыми серверами. Для использования RADIUS, установите флаг <Использовать сервер RADIUS> (Use a RADIUS server) и заполните поля во вкладках и . Для аутентификации с использованием локальной базы данных пользователей, снимите данный флаг. Если вы используете RADIUS вам не нужно вам не нужно добавлять пользователей на вкладке Users VPN >> PPTP. Смотрите раздел 14.5.6, "Добавление пользователей" более подробно рассматривающий встроенную систему аутентификации.

Необходимость 128 битного шифрования

Используйте 128 битное шифрование везде где это возможно. Большинство клиентов PPTP поддерживают 128 битное шифрование, таким образом, оно прекрасно работает в большинстве сетевых сред. PPTP достаточно слабо защищён даже при использовании 128 битного шифрования и тем более при 40 и 56 битном. Если специальных требований нет, недопустимо использовать шифрование ниже чем 128 бит для PPTP.

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

Открываем Firewall >> Rules и выбираем закладку PPTP VPN. Эти правила управляют трафиком клиентов PPTP. Пока вы не добавите правила брандмауэра, весь трафик инициируемый клиентами PPTP будет блокироваться. Трафиком исходящим от внутреннего LAN до клиентов PPTP управляют правила брандмауэра LAN. Для начала можно добавить правило разрешающие весь трафик, как показано на рисунке 14.2, "Правила

брандмауэра VPN PPTP", но после тестирования работы следует ввести более жёсткие ограничения на данные правила.

Рисунок 14.2

Добавление пользователей

Добавление пользователей для сервера RADIUS может меняться от версии к версии. Эта процедура выходит за рамки контекста этого раздела, и рассматривается в документации на RADIUS сервер. Добавление пользователей во встроенную базу pfSense производится достаточно просто. Во-первых, выберите VPN >> PPTP и перейдите на вкладку Users. Вы увидите пустую таблицу пользователей показанную на рисунке 14.3, "Вкладка Пользователи PPTP". Нажмите кнопку для добавления пользователя.

Рисунок 14.3

 

После нажатия иконки [+] появится страница редактирования пользователя. Заполните имя и пароль пользователя как показано на рисунке 14.4 "Добавление пользователя PPTP". При желании можно ввести статический IP присваиваемый пользователю.  

Рисунок 14.4  

 

Нажмите Save и вы вернётесь на страницу списка пользователей (рисунок 14.5 "Применение параметров PPTP"), и нажмите кнопку Apply Changes для применения изменений.

Рисунок 14.5

 

Повторите процесс для каждого нового пользователя. В конце концов вы получите полный список подобный показанному на рисунке 14.6 "Список пользователей PPTP".  

Рисунок 14.6  

 

Если вам необходимо отредактировать данные пользователя нажмите иконку [e]. Пользователь может быть удалён нажатием иконки [x].

Возможно увеличение ограничения одновременно работающих пользователей выше жёстко установленного предела 16, через скрытые опции config.xml. Для увеличения предела, перейдите в Diagnostics >> Backup/Restore и нажмите Загрузить конфигурацию (Download Configuration). Откройте загруженный XML бэкап и в текстовом редакторе найдите строку <pptp>.

<pptp>

<n_pptp_units>16</n_pptp_units>

<pptp_subnet>28</pptp_subnet>

 

Как вы уже видели, по умолчанию, установлено 16 клиентов в подсети /28. Чтобы использовать больше клиентов, вам необходимо скорректировать число соединений и подсеть. В следующем примере используется 32 клиентских соединения и используется блок из 32 IP-адресов. Следует заметить, что по существу это не традиционная подсеть, а скорее средство определения диапазона в большей подсети. Из-за этого все IP адреса определяемые "подсетью" применимы.

<pptp>

<n_pptp_units> 32 </n_pptp_units>

<pptp_subnet> 27 </pptp_subnet>

 

Перенаправление PPTP

Перенаправление PPTP позволяет передавать трафик PPTP предназначенный вашему WAN IP адресу на внутренний PPTP сервер. Чтобы задействовать эту функцию, выберите <Перенаправление входящего PPTP соединения> (Redirect incoming PPTP connections) и введите IP адрес вашего внутреннего сервера в строку ввода . Функционально, это действие эквивалентно добавлению записи перенаправления порта 1723 и GRE протокола к вашему внутреннему PPTP серверу, который вы предпочитаете использовать. Существование данного функционала - историческое наследие  m0n0wall, в котором базовый IP фильтр не поддерживал передачу протокола GRE. Возможность была сохранена, поскольку многие пользователи привыкли пользоваться этой функцией и многие предпочитают использование одной записи вместо двух прямых прописываний портов. Правила брандмауэра для протокола GRE и порта1723 добавляются автоматически для WAN. Вам нет необходимости вводить правила брандмауэра при использовании перенаправления PPTP, если у вас не отключено опция <Отключать все авто добавления правил VPN> (Disable all auto-added VPN rules) в меню System >> Advanced. 

 

Проблемы PPTP. 

Этот раздел рассматривает диагностику проблемных ситуаций возникающих при использовании PPTP. 

Для начала убедитесь, что клиентский компьютер соединён с интернетом. Если это верно, обратите внимание на ошибки, которые выдаёт клиент. Windows (кроме Vista) информирует кодом ошибки, который поможет локализовать проблемы. Windows Vista такой информации не предоставляет, и следовательно, затрудняет диагностику отказов соединения, но к счастью, эта проблема решена в Windows 7. Проводить поиск и устранение неисправностей в Vista не рекомендуется. Для тех кто использует не Windows клиенты диагностика проблем примерно такая же, но со своими подходами. 

Error 619 

Ошибка 619 сообщает о том, что происходит повреждение GRE трафика. Практически всегда это результат работы брандмауэра за которым находится клиент. Если клиент находится так же за pfSense, убедитесь, что ни один из сценариев описанных в разделе 14.4 "Ограничения PPTP" не имеет место. Если брандмауэр, за котором находится клиент представляет собой какой-то другой продукт или оборудование, возможно требуется специальная настройка. В некоторых случаях, например при использовании беспроводных провайдеров 3G, клиентам присваиваются частные IP адреса, и вам придётся выбрать другую форму VPN. 

Error 691 

Данная ошибка вызывается недопустимым именем пользователя или паролем. Это означает, что пользователь ввёл некорректное имя или пароль для клиента PPTP. Исправьте имя и/или пароль в соответствии с конфигурацией пользователя в базе данных PPTP или на RADIUS сервере. 

Error 649 

Проходя аутентификацию на RADIUS сервере Microsoft Windows с использованием IAS можно встретить ошибку 649. Она означает, что учётная запись не имеет разрешения набора и вероятной причиной этого может быть: 1. Установка "Deny access" на разрешение набора - в свойствах пользовательского аккаунта Active Directory Users and Computers на вкладке Набор (Dial-in). В зависимости от требуемой конфигурации IAS вы можете установить разрешение доступа (Allow access) или предоставить доступ через политику удалённого доступа (Control access through remote access policy). 2. Истёк срок действия пароля пользователя - соответственно пользователь не может использовать PPTP. 3. Неправильная конфигурация IAS - возможно вы неверно сконфигурировали правила политик и пользователи не могут соединится. 

Соединение PPTP не передаёт трафик

Убедитесь, что вы добавили правила брандмауэра для интерфейса VPN PPTP как было   описано в разделе 14.5.5 "Конфигурирование правил брандмауэра для клиентов PPTP". Так же, следует убедится, что удалённая подсеть работающая через VPN отличается от локальной подсети. Если вы пытаетесь соединиться с сетью 192.168.1.0/24 через VPN, а локальная подсеть клиента имеет адресацию 192.168.1.0/24, трафик предназначенный для удалённой сети никогда не будет пересекать VPN, поскольку находится в локальной сети. Именно поэтому следует выбирать заведомо несвязанную подсеть при использовании VPN, о чём уже говорилось в разделе 4.2.4 "Конфигурация LAN интерфейса". 

 

Хитрости маршрутизации PPTP

Если вы хотите, чтобы выбранные подсети маршрутизировались через туннель PPTP, это можно сделать путём маршрутизации на клиенте. Следующие методы работают на Windows XP, Vista и Windows 7, и возможно могут работать на любой другой платформе. Предполагается, что уже сконфигурировали клиентскую часть не передавать весь трафик через соединение ( т.е. не использовать удалённый шлюз). Во-первых, клиенту PPTP должен быть присвоен статический адрес в профиле пользователя. Это можно сделать используя встроенную аутентификацию, или посредством RADIUS. Статический адрес должен находится за пределами общего пула адресов. Данный способ должен направить трафик предназначенный для удалённых подсетей к адресу присвоенному PPTP. Мы заставим трафик для этих подсетей двигаться по туннелю на другой стороне. Способ не ограничивается подсетями, которые сразу достижимы с другой стороны, поскольку могут использоваться любые подсети. Это весьма удобно, если вы хотите открыть доступ к стороннему сайту через туннель VPN. Команды могут быть введены в командной строке, но в нашем примере мы запишем их в командный файл: 

@echo off 

routeadd 192.168.210.0 mask 255.255.255.0 192.168.1.126 

route add 10.99.99.0 mask 255.255.255.0 192.168.1.126 

route add 172.16.1.0 mask 255.255.252.0 192.168.1.126 

pause 

 

В этом примере, 192.168.1.126 - статический IP, присвоенный пользователю клиента PPTP. Команды направляют три указанных подсети через PPTP соединение, дополнительно к подсети соединённой непосредственно. Пауза опциональна, но она может помочь убедится, что все маршруты добавлены успешно. Пакетный файл должен выполняться каждый раз при установлении соединения. 

NOTE На Windows VIsta и WIndows 7, эти команды должны выполняться с правами администратора. Если вы создали ярлык на данный пакетный файл, измените его свойства предоставив ему эти права. Аналогично щёлкнув правой кнопкой на файле вы можете выбрать опцию <Выполнить в роли администратора>. 

 

Запись событий авторизации и выхода пользователей хранятся в Status >> System Logs, закладка PPTP

Рисунок 14.35

 

Как вы можете видеть на рисунке 14.35 "Журнал PPTP", каждый вход и выход пользователя записываются с указанием метки времени, имени пользователя и IP адресом присвоенным клиенту PPTP.

 

 

<<< Предыдущая Глава | Следующая Глава >>>

†Оглавление†