Debian pptp ipsec настройка
Обновлено: 04.07.2024
Недавно автору этих строк понадобилось настроить 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. Так что нафиг такое счастье.
Для объединения компьютеров между собой и даже целых локальных сетей через интернет используют VPN туннели. Как правило один из узлов используется в качестве сервера, а остальные подключаются к нему как клиенты.
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:
Настройка адресации VPN тоннеля
Адресация компьютеров (устройств) в тоннеле не должна совпадать с уже используемой адресацией у всех участников VPN туннеля.
В моем примере я буду использовать подсеть 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. Это проверено мной лично.
В прочем и другие клиенты так же не должны испытывать проблем при подключении.
Для объединения компьютеров между собой и даже целых локальных сетей через интернет используют VPN туннели. Как правило один из узлов используется в качестве сервера, а остальные подключаются к нему как клиенты.
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:
Настройка адресации VPN тоннеля
Адресация компьютеров (устройств) в тоннеле не должна совпадать с уже используемой адресацией у всех участников VPN туннеля.
В моем примере я буду использовать подсеть 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. Это проверено мной лично.
В прочем и другие клиенты так же не должны испытывать проблем при подключении.
Статья справедлива для всех случаев когда у Debian сервера есть белый IP адрес смотрящий в интернет и серый IP к которому подключены другие компьютеры. Это может быть как локальная сеть, так и VPN туннель.
Пересылка пакетов между сетевыми интерфейсами
Возможно, что в вашей системе этот параметр уже присутствует, но со значением 0 (ноль). В таком случае исправьте его на 1 (единицу).
Чтобы необходимое нам значение заработало нужно применить новую конфигурацию, для этого выполните в консоли сервера следующую команду:
О параметре net.ipv4.ip_forward
Если этот параметр выключен (закоментирован или значение равно 0), то компьютер (операционная система) считает себя узлом IP сети и дропает (DROP) все пакеты, предназначенные не ему (т.е. отбрасывает пакеты адрес получателя которых отличен от IP-адресов, назначенных на интерфейс, на котором получен пакет).
Если параметр включен, то ОС считает себя маршрутизатором и действует в соответствии с RFC1812, в том числе пытается переслать адресованные не ей пакеты в соответствии с таблицей маршрутизации.
Перенаправление трафика
Теперь самое время сказать серверу куда направлять трафик, который прилетает на наш сервер, как на шлюз (вместо ens32 укажите тот интерфейс, которым ваш сервер смотрит в интернет). Для этого выполните следующую команду в консоли сервера:
Эта команда будет работать до перезагрузки сервера.
А для того, чтобы все работало и после старта операционной системы необходимо в файл /etc/rc.local добавить следующую строку перед строкой в конце файла exit 0.
У меня на сервере файл /etc/rc.local после внесенных изменений выглядит так:
Для чего нужен файл rc.local в Debian
Файл rc.local в Debian используется для того чтобы добавлять собственные скрипты, которые будут выполняться после старта системы.
Как узнать имя сетевого интерфейса в Debian
Один из способов это посмотреть настройки в файле /etc/network/interfaces. Либо выполните следующую команду в консоли:
Тестирование и выводы
После того, как вы сделали все настройки и запустили VPN сервер, обязательно проверьте скорость его работы (вернее скорость вашего доступа в интернет через VPN соединение), например, с помощью Speedcheck.
Читайте также: