Pptp vpn настройка ubuntu

Обновлено: 04.07.2024

Предполагая, что у меня есть виртуальный частный сервер от кого-то вроде Linode , работающего под управлением Ubuntu, как мне легко настроить PPTP VPN, чтобы клиенты Ubuntu могли подключаться к нему?

По умолчанию Ubuntu предлагает подключиться к этим сетям PPTP. Я хочу настроить его так, чтобы к нему было очень легко подключиться (т.е. без установки каких-либо пакетов на клиенте).

Абсолютная минимальная настройка сервера

Сначала установите необходимое программное обеспечение:

Во-вторых, включите ip_forward в ядре IPv4, раскомментировав соответствующую строку в /etc/sysctl.conf :

В-третьих, включите NAT (если он еще не включен), чтобы пользователи в частной сети VPN могли направлять свои пакеты в Интернет:

Примечание. В этом руководстве предполагается, что на сервере не настроен брандмауэр. Если на сервере установлен брандмауэр, такой как UFW , обратитесь к соответствующей документации .

В-четвертых, для каждого пользователя VPN создайте учетную запись в файле / etc / ppp / chap-secrets . Замените $USER реальным именем пользователя, которое вы хотите использовать для этого пользователя VPN.

Наконец, вы готовы .

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

В апплете Network Manager выберите VPN-подключенияНастроить VPN , затем нажмите Добавить . На следующем экране выберите PPTP для типа VPN, затем нажмите « Создать» .

введите описание изображения здесь

В этом окне введите имя хоста или IP-адрес вашего сервера вместе с именем пользователя и ключом, которые вы добавили в файл / etc / ppp / chap-secrets на сервере.

Теперь нажмите Дополнительно .

введите описание изображения здесь

Наконец, нажмите Ok, а затем Сохранить, чтобы закрыть предыдущее окно.

Примечания

Если локальная сеть, к которой вы подключены, использует подсети 192.168.0.0/24 и 192.168.1.0/24, вы столкнетесь с проблемами, потому что это то, что сервер PPTP использует по умолчанию. Вам нужно будет настроить PPTP для использования разных подсетей в pptpd.conf .

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

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

Сначала войдите в вашу панель VPS и включите TUN / TAP и PPP . Если у вас нет такой возможности, свяжитесь с вашим Интернет-провайдером, чтобы включить это для вас.

введите описание изображения здесь

Сначала установите этот пакет:

Поскольку мы не хотим, чтобы наш VPN был общедоступным, мы собираемся создавать пользователей.
Я использую VI, вы можете использовать NANO или любой другой текстовый редактор, который вам нравится

* означает, что доступ со всех IP-адресов разрешен, указывайте IP-адрес, только если у вас есть статический.

Редактирование настроек PPTPD

Remoteip - это, в основном, диапазон IP-адресов, который будет назначен клиентам (компьютерам, подключенным к вашей VPN). Например, если вам нужен следующий диапазон IP-адресов: 192.168.120.231-235, ваш VPN-сервер сможет назначать клиентам 192.168.120.232, 192.168.120.233, 192.168.120.234 и 192.168.120.235. Вам решать, что вы хотите использовать для этого поля.

Лично я выбираю эти настройки:

Таким образом, я могу подключить около 200 клиентов.

Добавить DNS-серверы в /etc/ppp/pptpd-options

Вы можете добавить это в конец файла или найти эти строки, раскомментировать их и изменить IP-адреса на нужный публичный DNS.

Настроить пересылку

Важно включить переадресацию IP на вашем PPTP-сервере. Это позволит вам пересылать пакеты между общедоступными и частными IP-адресами, которые вы настроили с помощью PPTP. Просто отредактируйте /etc/sysctl.conf и добавьте следующую строку, если она там еще не существует:

Чтобы сделать изменения активными, запустите sysctl -p

Создайте правило NAT для iptables

