
pfSense 2.1 PPTP-клиент |
![]() |
![]() |
![]() |
28.04.14 13:12 |
pfSense 2,1 и PPTP-клиент на WAN интерфейсе
pfSense - программный межсетевой экран/маршрутизатор, основанный на FreeBSD, неплохо работает "из коробки". Но с некоторым функционалом все же приходится повозиться и так сказать "доработать напильником".
Одним из таких мест стал pptp-клиент, который основывается на MPD (Multi-link PPP daemon). Клиент совершенно не хотел подключаться к корпоративному Microsoft Windows PPTP-серверу. Из логов было понятно, что клиент и сервер никак не могут договориться об используемом протоколе аутентификации.
Лог (Status->System logs->PPP):
Поиск в интернете дал несколько решений:
Для того чтобы разобраться, какие именно параметры шифрования необходимо указать, пришлось проанализировать все три решения, обратившись к документации MPD.
Первое, что хочется отметить, так это разницу в командах enable/disable, accept/deny, yes/no.
Первая пара enable/disable указывает, пожелания с нашей стороны.
Пара accept/deny указывает будем ли мы принимать пожелания противоположной стороны.
Команда "yes" - это одновременно enable и accept. А "no" - соответственно disable и deny.
Далее вернемся к состоянию подключения на Windows-клиентах:
Проверка подлинности MS CHAP V2
Шифрование MPPE 128
Сжатие MPPC
Для начала разберемся со сжатием и шифрованием.
set bundle enable compression // включаем протокол управления сжатием
set ccp yes mppc // разрешаем субпротокол сжатия/шифрования MPPC (Microsoft Point-to-Point Compression)
set mppc yes e40 e56 e128 // разрешаем 40,56,128-битное шифрование. В моем случае можно оставить только последнее.
set mppc yes stateless // разрешаем stateless-режим. Не совсем понятно, что же он делает, но в документации написано, что позволяет быстро восстановить соединение при потере пакетов.
Далее необходимо выбрать метод проверки подлинности. Почти все методы, используемые Microsoft, включены по-умолчанию и отлично работают без дополнительных команд. Остается только подтолкнуть mpd к принятию правильного решения. Нужно отметить, что chap - это псевдоним, который включает в себя chap-md5 chap-msv1 chap-msv2. Указывать их отдельно не нужно. set link no pap eap // отключаем лишние методы, как указано во втором решении, только на стороне клиента, а не сервера. Следующим шагом надо внести изменения в файл /etc/inc/interfaces.inc. Сделать это можно несколькими способами. Редактировать прямо из web-интерфейса: Diagnostics -> Edit File. здесь нажимаем "Browse", выбираем нужный файл, ищем в нем участок кода (удобно пользоваться поиском), вносим изменения и сохраняем. Также можно отредактировать из консоли, в меню выбираем пункт "8) Shell", откроется командная строка FreeBSD. Вводим команду "ee /etc/inc/interfaces.inc" без кавычек. Откроется редактор ee (Easy Editor) и уже в нем производится правка. Главное внимательно проверить, тот ли кусок кода править, нужный участок начинается примерно на 1440 строке. В итоге получаем: if (!isset($ppp['verbose_log'])) $mpdconf .= <<<EOD set bundle enable compression set ccp yes mppc set mppc yes e40 e56 e128 stateless #log -bund -ccp -chat -iface -ipcp -lcp -link EOD; foreach($ports as $pid => $port){ $port = get_real_interface($port); $mpdconf .= <<<EOD create link static {$interface}_link{$pid} {$type}
set link action bundle {$interface} set link {$multilink} multilink set link keep-alive 10 60 set link max-redial 0 EOD; if (isset($ppp['shortseq'])) $mpdconf .= <<<EOD set link no shortseq EOD; if (isset($ppp['acfcomp'])) $mpdconf .= <<<EOD set link no acfcomp EOD; if (isset($ppp['protocomp'])) $mpdconf .= <<<EOD set link no protocomp EOD; $mpdconf .= <<<EOD set link no pap eap # set link disable chap pap
# set link accept chap pap eap set link disable incoming Теперь можно создавать PPTP-сессии. Если сессия уже создана, то нужно отключить и снова включить привязанный к ней сетевой интерфейс. После внесения изменений все заработало. Из логов видно какой метод аутентификации и шифрования были выбраны. Лог (Status->System logs->PPP): Все вышеописанное выполнялось и проверялось на pfSense 2.0.1. и успешно работает на 2.1. После обновления pfSense изменения нужно вносить заново.
ссылка на материал: http://www.thin.kiev.ua/router-os/50-pfsense/1999-pfsense-21-pptp-wan.html
{jcomments on}
|
Последнее обновление 28.04.14 13:26 |
