Postaw proste proxy po TLS według naszych wskazówek.
Cenzura w Iranie
Nieco od tygodnia coraz popularniejszy komunikator Signal obserwuje, że irańskie władze zaczęły blokować cały ruch Signal w tym kraju. Jako tymczasowe rozwiązanie, aby pomóc ludziom w Iranie w ponownym nawiązaniu połączenia, dodano w Signal obsługę dla prostego serwera proxy TLS. Jest on łatwy w konfiguracji, może być używany do ominięcia blokady sieci i bezpiecznie przekierowuje ruch do usługi Signal.
Nowa metoda połączenia jest obsługiwana przez najnowszą wersję beta Signal dla systemu Android i zostanie udostępniona wszystkim użytkownikom już za kilka dni. Autorzy Signala mają nadzieję, że pomoże to wielu ludziom w Iranie w ponownym wysyłaniu i odbieraniu wiadomości, podczas gdy będzie można „na spokojnie” badać inne techniki omijania cenzury, które będą wdrażane w kraju Persów.
Działaj jako proxy
Jeśli chcesz pomóc uruchamiając serwer proxy, potrzebujesz tylko:
- Serwer z dostępnymi portami 80 i 443.
- Nazwę domeny (lub subdomeny) wskazującą na adres IP serwera.
Serwer proxy jest bardzo lekki i nie powinien obciążyć Twojego serwera. Według Signala nawet niedrogi i mały VPS może z łatwością obsługiwać setki jednoczesnych użytkowników. Oto, jak to zrobić:
- Zaloguj się przez SSH do serwera i zainstaluj Docker, Docker Compose i git:
sudo apt update && sudo apt install docker docker-compose git
- Sklonuj repozytorium Signal TLS Proxy:
clone git https://github.com/signalapp/Signal-TLS-Proxy.git
- Wejdź do katalogu repozytorium:
cd Signal-TLS-Proxy
- Uruchom skrypt pomocniczy, który konfiguruje i obsługuje certyfikat TLS z Let’s Encrypt:
sudo ./init-certificate.sh
- Zostaniesz poproszony o wprowadzenie domeny lub subdomeny wskazującej na adres IP tego serwera. Wpisz ją.
- Użyj Docker Compose, aby uruchomić proxy:
sudo docker-compose up –detach
Gotowe, proxy działa!
Korzystanie z proxy
Twój serwer proxy dla Signala jest już uruchomiony. Możesz go teraz udostępniać używając tego formatu adresu URL: https://signal.tube/# <wskazana_przez_Ciebie_domena>
.
Wspomniana na wstępie najnowsza wersja beta aplikacji na Androida obsługuje linki z signal.tube. Aplikacja może automatycznie konfigurować obsługę serwera proxy po kliknięciu na link z dowolnej innej aplikacji. Ta konfiguracja następuje jeszcze przed wysłaniem jakiegokolwiek żądania internetowego więc nawet jeśli cenzor spróbuje zablokować Twoją domenę, nic tym sposobem nie osiągnie.
Jako klient możesz również ręcznie skonfigurować informacje proxy w ustawieniach Signal.
Niestandardowy serwer proxy
W przeciwieństwie do standardowego serwera proxy HTTP połączenia z serwerem Signal TLS Proxy wyglądają jak zwykły zaszyfrowany ruch internetowy. W żądaniu w postaci zwykłego tekstu nie ma metody CONNECT, która ujawniłaby cenzorom, że używany jest właśnie serwer proxy. Prawidłowe certyfikaty TLS są dostarczane dla każdego serwera proxy utrudniając cenzorom pobranie charakterystycznych ciągów bajtów, co mogłoby się im udawać w przypadku użycia statycznych certyfikatów z podpisem własnym. Krótko mówiąc, wszystko zostało zaprojektowane tak, aby jak najbardziej wtapiać się w tło „zwykłego” ruchu sieciowego.
Sprawdź oferty pracy na TeamQuest
Klient Signal ustanawia więc normalne połączenie TLS z proxy, a proxy po prostu przekazuje wszystkie otrzymane bajty do faktycznej usługi Signal. Wszelki ruch inny niż Signal jest blokowany. Ponadto klient Signal nadal negocjuje swoje standardowe połączenie TLS z punktami końcowymi Signal przez Twój tunel. Oznacza to, że oprócz szyfrowania end-to-end, które chroni wszystko w Signal, cały ruch pozostaje nieprzejrzysty dla Ciebie jako operatora proxy. To też jest istotne, bo proxy lubią stawiać także sami cenzorzy.
#IRanASignalProxy
Jeśli skonfigurujesz serwer proxy i chcesz o tym dać znać światu, możesz też użyć hashtagu #IRanASignalProxy. Pamiętaj jednak, że kiedy publicznie podajesz link signal.tube lub jeśli dany serwer stanie się zbyt popularny, zwiększa się szansa, że irańscy cenzorzy po prostu dodadzą te adresy IP do swojej listy zablokowanych IP.
Bardziej dyskretnym podejściem byłoby więc wysłanie linku tylko za pośrednictwem wiadomości prywatnej lub wiadomości niepublicznej. Możesz opublikować coś takiego w swojej ulubionej sieci społecznościowej:
#IRanASignalProxy Reply to this thread if you want the connection details, and follow me so I can privately send you the link.