Меню Рубрики

Linux vpn server pptpd

Записки IT специалиста

Технический блог специалистов ООО”Интерфейс”

Настраиваем VPN сервер. Часть 3 – PPTP. Платформа Linux.

Рассмотрев в предыдущих частях теоретические вопросы перейдем к практической реализации. Сегодня мы рассмотрим создание VPN сервера PPTP на платформе Ubuntu Server. Данный материал рассчитан на читателей, имеющих навыки работы с Linux, поэтому мы не будем отвлекаться на вещи описанные нами в других статьях, таких как настройку сети и т.п. Если вы испытываете затруднения – предварительно изучите другие наши материалы.

Практическое знакомство с VPN мы начнем с PPTP, как наиболее простого в реализации. Однако следует помнить о том, что это слабозащищенный протокол и его не следует использовать для доступа к критически важным данным.

Рассмотрим схему, которую мы создали в нашей тестовой лаборатории для практического знакомства с данной технологией:


У нас имеется локальная сеть 10.0.0.0/24 с сервером терминалов 10.0.0.2 и роутером10.0.0.1, который будет выполнять функции VPN сервера, для VPN мы зарезервировали сеть 10.0.1.0/24. Внешний интерфейс сервера имеет условный выделенный IP адрес X.X.X.X. Наша цель – предоставить удаленным клиентам доступ к терминальному серверу и общим ресурсам на нем.

Настройка сервера PPTP

Установим пакет pptpd реализующий функционал PPTP VPN:

Теперь откроем файл /etc/pptpd.conf и зададим основные настройки VPN сервера. Перейдем в самый конец файла, где укажем адрес сервера в VPN сети:

И диапазон адресов для выдачи клиентам:

Адресов нужно выделить не меньше, чем возможных одновременных соединений, лучше с небольшим запасом, так как их увеличение без перезапуска pptpd невозможно. Также находим и раскомментируем строку:

Это позволит передавать VPN клиентам широковещательные пакеты внутренней сети.

Также можно использовать опции listen и speed, первая позволяет указать IP адрес локального интерфейса для прослушивания входящих PPTP соединений, второй указать скорость VPN соединений в бит/с. Например разрешим серверу принимать PPTP соединения только с внешнего интерфейса:

Более тонкие настройки находятся в файле /etc/ppp/pptpd-options. Настройки по умолчанию вполне соответствуют нашим требованиям, однако кратко рассмотрим некоторые из них, чтобы вы имели представление о их назначении.

Секция #Encryption отвечает за шифрование данных и проверку подлинности. Данные опции запрещают использование устаревших и небезопасных протоколов PAP, CHAP и MS-CHAP:

Далее предписывается использовать безопасный протокол проверки подлинности MS-CHAP v2 и 128-битное шифрование MPPE-128:

Следующая секция #Network and Routing, здесь следует обратить внимание на опцию ms-dns, которая позволяет использовать DNS сервер во внутренней сети. Это может быть полезно при доменной структуре сети или наличия в ней DNS сервера который содержит имена всех ПК сети, что дает возможность обращаться к компьютерам по их именам, а не только по IP. В нашем случае данная опция бесполезна и закомментирована. Подобным образом можно задать и адрес WINS сервера опцией ms-wins.

Здесь же находится опция proxyarp, включающая, как несложно догадаться из названия, поддержку сервером Proxy ARP.

В секции #Miscellaneous содержится опция lock, которая ограничивает клиента одним подключением.

На этом настройку сервера можно считать законченной, осталось создать пользователей. Для этого внесем необходимые записи в /etc/ppp/chap-secrets. Записи должны иметь вид:

Первая запись позволяет подключаться к серверу пользователю ivanov c паролем 123 и присваивает ему произвольный IP адрес, вторая создает пользователя petrov с паролем 456, которому при подключении будет присваиваться постоянный адрес 10.0.1.201.

Важное замечание! Если pptpd не хочет перезапускаться, зависая на старте, а в /var/log/syslog добавляя строку long config file line ignored обязательно добавьте в конец файла /etc/pptpd.conf перенос строки.

Наш сервер готов к работе.

Настройка клиентских ПК

В общем случае достаточно настроить VPN соединение с опциями по умолчанию. Однако мы советуем явно указать тип соединения и отключить лишние протоколы шифрования.

Далее, в зависимости от структуры сети, необходимо указать статические маршруты и основной шлюз. Эти вопросы подробно разбирались в предыдущих частях.

Устанавливаем VPN соединение и пробуем пропинговать какой либо ПК в локальной сети, мы без каких либо затруднений получили доступ к терминальному серверу:

Теперь еще одно важное дополнение. В большинстве случаев доступ к компьютерам локальной сети будет возможен только по IP адресам, т.е. путь \\10.0.0.2 будет работать, а \\SERVER – нет. Это может оказаться неудобным и непривычным для пользователей. Существует несколько способов решения данной проблемы.

Если локальная сеть имеет доменную структуру, достаточно указать DNS сервером для VPN подключения DNS сервер контроллера домена. Воспользуйтесь опцией ms-dns в /etc/ppp/pptpd-options сервера и данные настройки будут получены клиентом автоматически.

