From f1d8fb5bfba26b2f2e373feba89cec87976fd201 Mon Sep 17 00:00:00 2001 From: ospab Date: Fri, 19 Jun 2026 14:42:39 +0300 Subject: [PATCH] docs: add DNS Tunneling guide and update navigation --- DNS-Tunneling.md | 51 +++++++++++++++++++++++++++++++++++++++++++++ DNS-Tunneling_ru.md | 51 +++++++++++++++++++++++++++++++++++++++++++++ Home.md | 1 + Home_ru.md | 1 + _Sidebar.md | 2 ++ 5 files changed, 106 insertions(+) create mode 100644 DNS-Tunneling.md create mode 100644 DNS-Tunneling_ru.md diff --git a/DNS-Tunneling.md b/DNS-Tunneling.md new file mode 100644 index 0000000..fe46e6b --- /dev/null +++ b/DNS-Tunneling.md @@ -0,0 +1,51 @@ +# DNS Tunneling with OSTP + +OSTP operates over UDP and perfectly masks its traffic as random noise. In some environments (like captive portals, restricted corporate networks, or public Wi-Fi hotspots), standard ports may be blocked, but DNS queries (UDP port 53) are often allowed through the firewall. + +You can exploit this by running OSTP over UDP port 53, effectively bypassing the firewall. This is often referred to as "DNS Tunneling" or "Port 53 bypass". + +## Prerequisites + +1. A VPS where no other DNS server (like `systemd-resolved`, `bind9`, `dnsmasq`) is listening on the public IP at port `53`. +2. OSTP server installed and configured. + +## Server Configuration + +You need to change the `listen` directive in your server's `config.json` to bind to port 53. + +```jsonc +{ + "mode": "server", + "listen": "0.0.0.0:53", + "access_keys": ["YOUR_SECRET_KEY"] +} +``` + +If you are running the server as a non-root user on Linux, binding to port 53 (a privileged port) will result in a "Permission denied" error. You must either run OSTP as root or grant the binary the `CAP_NET_BIND_SERVICE` capability: + +```bash +sudo setcap 'cap_net_bind_service=+ep' /path/to/ostp +``` + +Restart your OSTP server. + +## Client Configuration + +On the client side, update your `outbounds` to point to port 53: + +```jsonc +"outbounds": [ + { + "type": "ostp", + "tag": "proxy", + "server": "YOUR_SERVER_IP", + "port": 53, + "access_key": "YOUR_SECRET_KEY", + "transport": { "type": "udp" } + } +] +``` + +## Security Considerations + +Because OSTP traffic does not look like standard DNS queries (it is pure random noise without standard DNS packet structures), advanced DPI (Deep Packet Inspection) systems may detect that this is not real DNS traffic and block it. However, simple port-based firewalls and standard captive portals will allow the connection without issues. diff --git a/DNS-Tunneling_ru.md b/DNS-Tunneling_ru.md new file mode 100644 index 0000000..c7cbec8 --- /dev/null +++ b/DNS-Tunneling_ru.md @@ -0,0 +1,51 @@ +# DNS-туннелирование с помощью OSTP + +OSTP работает поверх UDP и маскирует свой трафик под случайный шум. В некоторых сетях (например, в публичном Wi-Fi с авторизацией (captive portals) или строгих корпоративных сетях) обычные порты могут быть заблокированы, но DNS-запросы (UDP порт 53) часто разрешены без ограничений. + +Вы можете использовать это, настроив сервер OSTP на прослушивание UDP порта 53. Это позволит обойти блокировку по портам. + +## Требования + +1. VPS, на котором никакой другой DNS-сервер (например, `systemd-resolved`, `bind9`, `dnsmasq`) не занимает публичный IP-адрес на порту `53`. +2. Установленный OSTP сервер. + +## Настройка сервера + +Измените параметр `listen` в вашем файле `config.json` на стороне сервера, чтобы прослушивать порт 53. + +```jsonc +{ + "mode": "server", + "listen": "0.0.0.0:53", + "access_keys": ["ВАШ_КЛЮЧ"] +} +``` + +Если вы запускаете сервер от обычного пользователя (не root) на Linux, попытка занять порт 53 (привилегированный порт) приведет к ошибке "Permission denied". Вы должны запустить OSTP от имени root или выдать бинарному файлу права `CAP_NET_BIND_SERVICE`: + +```bash +sudo setcap 'cap_net_bind_service=+ep' /путь/к/ostp +``` + +Перезапустите ваш OSTP сервер. + +## Настройка клиента + +На клиенте обновите конфигурацию `outbounds`, указав порт 53: + +```jsonc +"outbounds": [ + { + "type": "ostp", + "tag": "proxy", + "server": "IP_СЕРВЕРА", + "port": 53, + "access_key": "ВАШ_КЛЮЧ", + "transport": { "type": "udp" } + } +] +``` + +## Предупреждение (DPI) + +Поскольку трафик OSTP не имеет структуры стандартных DNS-запросов (это чистый белый шум), продвинутые системы DPI (Deep Packet Inspection) могут обнаружить, что это не настоящий DNS-трафик, и заблокировать его. Тем не менее, простые файрволы (блокирующие всё, кроме 53 порта) и стандартные captive portals будут успешно пройдены. diff --git a/Home.md b/Home.md index 307ae5d..fd80fcf 100644 --- a/Home.md +++ b/Home.md @@ -19,6 +19,7 @@ Welcome to the **OSTP Wiki** — the official documentation for the Ospab Stealt |---|---| | [Installation](Installation) | Server & client setup — one-line install scripts | | [Configuration](Configuration) | Full configuration reference for server & client | +| [DNS Tunneling](DNS-Tunneling) | Bypassing captive portals and firewalls over UDP port 53 | | [Management API](Management-API) | REST API for panels, dashboards, and automation | | [Protocol Design](Protocol-Design) | Wire format, cryptography, obfuscation, DPI resistance | | [Share Links](Share-Links) | `ostp://` URI format for one-click connection | diff --git a/Home_ru.md b/Home_ru.md index e8c4368..ff9c3b9 100644 --- a/Home_ru.md +++ b/Home_ru.md @@ -19,6 +19,7 @@ |---|---| | [Установка](Installation_ru) | Настройка сервера и клиента — установка в одну строку | | [Конфигурация](Configuration_ru) | Полный справочник конфигурации сервера и клиента | +| [DNS-туннелирование](DNS-Tunneling_ru) | Обход блокировок и captive portals через UDP порт 53 | | [API управления](Management-API_ru) | REST API для панелей, дашбордов и автоматизации | | [Протокол](Protocol-Design_ru) | Wire format, криптография, обфускация, DPI-устойчивость | | [Ссылки-приглашения](Share-Links_ru) | Формат URI `ostp://` для подключения в один клик | diff --git a/_Sidebar.md b/_Sidebar.md index b4ce001..b22de19 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -6,6 +6,7 @@ - [Home](Home) - [Installation](Installation) - [Configuration](Configuration) +- [DNS Tunneling](DNS-Tunneling) - [Management API](Management-API) - [Protocol Design](Protocol-Design) - [Share Links](Share-Links) @@ -19,6 +20,7 @@ - [Главная](Home_ru) - [Установка](Installation_ru) - [Конфигурация](Configuration_ru) +- [DNS-туннелирование](DNS-Tunneling_ru) - [API управления](Management-API_ru) - [Протокол](Protocol-Design_ru) - [Ссылки-приглашения](Share-Links_ru)