Linux отсутствует модуль vpn sstp

Обновлено: 06.07.2024

Есть ли способ настроить SSTP-сервер на основе Linux, предпочтительно Ubuntu? Я знаю, что на sourceforge есть клиент SSTP, но я не могу найти сервер.

Чтобы было понятно: я не хочу openVPN, я хочу SSTP.

В целом вроде все работает нормально. Это довольно легко установить, использовать и управлять. Имеет прилично хорошую документацию. Имеет довольно много вариантов. Это действительно служит моим потребностям сервера SSTP.

Этот SoftEther VPN кажется мне очень интересным новым проектом. Это похоже на SSTP среди других. Я читаю сайт, и они говорят, что это бесплатное программное обеспечение, и планируется, что оно станет программным обеспечением с открытым исходным кодом (GNU General Public License) в середине 2013 года. На бумаге есть много интересных функций, но я не пробовал его, поэтому, возможно, нужны другие отзывы , Это открытый исходный код с 4 января 2014 года. Так что, скорее всего, ограничения больше не применяются (еще не проверяли).

ОБНОВЛЕНИЕ
Вскоре после того, как этот ответ был написан, Университет Цукубы выпустил свой первый выпуск SoftEther , который работает на Linux и обеспечивает реализацию сервера SSTP, совместимую с Microsoft.

ОРИГИНАЛ
В настоящее время не доступно серверное программное обеспечение SSTP для Linux. Существует клиент SSTP, доступный для Linux, и реализации сервера SSTP, доступные для Windows (как Microsoft разработал протокол) и RouterOS. Существует открытая спецификация, поэтому нет причины, по которой кто-то не мог разработать сервер. Это просто не было сделано.

Некоторые справочные ссылки:

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

  • SSTP - это относительно новый протокол VPN
  • SSTP - это технология, продвигаемая Microsoft
  • OpenVPN уже удовлетворяет особые потребности в решениях с открытым исходным кодом

Если вы хотите SSTP, потому что брандмауэры уже пропускают трафик 443 порта TCP, OpenVPN уже поддерживает запуск сервера на основе TCP на любом порту, включая 443. Настройки OpenVPN с использованием порта 443 TCP довольно распространены по этой причине, хотя по праву они не Рекомендуемая настройка, потому что запуск IP через TCP (особенно TCP через TCP) обычно дает низкую производительность.

Настройка VPN-подключения по протоколу SSTP на компьютере под управлением ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS

Общая информация

1. Проверяем версию операционной системы

Прежде чем приступить к выполнению действий, описанных в данном руководстве, необходимо убедиться в том, что версия операционной системы Ubuntu Linux, установленной на Вашем компьютере, соответствует версии, для которой предназначено данное руководство. Это важно, так как у разных версий Ubuntu Linux процесс установки настройки SSTP VPN-соединений будет отличаться.

В верхнем правом углу рабочего стола откроем пункт меню «Сведения ос системе»


Убедимся в том, что отображается ОС версии Ubuntu 16.04 64-разрядная


2. Проверяем наличие поддержки работы с протоколом SSTP

В верхнем правом углу рабочего стола нажмём кнопку управления сетевыми подключениями и в меню выберем «Соединения VPN», затем «Настроить VPN…»


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


Если в Вы обнаружите, что в перечне возможных типов VPN соединений отсутствует SSTP, например, поддерживается только протокол PPTP, значит можно переходить к выполнению пункту 3 данного Руководства.


Если же в списке возможных типов VPN подключений протокол SSTP присутствует, то можно пропустить пункт 3 данного Руководства и перейти сразу к выполнению пункта 4.

3. Добавляем поддержку протокола SSTP

Для добавления поддержки VPN подключений по протоколу SSTP Вам нужно будет загрузить из Интернет и установить несколько пакетов. Загрузку пакетов можно выполнить с веб-узла проекта sstp-client


Вам потребуется загрузить 4 пакета:

В случае, если у Вас используется ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS 64-bits:

libsstp-client0_1.0.10-0ubuntu6_amd64.deb network-manager-sstp_1.2.0-0ubuntu2_amd64.deb network-manager-sstp-gnome_1.2.0-0ubuntu2_amd64.deb

Сделать это можно как с помощью любого Интернет-браузера, так и с помощью утилит командной строки. Рассмотрим вариант с использованием командной строки.

Запустите приложение «Терминал». Для этого в левой верхней области рабочего стола нажмите кнопку поиска приложений и введите «Терминал». Будет найдено одноимённое приложение. Запустите его.


Первым делом импортируйте PGP-ключи, которыми будут подписаны загружаемые в дальнейшем пакеты SSTP-клиента и Менеджера подключений с поддержкой SSTP, чтобы Ваш компьютер доверял этим пакетам. Для этого выполните в окне Терминала команду:


Затем создайте файл ссылок на репозитарий deb-пакетов SSTP-клиента. Для этого выполните в окне Терминала команду:


С помощью любого текстового редактора добавьте в этот файл две строки (в зависимости от версии ОС):

В случае, если у Вас используется ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS:


Сохраните изменения в файле и закройте его.

Следующим шагом выполните обновление кэша пакетов apt. Для этого выполните в окне Терминала команду:

После этого проверьте то, что в кэше пакетов появилась информация о пакетах поддержки SSTP. Для этого выполните в окне Терминала команду:


Как видно из вывода команды, в кэше пакетов появилась информация о пакетах поддержки SSTP. Можно приступать к установке этих пакетов.

Внимание. Перед установкой пакетов закройте все ранее открытые окна менеджера сетевых соединений.

Выполните установку пакетов командой:

Во время установки на вопросы системы об установке дополнительных необходимых пакетов отвечайте утвердительно.


Все пакеты должны установиться без ошибок.

Примечание:

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

В независимости от типа установки, процесс установки всех пакетов должен пройти без ошибок.

После завершения установки пакетов поддержки SSTP желательно перезагрузить компьютер.

4. Создание и настройка VPN-подключения по протоколу SSTP

В верхнем правом углу рабочего стола нажмите кнопку управления сетевыми подключениями и в меню выберите «Соединения VPN», затем «Настроить VPN…»


В открывшемся окне сетевых соединений нажмём кнопку «Добавить», чтобы создать новое сетевое соединение. В окне выбора типа соединения откроем ниспадающий список возможных типов соединений, выберем в нём протокол «Secure Socket Tunneling Protocol (SSTP)» и нажмём кнопку «Создать»


В открывшемся окне укажите название создаваемого VPN-соединения, например, KOM-AD01-VPNCL

В полях «Имя пользователя» и «NT-Домен» укажите имя пользователя и короткое имя домена Вашей корпоративной учётной записи.

Во избежание излишних проблем при проверке сертификатов включите опцию «Ignore certificate warnings»


После этого нажмите кнопку «Дополнительно».

В открывшемся окне Дополнительных параметров SSTP на закладке «Point-to-Point» в окне выбора методов аутентификации отключите все методы, кроме MSCHAPv2.

Включите опцию «Использовать шифрование MPPE», а в поле выбора «Шифрование» выберете вариант «128 бит (самое защищённое)»

Включите опцию «Посылать эхо-пакеты PPP» и нажмите кнопку «ОК»


Вернувшись в форму настроек VPN соединения, перейдите на закладку «Параметры IPv4» и нажмите кнопку «Маршруты»


В форме настройки маршрутов с помощью кнопки «Добавить» добавьте маршрут в корпоративную локальную сеть. В поле «Адрес» укажите «10.0.0.0», а в поле «Маска сети» укажите «255.0.0.0».

Включите опцию «Использовать это соединение только для ресурсов в этой сети» и нажмите «OK»


Вернувшись в форму настройки VPN-соединения нажмите кнопку «Сохранить…» чтобы сохранить все настройки.


5. Проверка подключения

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

В верхнем правом углу рабочего стола нажмите кнопку управления сетевыми подключениями и в меню выберите «Соединения VPN», затем имя созданного ранее VPN-соединения:


Будет запрошен пароль пользователя учётной записи, ранее введённой в свойствах VPN-соединения. Введите пароль и нажмите кнопку «ОК»:


После проверки введённых учётных данных будет выполнено подключение к VPN-серверу по протоколу SSTP.


Успешно выполнив проверочное VPN-подключение, убедитесь в том, что после подключения Вам доступны как ресурсы локальной корпоративной сети (например, проверьте доступ к терминальным серверам), так и ресурсы Интернет без ограничений.


Автор первичной редакции:
Алексей Максимов
Время публикации: 25.04.2016 13:11

Все дело в том, что часть моих ноутбуков перешла с Ubuntu Trusty Desktop (Gnome Classic) на Lubuntu Trusty Desktop и вот в этой системе я обнаружил что отсутствует пункт меню настройки VPN соединения для дома/работы. Что я имею ввиду:

Вызываю оснастку «Сетевые соединения»:

Alt + F1 → Параметры — Сетевые соединения, после нажимаю «Добавить» и вот в выборе шаблона настройки соединения => отсутствует шаблон, пишет « не установлен модуль VPN »:

Не установлен модуль VPN для подключения

Если честно в моей практике это впервые.
Ищу решение данной задачи.
Анализирую вывод соответствия по названию:

$ apt-cache search vpn

Устанавливаю необходимый шаблон в оснастку «Сетевые соединения»:

$ sudo apt-get install network-manager-pptp -y

и вот после в выборе шаблона типа соединения появляется шаблон: Point-to-Point Tunneling Protocol (PPTP)

После чего настроив VPN подключение через данный шаблон до Mikrotik с поднятым сервисом PPTP Server иконка в правом нижнем углу приобретает вид соединения с замочком.

Модуль установлен и удаленное подключение через vpn установлено

Соединение с именем «home» успешно установлено и сеть в текущей сеть и сеть за VPN доступна.
Итого, задача решена.
На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Установка SSTP VPN на примере Ubuntu 16.04

  • Установите python3 версии не ниже 3.4.4 sudo apt-get install python3
  • Установите pip3 sudo apt-get install -y python3-pip
  • Установите pppd sudo apt-get install ppp
  • Установите openssl sudo apt-get install openssl

Генерация SSL-сертификата и ключа

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

Получение доверенного сертификата для домена

Для начала привяжите IP-адрес Вашего сервера к домену, путём добавления A-записи в DNS домена.

Далее следует установить приложение certbot:

Генерация своего сертификата

Для того, чтобы сгенерировать SSL-сертификат и ключ, необходимо выполнить следующую команду: openssl req -newkey rsa:2048 -nodes -keyout privkey.pem -x509 -days 365 -out cert.pem

Все параметры можете оставить пустыми, кроме параметра Common Name - здесь необходимо указать внешний IP-адрес Вашего VPN-сервера.

После этого следует скопировать сертификат на компьютеры клиентов, которые будут подключаться к VPN-серверу и установить его в раздел "Доверенные корневые центры сертификации".

Установка и настройка sstpd-server

Установите sstp-server с помощью pip3: pip3 install sstp-server

Создайте конфигурационный файл /etc/ppp/options.sstpd с помощью команды nano /etc/ppp/options.sstpd и добавьте в него следующее содержимое:

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

Создайте конфигурационный файл sstp-server командой nano /etc/sstpd.ini и добавьте в него следующее содержимое:

Осталось лишь запустить наш сервер командой sudo nohup sstpd -f /etc/sstpd.ini & > sstpd.log

VPN сервер запущен! Теперь нужно настроить доступ в интернет для клиентов.

Настройка доступа в интернет через VPN

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

  • Для начала нужно включить перенаправление трафика, отредактировав файл /etc/sysctl.conf nano /etc/sysctl.conf
  • Добавьте или раскомментируйте строку net.ipv4.ip_forward=1
  • После этого необходимо запустить команду sysctl -p для применения изменений.

Также следует добавить следующие правила IPTABLES:

Теперь у Вас есть свой SSTP VPN сервер с доступом к интернету!

Чтобы VPN-сервер запускался каждый раз при запуске компьютера, следует создать файл службы. Это делается путём создания файла в папке systemd nano /etc/systemd/system/sstpd.service со следующим содержимым:

После этого осталось включить автозапуск службы командой systemctl enable sstpd.service и запустить VPN-сервер командой systemctl start sstpd.service .

Рекомендуется запретить ping к серверу: Одноразово это можно сделать командой echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all . Для отключения насовсем:

  • Отредактируйте файл /etc/sysctl.conf nano /etc/sysctl.conf
  • Добавьте или раскомментируйте строку net.ipv4.icmp_echo_ignore_all=1
  • После этого необходимо запустить команду sysctl -p для применения изменений.

Для автоматического обновления сертификата (если используется certbot ) следует добавить в планировщик crontab -e данную строку 0 4 * * 1 certbot renew && systemctl restart sstpd .

1. Установлена Debian 7.6 Wheezy. Окружение - XFCE, если это имеет значение.

2. По умолчанию модуль VPN был недоступен. Установил пакеты:

3. После установки настроил VPN. Запустил, работает.

4. Перезагрузил ПК, соединиться через больше VPN не могу, после долгого подключения выдаёт ошибку. Но если выключить-включить локальную сеть (просто в меню щёлкнуть по её названию), то VPN после этого подключается чуть ли не мгновенно. Проверял уже раз пять, ситуация полностью повторяемая.

А как ты подключаешься?

Какие команды вводишь?


Сравните в /var/log/syslog логи от NetworkManager от удачного подключения и от неудачного.


Нужно смотреть логи: /var/log/daemon.log /var/log/syslog

Немного попыток угадать:

Либо в if-up прописаны маршруты, либо это днс. Но по логам будет проще понять.


WiZ_Ed

А как ты подключаешься?

Какие команды вводишь?

Подключаюсь через графическое меню в системном лотке, команд не ввожу.


AITap

Сравните в /var/log/syslog логи от NetworkManager от удачного подключения и от неудачного.

Лог NetworkManager при неудачном подключении:

Aug 31 15:55:32 mypc NetworkManager[3133]: <info> Starting VPN service 'pptp'.

Aug 31 15:55:32 mypc NetworkManager[3133]: <info> VPN service 'pptp' appeared; activating connections

Aug 31 15:55:48 mypc NetworkManager[3133]: <info> VPN plugin state changed: starting (3)

Aug 31 15:56:00 mypc avahi-daemon[2891]: avahi_normalize_name() failed.

Aug 31 15:56:00 mypc avahi-daemon[2891]: avahi_key_new() failed.

Aug 31 15:56:00 mypc avahi-daemon[2891]: server.c: Packet too short or invalid while reading response record. (Maybe a UTF-8 problem?)

Aug 31 15:56:13 mypc NetworkManager[3133]: <info> VPN connection 'Internet' (Connect) reply received.

Aug 31 15:56:13 mypc NetworkManager[3133]: <warn> VPN connection 'Internet' failed to connect: 'Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.'.

Aug 31 15:56:28 mypc NetworkManager[3133]: <info> Policy set 'Local Network' (eth0) as default for IPv4 routing and DNS.

Aug 31 15:56:33 vault13 NetworkManager[3133]: <info> VPN service 'pptp' disappeared

Лог NetworkManager при удачном подключении:

Aug 31 16:02:51 mypc NetworkManager[3133]: <info> Starting VPN service 'pptp'.

Aug 31 16:02:51 mypc NetworkManager[3133]: <info> VPN service 'pptp' appeared; activating connections

Aug 31 16:02:51 mypc NetworkManager[3133]: <info> VPN plugin state changed: starting (3)

Aug 31 16:02:51 mypc NetworkManager[3133]: <info> VPN connection 'Internet' (Connect) reply received.

Aug 31 16:02:52 mypc pppd[3994]: Plugin /usr/lib/pppd/2.4.5/nm-pptp-pppd-plugin.so loaded.

Aug 31 16:02:52 mypc pppd[3994]: pppd 2.4.5 started by root, uid 0

Aug 31 16:02:52 mypc kernel: [ 833.048085] PPP generic driver version 2.4.2

Aug 31 16:02:52 mypc pptp[4001]: nm-pptp-service-3992 log[main:pptp.c:314]: The synchronous pptp option is NOT activated

Aug 31 16:02:52 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'

Aug 31 16:02:52 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply

Aug 31 16:02:52 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.

Aug 31 16:02:52 mypc pppd[3994]: Using interface ppp0

Aug 31 16:02:52 mypc pppd[3994]: Connect: ppp0 <--> /dev/pts/2

Aug 31 16:02:52 mypc NetworkManager[3133]: SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)

Aug 31 16:02:52 mypc NetworkManager[3133]: SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.

Aug 31 16:02:53 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'

Aug 31 16:02:53 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.

Aug 31 16:02:53 mypc pptp[4007]: nm-pptp-service-3992 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 58673).

Aug 31 16:02:53 mypc pppd[3994]: CHAP authentication succeeded

Aug 31 16:02:53 mypc kernel: [ 834.284705] PPP BSD Compression module registered

Aug 31 16:02:53 mypc kernel: [ 834.299628] PPP Deflate Compression module registered

Aug 31 16:02:53 mypc pppd[3994]: local IP address [адрес1]

Aug 31 16:02:53 mypc pppd[3994]: remote IP address [адрес2]

Aug 31 16:02:53 mypc pppd[3994]: primary DNS address [адрес3]

Aug 31 16:02:53 mypc pppd[3994]: secondary DNS address [адрес4]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> VPN connection 'Internet' (IP Config Get) reply received.

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> VPN Gateway: [адрес5]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Tunnel Device: ppp0

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Internal IP4 Address: [адрес1]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Internal IP4 Prefix: 32

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Internal IP4 Point-to-Point Address: [адрес2]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Maximum Segment Size (MSS): 0

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Forbid Default Route: no

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Internal IP4 DNS: [адрес3]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> Internal IP4 DNS: [адрес4]

Aug 31 16:02:53 mypc NetworkManager[3133]: <info> DNS Domain: '(none)'

Aug 31 16:02:54 mypc NetworkManager[3133]: <info> VPN connection 'Internet' (IP Config Get) complete.

Aug 31 16:02:54 mypc NetworkManager[3133]: <info> Policy set 'Internet' (ppp0) as default for IPv4 routing and DNS.

Aug 31 16:02:54 mypc NetworkManager[3133]: <info> VPN plugin state changed: started (4)

Aug 31 16:02:54 mypc dbus[2805]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)

Aug 31 16:02:54 mypc dbus[2805]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

На всякий случай, сохранил также логи NetworkManager для подключения к локальной сети - как при входе в систему, так и после переподключения.

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