Это важная часть: если вы используете VPS, вы, вероятно, не будете использовать eth0, но вместо этого venet0, вы должны проверить, какой у вас интерфейс, запустив ifconfig

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

Опять же, вам нужно заменить eth0 на venet0, если вы используете VPS.

Я бы порекомендовал бегать

Теперь ваш PPTP-сервер также выступает в качестве маршрутизатора.

Вы можете выполнить эту команду, чтобы служба VPN запускалась при загрузке

Я рекомендую установить iptables-persistent, чтобы правила сохранялись даже после перезагрузки

Привет, сегодня я покажу как можно сделать, пожалуй, самый простой вариант VPN сервера. Делать его я буду на Ubuntu 16.04, и вариант этот - PPTP. Это не самый лучший вариант, но зато самый простой и быстрый в настройке, и поддерживается очень многими устройствами и системами по умолчанию, без установки дополнительных программ. Поднять его можно, буквально за несколько минут.

Перейдем в режим суперпользователя, если вы еще не в нем:

и установим pptpd:

правим конфиг pptpd:

его содержимое должно быть таким:

Далее зададим логины и пароли клиентов:

Соответсвенно:
test1 - имя пользователя
pptpd - имя службы
testtest - пароль
192.168.6.100 - статический адрес для пользователя, если за место адреса указать *, то адрес пользователю будет выдаваться динамический из пула, указанного в файле /etc/ppp/pptpd-options

Дальше сделаем, что бы пользователи могли ходить в интернет через наш сервер:

ее нужно раскомментировать, если не находим эту строчку, то добавляем.

После чего сделаем маскарадинг из нашей vpn сети в интернет, тут, в зависимости от того, какой фаерволл вы используете, можно делать по-разному, я покажу для голого iptables и для ufw.

В первом случае, для чистого iptables:

Соответственно eth0 - ваш интерфейс, смотрящий в интернет, 192.168.6.0 - сеть vpn.

В конец файла добавляем:

Во втором случае для ufw:

Находим там DEFAULT_FORWARD_POLICY и делаем его ACCEPT:

В этот файл, сразу, после первых комментариев добавляем:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.6.0/24 -o eth0 -j MASQUERADE
COMMIT

Далее для применения нового правила можно выполнить:

Настройка PPTP сервера в Ubuntu Server 16.04 закончена, можно пробовать подключиться. В качестве протокола проверки подлинности обязательно нужно указывать mschapv2 и обязательно нужно включать шифрование, иначе сервер не разрешит подключение.

По умолчанию логи пишутся в /var/log/syslog, там вы можете увидеть что происходит при подключении клиентов.

Если по каким-то причинам вам нужно будет разорвать все ppp соединения, то сделать это можно командой:

Замечание: если вы планируете поднимать сервер на VPS, то есть вероятность, что он не заработает, в случае, если хостер использует openvz или ему подобные системы виртуализации. Там, как показала практика, очень часто, в ядре отключена поддержка PPP. Если это так (а если это так, то в логах, при попытке подключения будут выскакивать ошибки, типа - устройство /dev/ppp не найдено или нет доступа к /dev/ppp и т.п.), то нужно уточнить у хостера, включены ли модули ppp в ядре виртуальной машины. Если они не включены и хостер не хочет их включать, то проще сменить хостера чем воевать с этой бедой.

Быстро проверить используется openvz или нет, можно так:

Если этот файл существует, то виртуальная машина - openvz или virtuozo, и вы попадаете в группу риска =)

Данной статьей мы продолжим тему настройки коммутируемых соединений в среде Ubuntu Server. Сегодня рассмотрим настройку PPTP подключений, которые могут использоваться как для подключения к интернету, так и для организации корпоративных сетей. Несмотря на то, что материал рассчитан в первую очередь на системных администраторов, он будет полезен всем пользователям Linux.

Для работы Ubuntu Server в качестве PPTP-клиента необходимо установить пакет pptp-linux:

