Меню

Pptp server настройка debian



Настройка pptp сервера на Debian

Возникла необходимость настроить vpn сервер для доступа к локальной сети организации. В качестве vpn сервера я предпочитаю использовать openvp за ее гибкость, удобство и простоту настройки. Но в данном случае мне был нужен именно pptp сервер с возможностью автоматической передачи маршрутов клиентам. С последним пришлось немного повозиться.

Введение

Сама по себе настройка pptp сервера на Debian очень проста не представляет никакой сложности. Все настраивается за 10 минут. Проблема здесь в другом. По-умолчанию, windows при подключении по pptp использует удаленный vpn сервер в качестве шлюза по умолчанию. За это отвечает галка в настройках vpn соединения «Использовать основной шлюз в удаленной сети». При такой конфигурации весь трафик компьютера пользователя идет через vpn сервер. Это очень неудобно, да и не нужно. Эту настройку обычно отключают.

Когда ее отключаешь, pptp клиент ничего не знает о маршрутах в удаленный офис. Чтобы туда попасть, маршруты нужно прописывать вручную, например так:

192.168.0.0 Сеть удаленного офиса.
192.168.10.1 Адрес vpn сервера

Этот маршрут нужно либо в командной строке прописывать, либо bat файл сделать и запускать. И то и другое неудобно, так как пользователю нужно выполнять дополнительные действия. В openvpn этот вопрос решается очень просто. Там можно на уровне сервера задать любые настройки пользователя, в том числе и маршруты. Они будут передаваться после подключения openvpn клиента. В pptp так сделать нельзя, он это не умеет. Вместо него передать маршруты может dhcp сервер, его для этого нужно специальным образом настроить. Этим мы и займемся.

Установка pptp сервера

Подразумеваю, что у вас установлен и настроен сервер. Если это не так, то воспользуйтесь моими материалами по установке и настройке debian сервера.

Сначала установим pptp сервер:

Рисуем следующий конфиг /etc/pptpd.conf:

eth1:1 Виртуальный интерфейс. Нужен для передачи dhcp параметров клиентам pptp.
192.168.10.1 IP адрес pptp сервера в vpn сети
192.168.10.30-50 Диапазон адресов, которые будут назначены pptp пользователям в vpn сети

Редактируем файл с дополнительными параметрами /etc/ppp/options:

Не буду подробно описывать параметры, в интернете есть описание. Обращаю внимание на proxyarp, без него не будет работать задуманная схема, и на nodefaultroute. Если вам иногда нужно ставить пользователям vpn сервер в качестве шлюза по-умолчанию, закомментируйте этот параметр. Отключить шлюз можно будет вручную на клиенте.

Дальше создаем учетки для подключения в файле /etc/ppp/chap-secrets:

Первый столбец — имя пользователя, второй — тип сервера, он всегда один и тот же, третий — пароль, четвертый — ip адрес в vpn сети, который будет назначен клиенту. Если его явно не указать, то ему будет назначен первый свободный из диапазона remoteip в pptpd.conf.

На этом настройка непосредственно pptp сервера закончена. Им можно пользоваться, но маршруты пользователям передаваться не будут.

Настраиваем dhcp сервер для раздачи маршрутов

У меня на сервере уже был настроен isc-dhcp-server, поэтому я использовал именно его. Но можно воспользоваться и dnsmasq. Я приведу пример с dhcpd. Если у вас его еще нет, то устанавливайте командой:

Рисуем следующий конфиг /etc/dhcp/dhcpd.conf:

Я тут не разбирался, что и зачем настроено именно так. Сервер настраивал не я, он мне достался в наследство. Мне нужно было только грамотно настроить pptpd с раздачей маршрутов. Поэтому я не расписываю все от и до, а просто делюсь рабочим конфигом, который сейчас у меня работает.

Подсеть 192.168.10.0 и 2 строчки с options перед ней это то, что я добавил для раздачи маршрутов pptp клиентам в vpn подсеть.

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

О настройке 2-х ip адресов на одном интерфейсе можно подробно прочитать в статье — настройка сети в debian. В моем случае eth1 это интерфейс, который смотрит в локальную сеть, доступ к которой мы организуем с помощью vpn.

Перезапускаем сеть для применения настроек:

По сути все готово. Запускаем pptpd и dhcpd и проверяем.

У меня почему-то команда pptpd restart отрабатывает с ошибкой и не перезапускает демон. Приходится запускать вручную:

Проверяем работу клиента windows. Список маршрутов до vpn подключения:

Вот пример такой же конфигурации для dnsmasq:

Нашел, пока разбирался с вопросом. У себя не проверял, так как решил все на одном dhcp сервере делать, который уже был.

Читайте также:  Настройка pppoe сервер микротик

Заключение

Немного сложно реализуется функционал, который доступен в openvpn из коробки без дополнительных настроек. Я поэтому и не очень люблю с pptp возиться, после openvp он мне кажется не таким удобным. Но иногда приходится и его настраивать. К примеру, микротики, к сожалению, так и не научились работать с openvpn по udp, приходится использовать pptp. Да и встроенный в windows клиент тоже добавляет удобство.

Я немного повозился, поразбирался, прежде чем у меня получилось настроить рабочий вариант. Ключевым моментом оказался виртуальный интерфейс eth1:1, который я создал для pptp подсети. Без него у меня не работала передача маршрута.

Источник

Debian → Установка VPN сервера Debian/Ubuntu с использованием протокола PPTP (шифрование по алгоритму MS-CHAP v2 )

Иногда возникает необходимость, зайти в локальную сеть, чтобы пользоваться ее внутренними ресурсами, это могут быть файловые, почтовые, сервера баз данных, VoIP и многое другое на что хватает фантазии и знаний. Для этого мы воспользуемся VPN, а конкретно протоколом PPTP. Он представляет, из себя, соединение точка-точка и помогает организовать защищенное соединение поверх не защищенного. В настоящее время поддерживается, большинством современных операционных систем и не требует сложной настройки.
Данное руководство актуально для Dedian/Ubuntu 10.х, а при небольшой адаптации и для других дистрибутивов.
Схема работы:

Но также можно соединять сервера в удаленных филиалах.

Вводная:
У нас есть внутренняя сеть с IP адресами в диапазоне 192.168.1.1-192.168.1.200 c Маской подсети 255.255.255.0, которые раздаются в локальной сети с помощью DHCP севера, о способе его настройки можно прочитать в статье опубликованной ранее. У нас есть шлюз, на котором установлено 2 сетевых интерфейса eth0 имеет статический IP 192.168.1.1 и, как не сложно догадаться, смотрит в локальную сеть, eth1-имеет внешний IP к которому привязано доменное имя vpn.example.org. Доменное имя использовано исключительно для простоты запоминания, если его нет-не беда, можно подключаться по IP. В нутрии локальной сети работают DNS, WINS сервера. Это все, что нам понадобится для нормальной работоспособности соединения.

Установку операционной системы я опущу.
Ставим необходимые пакеты.

Нам придется отредактировать 3 конфигурационных файла:

Нас интересуют следующие пункты:

этот параметр указывает на то откуда перенаправлять широковещательные сообщения, локальной сети, в нашей ситуации eht0, смотрит в локальную сеть, оттуда мы и будем перенапрявлять эти пакеты.

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

Этот пункт отвечает за то, какие IP адреса будут выданы клиентам подключенным по VPN, в данном случае – IP адреса будут выдаваться из диапазона начиная с192.168.1.240 по 192.168.1.254 из этого становиться ясно что в текущей конфигурации, к серверу могут подключиться 14 клиентов, зачастую больше и не требуется. Естественно эту группу IP адресов необходимо исключить из выдачи нашего DHCP сервера, который работает в нутри локалки, чтобы не возникало конфликтов между повторяющимися адресами внутри сети.
Также в этот файл можно добавить параметр listen и указать в нем IP адрес нашего внешнего сетевого интерфейса, который будет принимать внешние подключения, должно выгладеть

Где: 000.000.00.000 необходимо заменить на свой внешний, реальный IP.

Сохраняем изменения, выходим.

Далее нам необходимо отредактировать

В пункте –Encryption привести к виду указанному ниже.

Этим пунктом мы запрещаем использовать протоколы, которые давно и успешно взломаны и по рекомендации Microsoft, не должны использоваться: pap, chap, mschap, а также жестко указываем что можно использовать только mschap версии 2.

