Перейти до вмісту
Проксі та обхід цензури

Проксі та обхід цензури

Кожен акаунт Signal, яким керує signal2sip, можна спрямувати через проксі - той самий механізм, що використовує функція “Set Proxy” в офіційних застосунках Signal, і з тієї самої причини: доступ до серверів Signal з мережі, де вони заблоковані, без VPN.

Як це працює

  • Підтримка проксі в signal2sip використовує той самий протокол, що й реальні клієнти Signal для вручну налаштованого проксі (схема org.signal.tls, яку несуть посилання signal.tube): прозорий TCP/TLS-ретранслятор до chat.signal.org.
  • Ретранслятор ніколи не термінує і не інспектує TLS-сесію, яку несе - справжнє наскрізне TLS-рукостискання вашого клієнта з chat.signal.org (власний закріплений сертифікат Signal, справжній SNI) відбувається точно так само, як без проксі; ретранслятор лише пересилає байти шифротексту, які сам прочитати не може. Проксі приховує від спостерігача мережі сам факт з’єднання з Signal - він не додає точки розшифрування і не послаблює жодних наскрізних гарантій самого Signal.
  • Це окремо від власного механізму автоматичного domain fronting у Signal (маскування з’єднань під загальні, важкі для блокування CDN-адреси), яким поле проксі в signal2sip напряму не керує - див. незалежний прапорець нижче.

Налаштування для кожного акаунта

Два незалежні параметри, обидва редагуються наживо - без перезапуску демона, див. Керування наживо - через signal2sip-gendb або екран налаштувань Signal у TUI:

signal2sip-gendb <ім'я-акаунта> config set signal_proxy proxy.example.com
signal2sip-gendb <ім'я-акаунта> config set signal_proxy proxy.example.com:8443
signal2sip-gendb <ім'я-акаунта> config set signal_proxy ""
  • signal_proxy - хост, опційно host:port (за замовчуванням 443), прозорого TLS-ретранслятора; порожнє значення (типово) означає пряме з’єднання. Той самий ретранслятор, на який вказував би екран “Set Proxy” реального клієнта Signal.
  • signal_censorship_circumvention - yes/no, незалежний перемикач власної автоматичної поведінки domain fronting у Signal.

Запуск власного ретранслятора

На стороні сервера не потрібен жодний власний протокол - достатньо прозорого TCP/TLS-проходу до chat.signal.org:443 (підійде блок nginx stream {}, socat або TCP-режим HAProxy). Як готовий до розгортання варіант, signal2sip також публікує signal-proxy-caddy (Apache-2.0, окремий репозиторій) - ретранслятор на базі Caddy з одним реальним покращенням порівняно з офіційним signalapp/Signal-TLS-Proxy: трафік не-Signal-проб перенаправляється на фейкову відповідь замість скидання, що закриває прогалину у fingerprint активного зондування (net4people/bbs#60), яка досі є в офіційному проксі. Він також підтримує опційний allowlist за IP, якщо ви хочете тримати ретранслятор приватним лише для власних акаунтів, а не відкритим для всіх.

Перевірено наживо: протестовано наскрізно на реально розгорнутому ретрансляторі - перевірка сирого TLS-ретранслятора, справжній офіційний застосунок Signal і справжній акаунт signal2sip - усі підтверджено коректно маршрутизуються через нього.