Если DNS сервер в локальной сети отсутствует, то можно создать и использовать WINS сервер, информацию о нем также можно автоматически передавать клиентам при помощи опции ms-wins. И наконец, если удаленных клиентов немного, использовать на клиентских ПК файлы hosts (C:\Windows\System32\drivers\etc\hosts), куда следует добавить строки вида:

По одной для каждого ПК в локальной сети к ресурсам которого требуется доступ.

Источник

Alexell.Ru

Официальный сайт Alexell

Поднимаем VPN — PPTP сервер на Ubuntu

В этой статье я расскажу как поднять собственный PPTP сервер на Ubuntu. Почему именно PPTP? У каждого свои цели и задачи, кому-то нужен PPTP, кому-то L2TP/IPSec, кому-то IKEv2, а может и OpenVPN. Я постараюсь написать статьи по установке и настройке хотя бы двух протоколов VPN на Ubuntu и начну с PPTP. Все описанные действия производились на Ubuntu 14.04.5 LTS. Напоминаю, что дешевые VPS во Франции для запуска своего VPN вы можете посмотреть здесь.

Для установки понадобятся права root пользователя или sudo.

1. Устанавливаем необходимые пакеты:

После окончания установки, нам понадобится отредактировать несколько файлов. Для изменения файлов вы можете пользоваться любым удобным для вас способом, хоть nano, хоть визуальными редакторами и т.д.

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

2. Открываем файл /etc/pptpd.conf, находим и раскоментируем (если вдруг закоментированы) строки localip и remoteip, затем прописываем свою ip адресацию.

  • localip – ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
  • remoteip – пул ip адресов для раздачи клиентам VPN.

Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

3. Открываем файл /etc/ppp/pptpd-options и добавляем в конце файла:

В этом же файле при необходимости вы можете указать конкретные DNS, которые будут использоваться при подключении через VPN. Найдите и раскоментируйте строки ms-dns:

4. Открываем стандартный файл /etc/sysctl.conf, находим и раскоментируем строку:

5. Добавляем необходимые правила в iptables:

Обратите внимание, что eth0 – имя вашего сетевого интерфейса. Вы можете узнать его с помощью команды ifconfig

Если вам необходимо, чтобы была локальная сеть между клиентами, подключенными к VPN, добавьте следующие правила в iptables:

Обратите внимание, что 172.16.0.0/24 – локальная подсеть, которую вы себе выбрали, а ppp0 – имя pptp интерфейса.

Для сохранения iptables, выполните команду:

6. Пользователей для подключения к VPN серверу добавляем в файле /etc/ppp/chap-secrets

  • user1 – имя пользователя
  • password1 – пароль пользователя
  • “*” – локальный ip будет выдаваться из пула, указанного в файле /etc/pptpd.conf
  • “172.16.0.2” – пользователю будет присвоен указанный ip адрес.

7. Перезапускаем сервис pptpd для применения новых настроек:

Ваш PPTP сервер на Ubuntu запущен!

P.S. Если вдруг вы столкнетесь с тем, что добавленные правила iptables пропадают после рестарта firewall или перезагрузки машины, то сделайте действия, описанные ниже.

1. Добавляем заново все правила, как описано в 5-м шаге.
2. Сохраняем правила в конфиг:

3. Открываем файл /etc/network/interfaces и добавляем в самый конец:

Теперь можете перезагрузить Firewall или всю машину и убедиться, что правила iptables сохраняются.

Похожие материалы:

4 комментария Поднимаем VPN — PPTP сервер на Ubuntu

Аноним – 18.07.2018 – 10:25 Ответить

Все сделал по инструкции, делаю подключиться в виндоус подключается, но пишет «Сеть без доступа к интернету»

Alexell – 20.07.2018 – 14:37 Ответить

Проверьте все параметры на сервере по шагам. Проверьте наличие правил iptables, убедитесь, что после перезагрузки сервера все запускается и правила добавляются в iptables.
Подключитесь к VPN (укажите явно тип PPTP), проверьте, получаете ли вы внутренний IP от вашего VPN сервера. Если да, то зайдите в Панель управления\Сеть и Интернет\Сетевые подключения, ПКМ на VPN соединение, выберите «Свойства»->Сеть->IPv4->Свойства->Дополнительно и посмотрите галочку «Использовать основной шлюз в удаленной сети». Попробуйте снять или поставить ее.
Но все таки больше похоже что у вас на самом сервере что-то не так.

total_ce – 06.06.2019 – 09:45 Ответить

Здравствуйте. Настроили точно так же, но почему-то постоянно врубается ethernet соединение, команда IFUP показывает ошибку правил IPTABLES, хотя все указано правильно. Но у нас стоит Ubuntu 18.04

Андрей – 16.04.2020 – 13:11 Ответить

подключаюсь но в свойствах впн соединения у клиента основной шлюз пустой. и доступа в инет через впн сервер пропадает после подключения

Источник


Adblock
detector