Основные настройки пакета, применяемые ко всем PPTP соедниненям по умолчанию хранятся в /etc/ppp/options.pptp, в большинстве случаев менять их нет необходимости, однако вы можете добавить какие-то свои опции, общие для всех соединений.

Для настройки подключения создадим в /etc/ppp/peers файл настроек с его именем:

Откроем его и внесем следующее содержимое:

В нашем примере создано PPTP подключение для корпоративной сети, поэтому мы добавили опцию "не создавать маршрут по умолчанию", если вы настраиваете соединение для доступа в интернет, то нужно наоборот разрешить создание нулевого маршрута, для этого укажите опции:

Опция "включаем поддержку MPPE" не является обязательной и требуется только тогда, когда сервер использует этот тип шифрования. Номер ppp интрефейса создает для подключения всегда один и тот же сетевой интерфейс, в нашем случае это будет ppp12.

Отдельно стоит остановиться на наборе опций для автоматического переподключения. Мы настоятельно советуем ограничить количество попыток (0 - неограничено) разумным числом и не ставить слишком маленький промежуток времени. Это позволит ограничить нагрузку на VPN-сервер в случае проблем с подключением (например нет денег на балансе или изменились учетные данные).

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

Теперь укажем авторизационные данные для нашего пользователя, для этого в файл /etc/ppp/chap-secrets добавим следующую строку:

которая предусматривает использование указанных учетных данных, где vpnpassword -пароль соединения, для удаленного соеднинения TEST (это имя мы указали в опции remotename). Для доменного пользователя строка будет выглядеть так:

ppptp-ubuntu-001.jpg

В консоли сервера также видим подключившегося клиента:

ppptp-ubuntu-002.jpg

В дальнейшем управлять соединением можно при помощи команд pon и poff (подключить и отключить соответственно).

Чтобы автоматически поднимать соединение при запуске системы в файл /etc/network/interfaces добавим секцию:

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

Мы привели реальный маршрут используемый в нашем случае, вы должны указать здесь свои данные, если они не известны - уточните их у системного администратора.

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

Для получения списка маршрутов воспользуйтесь командой route, также можно пропинговать какой-нибудь внутренний хост.

ppptp-ubuntu-003.jpg

При подключении к сети интернет через PPTP бывают ситуации, когда, несмотря на указанные опции, нулевой маршрут через туннель не устанавливается. В этом случае можно в конец соответсвующей секции в /etc/network/interfaces добавить:

Итак, так как пол интернета заблокировано, ставим свой pptp-сервер, простейший VPN. Он хорош тем, что по нему умеют ходить WI-FI роутеры, а значит можно прозрачно для всех клиентов WiFi открыть весь интернет (если VPN в правильном месте конечно).

Итак, я взял Linux Ubuntu 18.04 и старый ноутбук (а вы можете арендовать виртуальный ubuntu на одном из зарубежных хостингов).

Как поднять pptpd

1. Инсталлируем пакет

sudo apt-get install pptpd

Вам надо научиться редактироать текстовые файлыи сохранять их в Ubuntu. Самое просто это редактор nano. Когда написано отредактируете файл ХХХХ надо запустить
sudo nano ХХХХ и потом сохранить и выйти из редактора.

2. Настроим pptp сервер

/etc/pptpd.conf