В разделе Network and Routing, можно указать
ms-dns 192.168.1.20

Если в сети работает DNS сервер, например в ОС сервества Windows 2003/2008, который работает совместно с Active Directory, то можно указать его IP и тогда клиенты смогут увидеть все компьютеры и прочие сетевые ресурсы, присутствующие в нашей сети, обращаясь к ним по именам, а не по IP.

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

Читайте также:  Настройка и запуск почтового сервера

На этом все, сохраняем изменения и выходим.

Теперь самое главное, нам необходимо добавить клиентов которые будут подключатся к нашему серверу из вне. Для этого отредактируем:

Можно добавлять в него записи вида
Username * secretpassword -тогда пользователю будет выдан IP из диапазона который мы установили в файле pptpd.conf

Но бывает и так, что за определенным пользователем необходимо закрепить определенный IP например 192.168.1.250, тогда запись приобретает вид
Username * secretpassword 192.168.1.250

Где: Username-имя пользователя, secretpassword-пароль

На этом настройку сервера можно считать завершенной, его необходимо перезагрузить

(Небольшое, но важное дополнение: Если после завершения настроек при попытке перезапустить pptpd-зависает, то необходимо, убедиться что во всех конфигурационных файлах, а особенно в pptpd.conf, после последней строки необходимо нажать Enter, чтобы курсор перешел на новую строку!)

Все работает нормально, теперь нам необходимо настроить клиентов, рассмотрим эту ситуацию на примере windows 7.
Настройка VPN происходит стандартно и в большинстве случае сложности не вызывает, но все-таки рассмотрим ее подробнее.

Настройка самого соединения проходит штатно

Указываем доменное имя нашего VPN сервера, для этого, заранее необходимо создать DNS запись в вашем домене, если доменное имя еще не куплено-не проблема, можно указать IP адрес нашего сервера в интернет. Устанавливаем галочку, чтобы система не начала устанавливать соединение по окончанию настройки.

Указываем имя пользователя и пароль и жмем кнопку создать

Теперь находим наше свежесозданное подключение и настраиваем его-перейдя в его свойства

Переходим во вкладку Безопасность
В тип VPN указываем PPTP переходим в меню-Разрешить следующие протоколы и оставляем галочку на против MSCHAP v2

Переходим во вкладку Сеть:
Необходимость этого пункта зависти от того для чего мы используем этот сервер!
Если планируем соединить удаленные офисы в единую сеть, при этом офисы подключаются к нам через WLAN, и не имеют местного доступа в интернет, будут выходить в глобальную сеть через головой офис или через тот где интернет обходится дешевле, то необходимость того что написано ниже, отпадает, нажимаем OK и пробуем подключиться, мы сразу получим доступ в Интернет, а шлюзом будет выступать сервер головного офиса.

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

Выбираем протокол TCP/IP v4 и переходим в его свойства

В свойствах выбираем Дополнительно

В дополнительных параметрах нам необходимо снять галочку с пункта: Использовать основной шлюз удаленной сети
Теперь это соединение не будет использоваться как основное, для подключения к интернет, но работоспособность локальной сети сохранится.

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

Источник

Настройка pptp сервера на Debian

Возникла необходимость настроить vpn сервер для доступа к локальной сети организации. В качестве vpn сервера я предпочитаю использовать openvp за ее гибкость, удобство и простоту настройки. Но в данном случае мне был нужен именно pptp сервер с возможностью автоматической передачи маршрутов клиентам. С последним пришлось немного повозиться.

Сама по себе настройка pptp сервера на Debian очень проста не представляет никакой сложности. Все настраивается за 10 минут. Проблема здесь в другом. По-умолчанию, windows при подключении по pptp использует удаленный vpn сервер в качестве шлюза по умолчанию. За это отвечает галка в настройках vpn соединения «Использовать основной шлюз в удаленной сети». При такой конфигурации весь трафик компьютера пользователя идет через vpn сервер. Это очень неудобно, да и не нужно. Эту настройку обычно отключают.

Читайте также:  Настройка сервера minecraft ubuntu

Когда ее отключаешь, pptp клиент ничего не знает о маршрутах в удаленный офис. Чтобы туда попасть, маршруты нужно прописывать вручную, например так:

192.168.0.0 Сеть удаленного офиса.
192.168.10.1 Адрес vpn сервера

Этот маршрут нужно либо в командной строке прописывать, либо bat файл сделать и запускать. И то и другое неудобно, так как пользователю нужно выполнять дополнительные действия. В openvpn этот вопрос решается очень просто. Там можно на уровне сервера задать любые настройки пользователя, в том числе и маршруты. Они будут передаваться после подключения openvpn клиента. В pptp так сделать нельзя, он это не умеет. Вместо него передать маршруты может dhcp сервер, его для этого нужно специальным образом настроить. Этим мы и займемся.

Установка pptp сервера

Подразумеваю, что у вас установлен и настроен сервер.

Сначала установим pptp сервер:

Рисуем следующий конфиг /etc/pptpd.conf:

eth1:1 Виртуальный интерфейс. Нужен для передачи dhcp параметров клиентам pptp.
192.168.10.1 IP адрес pptp сервера в vpn сети
192.168.10.30-50 Диапазон адресов, которые будут назначены pptp пользователям в vpn сети

Редактируем файл с дополнительными параметрами /etc/ppp/options:

Не буду подробно описывать параметры, в интернете есть описание. Обращаю внимание на proxyarp, без него не будет работать задуманная схема, и на nodefaultroute. Если вам иногда нужно ставить пользователям vpn сервер в качестве шлюза по-умолчанию, закомментируйте этот параметр. Отключить шлюз можно будет вручную на клиенте.

Дальше создаем учетки для подключения в файле /etc/ppp/chap-secrets:

Первый столбец — имя пользователя, второй — тип сервера, он всегда один и тот же, третий — пароль, четвертый — ip адрес в vpn сети, который будет назначен клиенту. Если его явно не указать, то ему будет назначен первый свободный из диапазона remoteip в pptpd.conf.

На этом настройка непосредственно pptp сервера закончена. Им можно пользоваться, но маршруты пользователям передаваться не будут.

Настраиваем dhcp сервер для раздачи маршрутов

У меня на сервере уже был настроен isc-dhcp-server, поэтому я использовал именно его. Но можно воспользоваться и dnsmasq. Я приведу пример с dhcpd. Если у вас его еще нет, то устанавливайте командой:

Рисуем следующий конфиг /etc/dhcp/dhcpd.conf:

Я тут не разбирался, что и зачем настроено именно так. Сервер настраивал не я, он мне достался в наследство. Мне нужно было только грамотно настроить pptpd с раздачей маршрутов. Поэтому я не расписываю все от и до, а просто делюсь рабочим конфигом, который сейчас у меня работает.

Подсеть 192.168.10.0 и 2 строчки с options перед ней это то, что я добавил для раздачи маршрутов pptp клиентам в vpn подсеть.

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

О настройке 2-х ip адресов на одном интерфейсе можно подробно прочитать в статье — настройка сети в debian. В моем случае eth1 это интерфейс, который смотрит в локальную сеть, доступ к которой мы организуем с помощью vpn.

Перезапускаем сеть для применения настроек:

По сути все готово. Запускаем pptpd и dhcpd и проверяем.

У меня почему-то команда pptpd restart отрабатывает с ошибкой и не перезапускает демон. Приходится запускать вручную:

Проверяем работу клиента windows. Список маршрутов до vpn подключения:

Вот пример такой же конфигурации для dnsmasq:

Нашел, пока разбирался с вопросом. У себя не проверял, так как решил все на одном dhcp сервере делать, который уже был.

Заключение

Немного сложно реализуется функционал, который доступен в openvpn из коробки без дополнительных настроек. Я поэтому и не очень люблю с pptp возиться, после openvp он мне кажется не таким удобным. Но иногда приходится и его настраивать. К примеру, микротики, к сожалению, так и не научились работать с openvpn по udp, приходится использовать pptp. Да и встроенный в windows клиент тоже добавляет удобство.

Я немного повозился, поразбирался, прежде чем у меня получилось настроить рабочий вариант. Ключевым моментом оказался виртуальный интерфейс eth1:1, который я создал для pptp подсети. Без него у меня не работала передача маршрута.

Источник