Как настроить tls tunnel
TLS Tunnel
версия: 5.0.2
Последнее обновление программы в шапке: 05.06.2022
Краткое описание:
Туннелирование интернета, прокси, vpn.
TLS Tunnel использует простой протокол, который мы называем TLSVPN .
TLSVPN генерирует уникальный внутренний IP-адрес для каждого подключенного пользователя, и это позволяет устанавливать связь между пользователями на одном сервере. Эта функция является необязательной и может быть заблокирована через настройки приложения.
Весь трафик, генерируемый между клиентом и сервером, защищен протоколом TLSv1.3 .
С помощью приложения можно настроить начало соединения (мы называем это инъекцией) с набранным текстом соединения (по стандарту HTTP или любому другому стандарту) или настроить SNI для выполнения рукопожатия с сервером.
Это очень полезно для преодоления ограничений, налагаемых интернет-провайдерами или любой сетью, которую вы используете во время соединения.
Каждому пользователю присваивается идентификатор, случайно сгенерированный приложением для подключения к серверу.
Вы можете импортировать и экспортировать настройки метода подключения.
Файл конфигурации имеет расширение .tls . Это зашифрованный текстовый файл, содержащий всю информацию, которая была определена до его экспорта, за исключением DNS и параметров подключения, таких как переподключение и внутренняя защита IP .
При экспорте вы можете установить сообщение для того, кто осуществляет импорт, и заблокировать его, чтобы настройка метода не отображалась и не редактировалась.
Возможен трафик любого соединения по протоколам TCP, UDP, ICMP, IGMP.
Уважаемые пользователи!
В данной теме обсуждается лишь приложение TLS Tunnel.
Тут не обсуждаются способы обхода платы за Интернет и не сравниваются операторы мобильной связи и их тарифы.
Шифрование TLS-трафика по алгоритмам ГОСТ-2012 c Stunnel
В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0.
Но для начала давайте вообще разберёмся для чего нужен Stunnel. В двух словах — это программа, на которую можно переложить всю логику шифрования трафика между сервером и клиентом. Делается это следующем образом: допустим у вас есть клиент и сервер, которые общаются между собой без использования шифрования, аутентификации и проверки целостности. Вы могли бы переписать клиент и сервер так, чтобы все исходящие и входящие сообщения передавались между собой с учётом всех этих моментов, но для чего такие сложности, если можно это просто переложить на плечи другому приложения? Для решения такой задачи как раз подойдёт Stunnel.
Вам нужно просто настроить клиент таким образом, чтобы весь свой трафик он передавал на клиентский Stunnel, в свою очередь, он устанавливает безопасное соединение с сервером, отправляя данные на серверный Stunnel. Stunnel на сервере расшифровывает пришедший трафик и перенаправляет данные на вход серверу. Вышесказанное проще осознать глядя на эту диаграмму
Стоит заметить, что на сервере не обязательно должен стоять именно Stunnel, для работы с криптографическими алгоритмами. Здорово, что есть готовые демонстрационные стенды, которые поддерживают российскую криптографию, список которых есть в презентации с РусКрипто’2019.
Нам нужны стабильно работающие серверы, осуществляющие двухстороннюю аутентификацию.
Мы выбрали серверы КриптоПро как наиболее надёжные с полной реализацией стандарта ГОСТ TLS. Спасибо им за это 🙂
Звучит достаточно просто, давайте попробуем организовать этот процесс.
Подготовительный шаг
- OpenSSL
- Stunnel
- rtengine
- Доступ к тестовым серверам КриптоПро, для проверки соединения по TLS
OpenSSL для Windows можно взять отсюда, а для пользователей линукса — из репозиториев или собрать самому, скачав свежую версию отсюда. Также его можно взять из Rutoken SDK, из директории openssl\openssl-tool-1.1, этот архив нам будет полезен и дальше, т.к. в нём находится интересующий нас rtengine. Stunnel можно найти здесь. Для работы необходима версия >= 5.56.
Скачать rtengine можно из Rutoken SDK, он лежит в директории openssl\rtengine\bin. Закинуть его нужно туда, где хранятся все движки openssl. Узнать путь до них можно с помощью
Но просто переместить движок в нужную папку — мало, нужно ещё сконфигурировать сам openssl для работы с ним. Узнаём где лежит файл с конфигурацией openssl.cnf с помощью той же команды, что указана выше (под виндой stunnel идёт с собственной версией openssl, поэтому файл с конфигурацией лежит в path\to\stunnel\config\openssl.cnf
Давайте проверим, что rtengine подключился, для этого подключим токен и выведем список всех алгоритмов шифрования:
Напомню, что в Windows нужно проверять на openssl, который лежит рядом с stunnel
Если среди них будут присутствовать наши ГОСТы, значит всё настроено верно.
Настало время самого интересного: проверка установки соединения по ГОСТу с тестовыми серверами КриптоПро. Список данных серверов описан здесь (https://www.cryptopro.ru/products/csp/tc26tls). Каждый из этих серверов работает со своими алгоритмами для аутентификации и шифрования. Более того на портах 443, 1443, 2443,… запущены сервисы, которые воспринимают только определённые парамсеты. Так, например, по адресу http://tlsgost-256auth.cryptopro.ru происходит шифрование с аутентификацией с использованием алгоритмов GOST2012-GOST8912-GOST8912 и 256-битным ключом. Так же на порту 443 используется XchA-ParamSet, на порту 1443 — XchB-ParamSet, на порту 2443 — A-ParamSet и т.д.
Теперь, когда мы знаем, какой ключ нам нужен, давайте получим корневой сертификат от тестового сервера, выработаем ключи для работы и подпишем запрос на наш сертификат.
Простой способ (работает под Windows и Linux)
- Для того, чтобы получить корневой сертификат, зайдём на сайт тестового УЦ ООО «КРИПТО-ПРО». И нажмём на кнопку для получения сертификата. Отобразится новая вкладка, на которой нужно будет выбрать метод шифрования Base64 и нажать на кнопку «Загрузка сертификата ЦС». Полученный файл certnew.cer сохраняем.
- Переходим по ссылке. Устанавливаем все плагины, которые от нас просят. Нажимаем на кнопку ”Создать ключ”, и выбираем для генерации алгоритм «ГОСТ Р 34.10-2012 256-бит». Далее создаём запрос на сертификат, в графе «Применение» можно выбрать все. В графе Дополнительное применение: Аутентификация клиента и Пользователь центра регистрации КриптоПро.
- Опять открываем сайт тестового УЦ, но на этот раз нажимаем на кнопку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64». Вставляем в поле содержимое нашего запроса, нажимаем на клавишу “Выдать” и загружаем сертификат user.crt в формате Base64. Полученный файл сохраняем.
Через командную строку
Для того, чтобы получить корневой сертификат, зайдём на сайт тестового УЦ ООО «КРИПТО-ПРО». И нажмём на кнопку для получения сертификата. Отобразится новая вкладка, в которой нужно будет выбрать метод шифрования Base64 и нажать на кнопку «Загрузка сертификата ЦС». Полученный файл certnew.cer сохраняем.
Теперь генерируем ключи.
Стоит заметить, что сгенерированные на токене ключи не могут быть скопированы с токена. В этом состоит одно из основных преимуществ их использования.
Создадим запрос на сертификат:
Опять открываем сайт тестового УЦ, но на этот раз нажимаем на кнопку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64». Вставляем в поле содержимое нашего запроса, нажимаем на кнопку Выдать и загружаем сертификат user.crt в формате Base64. Полученный файл сохраняем
Остался последний вопрос: Для чего всё это. Зачем мы получали все эти сертификаты, ключи и запросы?
Дело в том, что они нужны протоколу TLS для двусторонней аутентификации. Работает это очень просто.
У нас есть сертификат сервера, и мы считаем его доверенным.
Наш клиент проверяет, что сервер, с которым мы работаем имеет аналогичный сертификат.
Сервер же хочет убедиться, что работает с пользователем, который ему известен. Для этого мы и создавали запрос на сертификат для работы через наши ключи.
Мы отправили этот запрос и сервер подписал её своей ЭЦП. Теперь мы можем каждый раз предъявлять этот сертификат, подписанный корневым УЦ, тем самым подтверждая, что мы — это мы.
Конфигурирование Stunnel
Осталось только правильно настроить наш туннель. Для этого создадим файл stunnel.conf с настройками Stunnel по умолчанию и напишем туда следующее:
Теперь, если всё сделано правильно, можно запустить Stunnel с нашей конфигурацией и подключиться к серверу:
Откроем браузер и зайдём по адресу localhost:8080. Если всё верно, то отобразится следующее:
Если же нет, то смотрим логи и используем отладчик, чтобы понять в чём же всё-таки проблема.
pghalliday/tls-tunnel
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A Node.js client/server implementation of a secure tunnel over TLS/SSL. Useful for exposing local servers on public hosts. Initially implemented to expose a local server to browsers provided by BrowserStack to integrate their beta API with test scripts.
The idea is simple.
- A server runs on a public host accepting connections on a public host name, let’s say «mytlstunnel.com»
- Initially only one port will be open and accepting connections, eg. 8080
- On your local machine you start a client that connects to mytlstunnel.com:8080 using a TLS socket and let it know what local port it should expose, eg. 8000
- The server assigns another port for use with that client and starts listening on it using an ordinary net socket, notifying the client on which port it will listen, eg 8081
- When a third party tries to connect to mytlstunnel.com:8081 the server asks the client to make another connection using TLS to handle the traffic going through mytlstunnel.com:8081
- The client does this and pipes all traffic to and from the third party on mytlstunnel.com:8081 and localhost:8000
- Can be used to tunnel HTTP, HTTPS or raw or TLS sockets
- Can specify any host and port to forward to that is reachable by the client
- Servers and clients can be instantiated within Node.js contexts
- Servers can be configured to only accept connections from known clients (using SSL certificates), preventing strangers using your resources
- Clients can be configured to validate against a known list of servers (using SSL certificates), preventing anyone from masquerading as your server
- Servers can be configured to expose a predefined set of ports
To instantiate and start a server
To instantiate and connect a client
Hints on generating certs for testing
See the test/keys folder for certificates used by the tests. These can be regenerated at anytime using either keys.sh (OSX, Linux) or keys.bat (Windows). These scripts use OpenSSL. OSX and Linux most likely already ship with OpenSSL. If using Windows you will need to install OpenSSL first.
It should be noted that for the client to authorize server certificates they need to have the correct hosts listed as altnames in the v3 extensions (although this doesn’t seem to be required on Windows).
How to Use TLS Tunnel Application for Free Internet Tricks
Blog.Fastssh.com — How to Use TLS Tunnel Application for Free Internet Tricks — For some people, the name of the TLS Tunnel application will be very foreign to the ears. For those of you who still don’t know what TLS Tunnel is and what it’s used for, then you should listen to this article carefully.
TLS Tunnel is a VPN application that can help its users to manipulate internet connections. VPNs are widely used to help access blocked websites.
TLS Tunnel uses a simple protocol that we call TLSVPN.
TLSVPN generates a unique internal IP for each connected user, this allows the communication between users on the same server, this function is optional and can block through the app settings.
For those of you who are observant TLS Tunnel users, then you will realize that this VPN application can also be used for other things. As used for free internet tricks.
Using a VPN aims to be able to access various websites that are blocked by the government such as Tumblr. In fact, the benefits of a VPN go beyond that. Anything? Find out more by reading this article.
How to Use TLS Tunnel Application for Free Internet Tricks
Check out the tutorial below to use TLS Tunnel.
1. Download TLS Tunnel Aplication
2. Settings TLS Tunnel Aplication
There are several methods you can use on the TLS Tunnel application. Namely, Default Method, Custom Payload, Custom SNI and Custom Payload + SNI. The most frequently used ones are Custom Payload and Custom SNI.
We will explain the Custom SNI method first.
2.0.1 Settings TLS Tunnel Aplication Custom SNI method:
In the Connection Method, your SNI Host is filled with an active SNI host bug, for example we use SNI, .instagram.com because it will change the Instagram package to become the main quota. Then tap the logo in the upper right corner like the arrow in the image below:
The form in the image below is the format for SSH SSL account settings. to get an SSH SSL account you can create it for free on the FastSSH.com site.
- Create SSH SSL STUNNEL TLS.
- How to Create a Free SSH Account.
After you have successfully created an SSH SSL account, please enter the SSH SSL account that you created on the FastSSH.com site into the TLS Tunnel application as shown in the image below:
Return to the HOME menu on the TLS Tunnel application then TAP START to connect the TLS Tunnel application.
Wait a few seconds for the connection process, then tap the LOG menu to see the status whether the TLS Tunnel has successfully connected?
TLS Tunnel is properly connected.
2.0.2 Settings TLS Tunnel Aplication Custom Payload method:
To use the TLS Tunnel with the Custom Payload method, you must use a payload that can still be active, you can change the payload according to your needs.
Select Custom Payload.
Enter your Payload. You can use the Payload below, but the Payload that we use may not work in all regions. You can create or modify it yourself.
CONNECT [host_port] [protocol][crlf]Host: m.instagram.com[crlf]X-Online-Host: m.instagram.com[crlf]X-Forward-Host: m.instagram.com[crlf]Connection: Keep-Alive[crlf][crlf]
After entering the payload, please follow the arrows for SSH settings.
- Create SSH Dropbear / OpenSSH.
- How to Create a Free SSH Account.
Tap START to Connect.
Tap LOGS to see the status.
TLS Tunnel has been successfully connected properly.
The TLS Tunnel tutorial is complete.
Conclusion
By using TLS Tunnel and using SSH, you can use it for free internet tricks and also change your ip address.