Внизу расскоменчиваем строки и можно оставить как там написано, а можно поменять сеть которую мы отдадим под туннель (я в данном примере себе зарезервировал сеть 192.168.99.ХХ

localip 192.168.99.1
remoteip 192.168.99.200-238,192.168.99.245

/etc/ppp/pptpd-options

Точнее, даже не редактируем а проверяем следующий строчки (должны быть раскомменчены)

refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute

Вкратце, мы запрещаем все виды авторизации кроме mschap и требуем шифрацию (потом можете шифрацию убрать).

Редактируем файл (файл с логинами и паролями)

Там пишем внизу с новой строки

ЛОГИН pptpd ПАРОЛЬ *

Таких строк можно написать много, по количеству пользователей. Пароль лежит в открытом режиме, не используйте пароли, которые вы используете для критических сервисов.

В нашем случае это будет

ivan pptpd ivanidanilo *

Можем запустить pptpd командой

systemctl pptpd start

А вот так надо сделать, чтобы pptpd запускался автоматически.

sudo systemctl enable pptpd

3. Настраиваем сеть

Теперь нам надо настроить сеть.

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

В файле /etc/default/ufw

Находим DEFAULT_FORWARD_POLICY="DROP" и меняем на строчку

В файле /etc/ufw/sysctl.conf находим net/ipv4/ip_forward=0 и меняем на строчку

В файле /etc/sysctl.conf находим строчку net.ipv4.ip_forward и меняем (раскомменчиваем) на

Применяем все изменения по политике

Во-вторых, займемся файрволлом

1. если не установлен, устанавливаем ufw (скорее всего будет установлен)

Заодно поставим ssh сервер (удаленно ходить в командную строчку)

2. Теперь начинаем работать с ufw

sudo ufw enable

и добавим правил

Пропускать авторизацию pptp

Смотрим что получилось командой

Должны появиться правила

Но, у сожалению, это еще не все. Нам надо добавить правило, чтобы ufw пропускал протокол GRE (специальный протокол для туннеля) и указать что надо все что приходит из туннеля "заворачивать (NAT) в внешний IP и выпускать наружу. Сделаем это.

В самом начале вставляем такой вот код для NAT

Теперь будем внимательны

вместо 192.168.1.0/24 надо указать нашу сеть, для нас это 192.168.99.0/24, и надо указать имя нашей сетевой карты, которая "смотрит" в интернет. Сейчас научимся узнавать имя карты.

Выполняем команду ifconfig (если система ругнется, то надо поставить пакет net-tools

sudo apt-get install net-tools

Вот так у меня выглядит ifconfig

Слева "имена" интерфейсов (в кружочках). Как узнать наш. Во первых, по выделенному ip-адресу (его должен был дать провайдер). У меня он замазан красным, но он там есть. Во-вторых через интерфейс скрее всего идет трафик (выделено зеленым). Итак, мой интерфейс это enp2s0 .

Тогда у нас в итоге получается вот такой вот код

-A POSTROUTING -s 192.168.99.0/24 -o enp2s0 -j MASQUERADE

Теперь перезапускаем ufw командой

sudo ufw disable && sudo ufw enable

Обращу отдельное внимание на "-F" - этот параметр не приводится в инструкциях, которые я читал, а без него правила nat начинают дублироваться. Смысл в том, что если вы сначала забыли поменять название интерфейса и оставили eth0, то у вас прописалось неверное правило. Вы перезапустили ufw, а потом вспомнили\исправили и перегрузили еще раз. Без "-F" старое правило не сотрется будет стоять перед новым и ничерта работать не будет.

Чтобы понять что у Вас правильные правила nat, нужно набрать команду (ufw этого не покажет)

Вот что примерно вы увидите

Chain POSTROUTING (policy ACCEPT 1827 packets, 129K bytes)

num pkts bytes target prot opt in out source destination
1 0 0 MASQUERADE all -- any enp2s0 192.168.99.0/24 anywhere
2 1668 122K MASQUERADE all -- any enp2s0 192.168.98.0/24 anywhere

Видно, что у вас 2 правила nat и они пронумерованы. Если Вы видите неправильные правила, то можете их удалить по номеру. Вот так удаляется правило номер "1"

ВСЕ ! На этом установка окончена. Теперь самое интересное. Берем ноубук с Windows\Ubuntu\Android или WiFi роутер и указываем тип соединения pptp логин\пароль те, что вы прописали в сервере и у вас должно установиться VPN-соединение и через него работать Интернет. И хотя pptp считается простейшим VPN, весь интернет будет у вас в руках.

Если что-то не заработало ищите в логах что не так а также привожу ссылки, которыми пользовался я при настройке.

Читайте также: