Tor and Hetzner block in Russia

This post is about recent (from early November) problems with access to servers hosted on Hetzner from Russia. I decided to write this because there has been new information found about how it behaves by me and other people, and it might be related to Tor (or not?, but maybe still useful?). The discussion with up-to-date findings (in Russian) can be found here: Недоступность Hetzner - Russia - NTC

Preface

A lot of people on ntc.party speculated about the way the Hetzner block acts, because it seemed that it was somehow targeted and would only show itself to small portion of people and would sometimes go away and return without clear mechanism. I was trying to find at least one (of possibly many) triggers that activate said block.

When you experience that block, tcp connections to all ports cannot be established, you never get a response to a SYN packet, udp doesn’t work as well, but ICMP ping works correctly without any problems. I think this applies to all Hetzner ips (people were referring to this list of ip ranges (AS24940 Hetzner Online GmbH details - IPinfo.io), I was testing it in particular on sites like archlinux.org and kde.org which are hosted there. I have also experienced the same behavior, synchronously, with OVH hosting, in particular I was testing with socket4.lichess.org domain.

An important finding was that after blocking all outgoing connections (or pulling the wan cable out) for around 15 minutes would make the block go away until it was triggered again by something.

The trigger

After I was able to reset the block I started to try different things that might trigger it, and that included launching and connecting to Tor using Tor Browser without any bridges configured, which does not allow you to connect successfully, but that wasn’t the point. And to my surprise, it did reliably trigger Hetzner block after around 20 seconds after clicking “Connect” button.

I recorded all traffic that the Tor Browser was making with Wireshark and analyzed it later to pinpoint the exact reason it triggered the block. And what I found is that my Tor Browser would establish a tls connection to www.phpmyadmin.net, with 185.76.9.27 ip in my case.

Later after I waited 15 minutes to remove the block I launched curl to watch connections every 2 seconds to kde.org and as soon as I visited https://www.phpmyadmin.net/ in my browser - kde.org stopped responding immediately. Phpmyadmin site still continues to work after Hetzner is blocked. This behavior was confirmed by a few other people on ntc.party, but it still might vary from ISP to ISP, one person said they got the block only from visiting phpmyadmin without www.

So far I think it’s the only trigger that was pinpointed, I’m not sure if it’s specifically related to Tor, maybe it’s used as Domain Fronting by some other projects as well. I hope someone here can share ideas about how all of that is related.

10 Likes

Thank you for the research, this is very useful information.

phpmyadmin.net is used as domain front to talk to rdsys to request bridges. It is also used as domain front to bootstrap snowflake connections.

3 Likes

How to find more domain fronts using CDN77

  1. Find all subdomains of rsc.cdn77.org in the Tranco list.
  2. Perform TLS handshakes with IPs these subdomains point to, store the common name and the Subject Alternative Name.
  3. Find usable domains.

Some alternative domain fronts

pull-flv-f77-va01.fcdn.eu.tiktokcdn.com
pull-flv-q77-sg01.eu.tiktokcdn.com
pull-flv-f77-tt01-tt03.fcdn.eu.tiktokcdn.com
pull-flv-l77-tt02.eu.tiktokcdn.com
pull-flv-f77-tt02-tt03.fcdn.eu.tiktokcdn.com
pull-hls-f77-gcp01.tiktokcdn.com
pull-flv-f77-tt01.tiktokcdn-eu.com
pull-flv-f77-tt04.tiktokcdn.com
pull-flv-q77-va01.eu.tiktokcdn.com
pull-flv-f77-tt03.fcdn.eu.tiktokcdn.com
pull-flv-l77-gcp01.tiktokcdn.com
pull-flv-f77-tt04.tiktokcdn-eu.com
pull-flv-l77-va01.eu.tiktokcdn.com
pull-flv-l77-gcp01.eu.tiktokcdn.com
pull-flv-o77-sg01.eu.tiktokcdn.com
pull-cmaf-f77-tt03.fcdn.eu.tiktokcdn.com
pull-flv-l77-sg01.eu.tiktokcdn.com
pull-flv-w77-sg01.eu.tiktokcdn.com
pull-flv-f77-va01.tiktokcdn-eu.com
pull-flv-f77-sg01.tiktokcdn-eu.com
pull-flv-f77-sg01.fcdn.eu.tiktokcdn.com
pull-flv-w77-va01.eu.tiktokcdn.com
pull-flv-f77-tt03-expt.fcdn.eu.tiktokcdn.com
pull-flv-l77-tt01.eu.tiktokcdn.com
pull-flv-o77-va01.eu.tiktokcdn.com
pull-flv-f77-gcp01.tiktokcdn.com
pull-cmaf-f77-gcp01.tiktokcdn.com
pull-flv-f77-tt02.tiktokcdn-eu.com
pull-cmaf-l77-gcp01.tiktokcdn.com
pull-flv-o77-sg01.tiktokcdn.com
pull-flv-f77-tt03.fcdn.us.tiktokcdn.com
pull-flv-f77-tt02.tiktokcdn.com
pull-flv-f77-tt01.tiktokcdn.com
pull-flv-q77-sg01.tiktokcdn.com
pull-cmaf-l77-va01.tiktokcdn.com
pull-hls-f77-sg01.tiktokcdn.com
pull-flv-q77-va01.tiktokcdn.com
pull-cmaf-f77-sg01.tiktokcdn.com
pull-flv-w77-va01.tiktokcdn.com
pull-flv-o77-va01.tiktokcdn.com
pull-flv-f77-tt03.tiktokcdn.com
pull-flv-l77-sg01.tiktokcdn.com
pull-flv-f77-sg01.tiktokcdn.com
pull-cmaf-f77-va01.tiktokcdn.com
pull-cmaf-f77-tt03.tiktokcdn.com
pull-hls-f77-va01.tiktokcdn.com
pull-hls-l77-va01.tiktokcdn.com
pull-flv-w77-sg01.tiktokcdn.com
pull-flv-l77-tt02.tiktokcdn.com
pull-flv-l77-va01.tiktokcdn.com
pull-flv-l77-tt01.tiktokcdn.com
pull-flv-f77-va01.tiktokcdn.com
pull-flv-f77-tt01.tiktokcdn-us.com
pull-flv-o77-va01.tiktokcdn-us.com
pull-flv-q77-sg01.tiktokcdn-us.com
pull-flv-l77-sg01.tiktokcdn-us.com
pull-flv-q77-va01.tiktokcdn-us.com
pull-flv-w77-sg01.tiktokcdn-us.com
pull-flv-l77-va01.tiktokcdn-us.com
pull-flv-l77-gcp01.tiktokcdn-us.com
pull-cmaf-f77-tt02.tiktokcdn-us.com
pull-flv-f77-tt04.tiktokcdn-us.com
push-rtmp-l77-tt02.tiktokcdn-us.com
pull-flv-w77-va01.tiktokcdn-us.com
pull-flv-f77-sg01.tiktokcdn-us.com
pull-flv-o77-sg01.tiktokcdn-us.com
pull-flv-f77-tt02.tiktokcdn-us.com
pull-cmaf-f77-tt01.tiktokcdn-us.com
pull-flv-f77-tt01.fcdn.us.tiktokv.com
pull-flv-f77-va01.tiktokcdn-us.com
pull-flv-l77-tt02.tiktokcdn-us.com
push-rtmp-l77-tt01.tiktokcdn-us.com
pull-flv-f77-tt02.fcdn.us.tiktokv.com
pull-flv-l77-tt01.tiktokcdn-us.com
www.sport1.de
matokeo.necta.go.tz
push-rtmp-l77-sg01.tiktokcdn.com
cdn.userway.org
vid.vidoomy.com
www.redgifs.com
www.analvids.com
tags.creativecdn.com
vpaid.vidoomy.com
v77.tiktokcdn.com
push-rtmp-l77-va01.tiktokcdn.com
p77-sg.tiktokcdn.com
statics.creativecdn.com
s3t3d2y8.afcdn.net
load77.exelator.com
p77-sign-va.tiktokcdn.com
cdn77.api.userway.org
topics.authorizedvault.com
filters.adtidy.org
push-rtmp-l77-gcp01.tiktokcdn.com
p77-sign-sg.tiktokcdn.com
a.magsrv.com
p77-va.tiktokcdn.com
a.orbsrv.com
cdn-na.readspeaker.com
u3y8v8u4.aucdn.net
cdn77-pic.xnxx-cdn.com
lf77-gecko-source.tiktokcdn.com
cdn.consentmanager.net
pix-cdn77.trafficjunky.net
cdn77-vid.xnxx-cdn.com
imagecdn.sh
edge-hls.sacdnssedge.com
sf77-ies-music-sg.tiktokcdn.com
sf77-ies-music-va.tiktokcdn.com
cdn77-pic.xvideos-cdn.com
static-cdn77.xnxx-cdn.com
static-nss.xhcdn.com

There has also been an update relating to hostnames that result in Hezner block, a person on ntc.party found a new domain - Недоступность Hetzner - #485 by basososas - Russia - NTC

I confirmed that static.adtidy.org blocks Heztner for me as well.

1 Like