- Как установить и настроить безопасный PPTP сервер на Debian Linux
- Как установить PPTP сервер на Debian
- Как настроить PPTP сервер на Debian
- Настройка безопасности PPTP
- Настройка адресации VPN тоннеля
- Список пользователей PPTP сервера
- Запуск PPTP сервера на Debian
- Автозагрузка PPTP сервера при старте операционной системы
- Заключение
- Записки IT специалиста
- Настраиваем VPN сервер. Часть 3 — PPTP. Платформа Linux.
- Настройка сервера PPTP
- Настройка клиентских ПК
- Дополнительные материалы:
- How to configure a Linux PPTP VPN client
- Fedora/Red Hat/CentOS PPTP Client Installation
- Debian/Ubuntu PPTP Client Installation
- Configuring VPN credentials and server settings
- Adding a route to the routing table
- Testing the connection
- Disconnecting the connection
Как установить и настроить безопасный PPTP сервер на Debian Linux
Для объединения компьютеров между собой и даже целых локальных сетей через интернет используют VPN туннели. Как правило один из узлов используется в качестве сервера, а остальные подключаются к нему как клиенты.
Существует много ПО для построения VPN тоннелей, но PPTP, пожалуй, самый простой в настройке, поддерживается практически всеми операционными системами и устройствами, при этом быстро работает. Единственное «Но», он не самый безопасный (защищенный).
PPTP (англ. Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети.
Подробнее в Википедии
В этой статье я расскажу как настроить PPTP сервер на операционной системе Debian 9.
Как установить PPTP сервер на Debian
Чтобы установить PPTP сервер на Debian выполните последовательно следующие команды в консоли от имени ROOT:
Обратите внимание, что демон (сервис) PPTP в имени на конце содержит букву [d].
Как настроить PPTP сервер на Debian
Настройка сервера для построения VPN туннеля на основе PPTP сводится к редактированию трех файлов:
- /etc/pptpd.conf
- /etc/ppp/chap-secrets
- /etc/ppp/pptpd-options
Настройка безопасности PPTP
Как правило файл /etc/ppp/pptpd-options уже содержит все необходимые инструкции для правильной и безопасной работы PPTP сервера и редактировать его не надо. В нем находятся не только настройки безопасности, но именно на них следует обратить особое внимание.
В Debian 9 по-умолчанию файл /etc/ppp/pptpd-options имеет следующее содержание:
Если у вас этого файла нет или у него другое содержимое и вы хотите внести в него изменения, то с начала сделайте резервную копию файла настроек:
Оптимальные параметры PPTP сервера, проверьте их наличие и при необходимости добавьте в файл /etc/ppp/pptpd-options:
- name pptpd — имя сервиса, которое используется в файле аутентификации /etc/ppp/chap-secrets
- refuse-pap — запрет небезопасной авторизации pap
- refuse-chap — запрет небезопасной авторизации chap
- refuse-mschap — запрет небезопасной авторизации mschap
- require-mschap-v2 — требование безопасной авторизации mschap v2
- require-mppe-128 — требование максимального шифрования mppe-128
- proxyarp — необходим для трансляции ARP-ответов из одного сегмента сети в другой
- nodefaultroute — запрещает изменять шлюз по-умолчанию на сервере при активации PPTP соединения
- lock — параметр на создания файла блокировки на эксклюзивный доступ
- nobsdcomp — используется на не BSD системах (OpenBSD, FreeBSD)
- novj — запрет компресии, она используется только клиентами Windows 9x/ME/XP
- novjccomp — запрет компрессии, она используется только клиентам Windows 9x/ME/XP
- nologfd — блокирует запись в системный журнал через системную функцию stderr
Настройка адресации VPN тоннеля
Адресация компьютеров (устройств) в тоннеле не должна совпадать с уже используемой адресацией у всех участников VPN туннеля.
Адреса для туннеля следует выбирать из «серых» подсетей. Подробнее о них можно почитать здесь — https://moonback.ru/page/belye-i-serye-ip-adresa-ipv4.
В моем примере я буду использовать подсеть 172.22.22.0. Чтобы ее настроить для PPTP тоннеля необходимо отредактировать файл /etc/pptpd.conf.
По правилам «хорошего тона» сначала сделаем резервную копию оригинального файла конфигурации:
а затем в конец файла добавляем настройки адресов нашего тоннеля:
Сделать это можно с помощью редактора, например из состава MC (Midnight Commander):
Или прямо из командной строки:
Список пользователей PPTP сервера
Следующим шагом добавим пользователей, которые будут подключаться к нашему PPTP серверу. Для этого необходимо внести правки в файл /etc/ppp/chap-secrets.
Не забываем про «правила хорошего тона» и делаем резервную копию файла настроек:
Формат строки: имя-пользователя имя-сервиса пароль адрес-клиента-в-тоннеле.
В случае, если вы будете использовать множественный вход, то вместо конкретного адреса можно указать звездочку.
Добавить пользователя можно не прибегая к редактору, прямо из консоли:
Так как данные хранятся в окрытом виде, то для хоть какой-то безопасности присвоим файлу /etc/ppp/chap-secrets следующие права:
Запуск PPTP сервера на Debian
Если все сделали без ошибок, то можно запустить PPTP сервер:
При необходимости можно проверить сатус его работы:
Автозагрузка PPTP сервера при старте операционной системы
В Debian 9 PPTP сервер добавить в автозагрузку можно следующей командой:
исключить из автозагрузки соответственно:
Для просмотра сервисов добавленных в автозагрузку используйте команду:
Заключение
К серверу настроенному по этой инструкции беспроблемно подключаются клиенты Windows 8.1/10, Android 9, а так же роутеры серии Keenetic. Это проверено мной лично.
В прочем и другие клиенты так же не должны испытывать проблем при подключении.
Источник
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настраиваем VPN сервер. Часть 3 — PPTP. Платформа Linux.
Настраиваем 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), куда следует добавить строки вида:
По одной для каждого ПК в локальной сети к ресурсам которого требуется доступ.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник
How to configure a Linux PPTP VPN client
Configuring a VPN client connection is a simple matter of point and click in Windows OSes, but in Linux it is involves installing a package, configuring passwords, VPN server settings and finally routing the traffic destined for the VPN network via the VPN connection. The package named pptp is used on the client side for configuring a connection. To setup a VPN server read How to setup a VPN Server in Windows Server 2008. This tutorial is for both Debian Linux variants and Red Hat Linux variants.
Fedora/Red Hat/CentOS PPTP Client Installation
Install the pptp client
yum install pptp
Debian/Ubuntu PPTP Client Installation
Use the apt-get command
apt-get install pptp-linux
Configuring VPN credentials and server settings
Edit the following file and enter your VPN username and password
The syntax of the file is as follows
DOMAIN\\username PPTP vpnpassword *
For example to configure a user named jesin on example.com with pass1 as the password enter
EXAMPLE\\jesin PPTP pass1 *
If your VPN network doesn’t come under a domain replace DOMAIN with your VPNSERVER name.
Next is to configure the VPN server settings. Create and edit a new file under the peers directory
Add content according to the syntax below
pty «pptp vpn-server-hostname-or-ip-address —nolaunchpppd»
name DOMAIN\\username
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam vpnconnection1
Here “DOMAIN\\username” is the same as the one entered in the chap-secrets file. The ipparam should contain the name of the newly created file, in this case it is “vpnconnection1”
Adding a route to the routing table
All traffic for the VPN network should pass through the VPN interface so an entry has to be added to the routing table. To automatically add an entry whenever a VPN connection is established create and edit the following file
Add the following content
#!/bin/bash
route add -net 10.0.0.0/8 dev ppp0
Make the file executable
chmod +x /etc/ppp/ip-up.d/vpn1-route
Testing the connection
To connect using the newly created VPN connection use the following command
pppd call vpnconnection1
Take a peek into the messages log file using the following command
tail -f /var/log/messages
you should see something similar to this
Nov 27 13:46:20 server1 kernel: [ 800.071028] PPP generic driver version 2.4.2
Nov 27 13:46:20 server1 pppd[1083]: pppd 2.4.5 started by root, uid 0
Nov 27 13:46:20 server1 pppd[1083]: Using interface ppp0
Nov 27 13:46:20 server1 pppd[1083]: Connect: ppp0 /dev/pts/0
Nov 27 13:46:25 server1 pppd[1083]: CHAP authentication succeeded
Nov 27 13:46:25 server1 kernel: [ 804.683790] padlock: VIA PadLock Hash Engine not detected.
Nov 27 13:46:25 server1 kernel: [ 804.687408] PPP MPPE Compression module registered
Nov 27 13:46:25 server1 pppd[1083]: MPPE 128-bit stateless compression enabled
Nov 27 13:46:26 server1 pppd[1083]: local IP address 10.0.0.11
Nov 27 13:46:26 server1 pppd[1083]: remote IP address 10.0.0.12
Try pinging a system in the VPN network and you should get proper replies.
Disconnecting the connection
To disconnect the PPTP VPN connection use the killall command
Источник