Ubuntu pptp client настройка

Обновлено: 04.07.2024

Записки по настройке Debian Ubuntu и Microsoft Windows

В качестве исходных данных будем использовать:

Debian Lenny 5.0.4 с адресом в локальной сети 192.168.0.10.

Для начала устанавливаем всё необходимое:

apt-get install ppp pptpd

Далее приступаем к настройке. Всё достаточно просто.

Первым делом открываем в редакторе файл /etc/pptpd.conf и дописываем в конец следующие строки:

Так же добавляем в /etc/ppp/pptpd-options следующие строчки:

Добавляем наших пользователей в /etc/ppp/chap-secrets, таким видом:

Быстрое и удобное добавления пользователей из консоли:

$ echo "test1 pptpd 11111 * " >> /etc/ppp/chap-secrets

Настройка PPTP-клиента в Debian/Ubuntu

$ apt-get install pptp-linux

Для простоты введем переменные:

название нашего соединения ($NameVPN)

IP address(host) нашего сервера - ($SERVER),

наше имя пользователя (username)($USERNAME),

наш пароль (password)($PASSWORD),

так же если есть домен (domain)($DOMAIN)

Приводим наши файлы до следующего вида:

lock
nodetach
noauth
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate

Внимание: параметр nodetach, выводит в стандартный поток вывода ошибок — stderr, выводится на терминал. Это удобно для отладки соединения. После того, как Вы убедились, что скрипт работает, как задумано, параметр nodetach можно убрать и pppd при запуске будет уходить в фоновый режим, перенаправляя stderr скрипта в файл /etc/ppp/connect-errors.

Создаем файл $NameVPN в /etc/ppp/peers/:

pty "pptp $SERVER --nolaunchpppd"
name $DOMAIN\\$USERNAME
remotename PPTP
require-mppe-128
defaultroute
file /etc/ppp/options.pptp
ipparam $TUNNEL

Если нам ни нужна поддержка MPPE,то удаляем строчку из require-mppe-128 из файла.

Если нужно увидеть отладочную информацию:

pon $NameVPN debug nodetach

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

auto tunnel
iface tunnel inet ppp
provider $NameVPN
up route del default
up route add default dev ppp0

Заметка: мне пришлось поставить апперанд & после ($NameVPN&), иначе загрузка шла до подключения ppp и на этом останавливалась.

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

Переходим в режим суперпользователя:

Обновим нашу систему:

Создадим файл подключения:

Если подключение прошло успешно появится сетевой интерфейс ppp:

ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.6.100 P-t-P:192.168.6.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:68 (68.0 B) TX bytes:68 (68.0 B)

Для того что бы отключиться, можно набрать команду:

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

И в конец файла добавим:

Соответственно - 192.168.6.1 - адрес шлюза (нашего vpn сервера), 192.168.6.0 - наша vpn сеть, замените шлюз и сеть на свои.

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

Не забываем сделать эти скрипты исполняемыми:

Дальше добавим их в cron:

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

Соответственно */1 - означает, что нужно выполнять проверку раз в минуту, можно увеличить интервалы до значения, которое вы считаете нужным.

Пожалуй, всё. PPTP клиент на Ubuntu Server 16.04 у нас настроен.

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Недавно автору этих строк понадобилось настроить PPTP-соединение в Linux. После чтения документации оказалось что всё очень просто.

Приводимые здесь инструкции применимы в первую очередь для Debian/Ubuntu, однако, скорее всего без больших изменений ими можно воспользоваться и на других дистрибутивах.

Во-первых нужно установить несколько пакетов:

Во-вторых создаём файл /etc/ppp/peers/vpn0 следующего содержания:

Далее открываем в редакторе файл /etc/ppp/chap-secrets и добавляем строку:

Наконец выполняем команду:

И всё работает. В системе должен появиться новый ppp-интерфейс. Проверить это можно командой:

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

И посмотреть какие ошибки будут выданы на экран.

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

Таким способом автор успешно подключается к описанному ранее PPTP-серверу.

Комментарии:

Небольшое дополнение: чтобы вальнуть весь трафик через vpn нужно добавить в /etc/ppp/peers/vpn0 строчку:

Единственным недостатком такого подключения является то, что, если по каким либо причинам соединение разорвалось, то интерфейс падает и не переподключается. Мне нужно было создать впн подключение, что бы оно было на фиксированном интерфейсе(для создания правил в iptables), при разрыве переподключалось и не пересоздавала интерфейс(что бы можно было удобно всё это дело мониторить по snmp)

В общем нашел такое решение в роутере ASUS wl500gP, и сплагатил их конфиг себе

Ну собственно создаём файл /etc/ppp/peers/vpn0 с таким содержимым:

Не могу:) Да и не хочу:) Потому что я знаю в чём проблема и решать еёё дело не благодарное. Сабжевый роутер скорее всего использует классический NAT, описанный ещё в RFC 1631. Этот NAT не содержит хаков для поддержки PPTP, который defective by design.

Моё ИМХО: или ставить роутер с соответствующими хаками, или не использовать сей арахичный протокол, ибо существуют куда как более вменяемые альтернативы.

Основная проблема PPTP в том что он использует GRE, который не работает через NAT. Есть роутеры, которые палят пакеты, идущие на tcp/1723 и вытаскивают из них информацию о туннеле после чего его корректно натят. Но это нарушение RFC 1631. Так что нафиг такое счастье.

Данной статьей мы продолжим тему настройки коммутируемых соединений в среде 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 добавить:

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