- Вики IT-KB
- Инструменты пользователя
- Инструменты сайта
- Боковая панель
- Содержание
- Настройка VPN-подключения по протоколу SSTP на компьютере под управлением ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS
- Общая информация
- 1. Проверяем версию операционной системы
- 2. Проверяем наличие поддержки работы с протоколом SSTP
- 3. Добавляем поддержку протокола SSTP
- 4. Создание и настройка VPN-подключения по протоколу SSTP
- 5. Проверка подключения
- Сервер SSTP на базе Ubuntu + SoftEther
- SSTP за Haproxy с SNI
- Устанавливаем сервер
- Запуск в виде сервиса systemd
- Администрирование сервера
- Настройка SSTP
- Импорт сертификата сервера
- Создание виртуального Хаба
- Создание пользователя
- Режим маршрутизации траффика
- Состояние сервера SoftEther
- Настройка L2TP/IPSec
- Настройка клиента SoftEther
- Настройка подключения
Вики IT-KB
Пошаговые руководства, шпаргалки, полезные ссылки.
Инструменты пользователя
Инструменты сайта
Боковая панель
Содержание
Настройка VPN-подключения по протоколу SSTP на компьютере под управлением ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS
Общая информация
В данном руководстве Вашему вниманию представлено описание процедуры настройки безопасного VPN-подключения по защищённому протоколу SSTP. Защита VPN-соединения выполняется по средствам механизмов шифрования трафика (SSL) с помощью цифрового сертификата, предоставляемого со стороны VPN сервера. Программное обеспечение клиентской операционной системы в процессе установления VPN-соединения выполняет проверку сертификата VPN-сервера, в частности проверяется не отозван ли сертификат сервера, а также проверяется доверие корневому сертификату Центра сертификации, выдавшего сертификат VPN-серверу. Именно поэтому одним из требований успешной работы VPN-подключения по протоколу SSTP является возможность автоматического обновления списка корневых сертификатов через Интернет. Протокол SSTP является более современным протоколом чем протокол L2TP/IPsec, и более безопасным, чем скомпрометированный протокол PPTP. Дополнительным преимуществом протокола SSTP является его возможность работы через повсеместно доступный порт протокола HTTPS (TCP 443), используемый для обычного веб-браузинга, то есть VPN-соединение по протоколу SSTP будет работать практически через любое Интернет-соединение (домашний интернет, гостиницы, интернет-кафе, мобильный интернет и т.д.).
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:
Сделать это можно как с помощью любого Интернет-браузера, так и с помощью утилит командной строки. Рассмотрим вариант с использованием командной строки.
Запустите приложение «Терминал». Для этого в левой верхней области рабочего стола нажмите кнопку поиска приложений и введите «Терминал». Будет найдено одноимённое приложение. Запустите его.
Первым делом импортируйте PGP-ключи, которыми будут подписаны загружаемые в дальнейшем пакеты SSTP-клиента и Менеджера подключений с поддержкой SSTP, чтобы Ваш компьютер доверял этим пакетам. Для этого выполните в окне Терминала команду:
Затем создайте файл ссылок на репозитарий deb-пакетов SSTP-клиента. Для этого выполните в окне Терминала команду:
С помощью любого текстового редактора добавьте в этот файл две строки (в зависимости от версии ОС):
В случае, если у Вас используется ОС Ubuntu Desktop Linux 16.04 (Xenial Xerus) LTS:
Сохраните изменения в файле и закройте его.
Следующим шагом выполните обновление кэша пакетов apt. Для этого выполните в окне Терминала команду:
После этого проверьте то, что в кэше пакетов появилась информация о пакетах поддержки SSTP. Для этого выполните в окне Терминала команду:
Как видно из вывода команды, в кэше пакетов появилась информация о пакетах поддержки SSTP. Можно приступать к установке этих пакетов.
Внимание. Перед установкой пакетов закройте все ранее открытые окна менеджера сетевых соединений.
Выполните установку пакетов командой:
Во время установки на вопросы системы об установке дополнительных необходимых пакетов отвечайте утвердительно.
Все пакеты должны установиться без ошибок.
Примечание:
Если по какой-то причине необходимые пакеты недоступны для загрузки из онлайн-репозитария, Вы можете загрузить их копию с помощью любого Интернет-браузера по ссылке https://yadi.sk/d/o6azo_d7q8PPU
Если загрузка пакетов выполняется Вами вручную, скопируйте файлы пакетов в одну папку и для их установки выполните команду:
В независимости от типа установки, процесс установки всех пакетов должен пройти без ошибок.
После завершения установки пакетов поддержки SSTP желательно перезагрузить компьютер.
4. Создание и настройка VPN-подключения по протоколу SSTP
В верхнем правом углу рабочего стола нажмите кнопку управления сетевыми подключениями и в меню выберите «Соединения VPN», затем «Настроить VPN…»
В открывшемся окне сетевых соединений нажмём кнопку «Добавить», чтобы создать новое сетевое соединение. В окне выбора типа соединения откроем ниспадающий список возможных типов соединений, выберем в нём протокол «Secure Socket Tunneling Protocol (SSTP)» и нажмём кнопку «Создать»
В открывшемся окне укажите название создаваемого VPN-соединения, например, KOM-AD01-VPNCL
На закладке «VPN» в поле «Шлюз» впишите полное доменное имя VPN-сервера: KOM-AD01-VPNCL.it-kb.ru
В полях «Имя пользователя» и «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
Источник
Сервер SSTP на базе Ubuntu + SoftEther
Softether — это мультиплатформенный, мультипротокольный VPN-сервер. Моя задача — поднять на базе него SSTP VPN-сервер (для того, чтобы выбраться из-под гнёта корпоративного файервола имя которому — ironport).
SSTP за Haproxy с SNI
В моем случае, сам сервер Softether находится за NAT и HAproxy. То есть на роутере прокинут (mapping) порт 443 на lxc-контейнер с HAProxy, на котором, в свою очередь, настроен проброс HTTPS траффика по SNI (mode tcp) на контейнер с SoftEther. Фактически, HAProxy еще раз мапит порт 443.
Эта конфигурация позволяет держать на одном хосте и несколько HTTPS-сайтов (каждый со своим сертификатом), а также SoftEther. При этом, каждый сервис работает в собственном независимом lxc-контейнере.
Нужно учитывать, что SNI присутсвует не в в каждом пакете SSTP-трафика. Поэтому через HAProxy с SNI трафик SSTP будет нормально проходить только когда контейнер указан в качестве default_backend, либо будет использоватьться конфигурация, описанная тут:
То есть, выполняется проверка наличия SNI и если он есть, то трафик направляется на Web-сервер, а если нет, то на сервер SSTP.
Устанавливаем сервер
Запуск в виде сервиса systemd
Создаем файлик /lib/systemd/system/vpnserver.service
Администрирование сервера
Для администрирования сервера в комплект входит утилита vpncmd. Она позволяет администрировать как локальный, так и удаленный сервер. Также есть GUI , но он под Windows и под wine у меня не заработал.
Во-первых нужно установить административный пароль:
Полный список доступных команд можно увидеть так:
Настройка SSTP
Включаем SSTP:
Импорт сертификата сервера
Для работы SSTP нужен сертификат. Его может сгенерировать сам SoftEther, но я предпочитаю использовать нормальные сертификаты Let’s Encrypt. Я их получаю так: Сертификаты Let’s Encrypt
Для того, чтобы подсунуть сертификат в SoftEther есть команда:
при её выполнении нужно указать путь к сертификату и закрытому ключу. В случае с let’s encrypt это /etc/letsencrypt/live/your.domain.com/fullchain.pem и /etc/letsencrypt/live/your.domain.com/privkey.pem.
Создание виртуального Хаба
SoftEther использует концепцию виртуальных хабов. Хабы используются для разграничения прав и изоляции траффика. Можно создать новый хаб, но можно использовать дефолтный. Я буду использовать дефолтный.
Создать новый хаб и перейти в него можно командами:
Задать административный пароль для хаба можно командой:
Создание пользователя
SoftEther поддерживает много разных вариантов авторизации, в том числе и AD, RADIUS, однако, настраивать их через CLI я пока не знаю как, поэтому — настраиваю локальных пользователей.
Создание пользователя:
Задаем пароль для пользователя:
Режим маршрутизации траффика
После выбора хаба нужно задать режим маршрутизации VPN-сессий. Режимов два — Local Bridge и SecureNAT.
LocalBridge — вариант при котором клиент присоединяется к сегменту Ethernet-сети, подключенному к одному из физических сетевых адаптеров VPN-сервера. Соединение происходит на втором уровне модели OSI
SecureNAT — режим, в котором VPN-сервер маршрутизирует траффик как роутер. В этом случае в недрах сервера SoftEther поднимается собственный маршрутизатор и DHCP-сервер (не связанные с ядром ОС), способные работать в userspace. Виду того, что я поднимаю SoftEther в контейнере lxc, я буду использовать режим SecureNAT:
При включении режима SecureNat автоматически включается маршрутизатор и и DHCP-сервер.
Настроить параметры виртуального сетевого адаптера SecureNAT можно командой:
При выполнении SecureNatHostSet нужно задать MAC-адрес (произвольный, начинающийся с 00:AC), IP-адрес (по-умолчанию 192.168.30.1) и маску сети (по-умолчанию — 255.255.255.0).
Параметры MTU и таймаутов для Virtual NAT можно задать командой:
Параметры сервера DHCP задаются командой:
Посмотреть текущие выданные DHCP-сервером IP-адреса:
Состояние сервера SoftEther
Список прослушиваемых в данный момент портов:
Настройки SecureNAT:
Состояние SecureNAT:
Настройка L2TP/IPSec
Включаем L2TP/IPSec
Проверяем статус OpenVPN
Настройка клиента SoftEther
Клиент SoftEther способен работать в режиме сервиса, самостоятельно поддерживая работоспособность канала.
Настройка подключения
Запускаем утилитку управления клиентом.
Теперь жмем 2.
При настройке клента надо сделать две вещи. Создать виртуальный сетевой адаптер и привязать к нему подключение.
Создаем адаптер:
При создании подключения сервер указвыавем с портом server:port. В моем случае как-то так:
Теперь прописываем пароль для нового подключения:
тут нужно указать имя подключения, пароль и тип авторизации (standard или RADIUS) в нашем случае — standard.
Источник