docs: add DNS Tunneling guide and update navigation

ospab 2026-06-19 14:42:39 +03:00
parent 43b4935fd2
commit f1d8fb5bfb
5 changed files with 106 additions and 0 deletions

51
DNS-Tunneling.md Normal file

@ -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.

51
DNS-Tunneling_ru.md Normal file

@ -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 будут успешно пройдены.

@ -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 |

@ -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://` для подключения в один клик |

@ -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)