Bu rehber sansürlenen kullanıcıların Tor ağıyla bağlantı kurmasına yardımcı olmak için bir WebTunnel vekil sunucusunun nasıl kurulacağı hakkında bilgi verir.
WebTunnel, İnternet tarama etkinliklerini taklit etmeye çalışan HTTPT tabanlı bir değiştirilebilir taşıyıcıdır.
WebTunnel köprüsünü kurmak için gereksinimler şunlardır:
- Bir sabit IPv4 adresi (yeğlenir);
- TCP bağlantı noktaları için İnternet erişimi (araya NAT girmediğinden emin olun);
- Yapılandırılabilir bir site sunucusu (NGINX veya Apache gibi) ve kontrolünüz altındaki bir etki alanını içeren, kendinizin barındırdığı bir site;
- Geçerli bir TLS sertifikası.
Bir WebTunnel köprüsünün kurulması, bu değiştirilebilir taşıyıcı ile bir İnternet sunucusunun ve bir Tor köprüsünün yapılandırılmasını kapsar.
Bu rehberin ilk bölümünde İnternet sunucunuzu WebTunnel destekleyecek şekilde yapılandırmak için ayrıntılı yönergeler bulunur.
İkinci bölümde, WebTunnel köprüsünü çalıştırmak için iki yöntem arasından seçim yapacaksınız: Docker kullanmak ya da kaynak kodundan derlemek.
WebTunnel ya da obfs4 köprüsü işletme gereksinimlerini karşılamıyorsanız, Snowflake proxy işletmenin, kullanıcıların sansürü aşmasına yardımcı olmak için bant genişliğinizi bağışlamanın harika bir yolu olduğunu lütfen unutmayın.
İnternet sunucusu yapılandırması
1. adım. Etki alanınızı yapılandırın
Zaten bir site etki alanınız varsa, ana etki alanını kullanabilir veya bir alt etki alanı oluşturabilirsiniz.
Bu rehberde, WebTunnel köprüsü sitenizle aynı sunucuda barındırılıyor. Ancak onu farklı bir sunucuda da barındırabilirsiniz.
2. adım. Geçerli bir sertifika edinin
Sitenizde TLS sertifikası yoksa, Shell dilinde yazılmış bir ACME iletişim kuralı istemcisi olan acme.sh kullanarak bir tane edinebilirsiniz.
2.1. ACME kurun
my@example.com
yerine e-posta adresinizi yazın:
$ curl https://get.acme.sh | sh -s email=my@example.com
Ya da
$ wget -O - https://get.acme.sh | sh -s email=my@example.com
2.2. Bir sertifika yayınlayın
example.com
yerine sitenizin etki alanını yazın.
$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com
3. adım. NGINX kurun
Tek bir bağlantı noktasında diğer içeriklerle bir arada bulunması için NGINX gibi bir ters vekil sunucu yüklemelisiniz.
NGINX kurun:
$ sudo apt install nginx
4. adım. NGINX sunucusunu yapılandırın
4.1. Rastgele bir dizge oluşturun
İstemciler İnternet sunucunuza bağlandıklarında, gizli bir yol kullandıklarında WebTunnel vekil sunucunuza yönlendirilirler.
Şu komutu yürüterek rastgele bir dizge oluşturabilirsiniz:
$ echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)
4.2. Bir NGINX sunucusunu oluşturun ya da düzenleyin
Trafiği WebTunnel köprüsüne ileten /etc/nginx/sites-available/webtunnel-vhost
gibi yeni bir vhost dosyası oluşturun.
Tam bir WebTunnel örneğiyle NGINX sanal sunucusu.
Ya da var olan bir vhost kullanmak isterseniz, location {}
bloğunu düzenleyip ona eklemeniz yeterlidir.
$PATH
yerine rastgele bir dizge yazın.
# NGINX vhost bloğu örneği
location = /$PATH {
proxy_pass http://127.0.0.1:15000;
proxy_http_version 1.1;
### WebSocket üst bilgilerini ayarlayın ###
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
### Vekil sunucu üst bilgilerini ayarlayın ###
proxy_set_header Accept-Encoding "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
proxy_redirect off;
access_log off;
error_log /dev/null;
}
4.3. vhost yapılandırmasını deneyin ve NGINX sunucusunu yeniden yükleyin
sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5. adım. Tor WebTunnel köprünüzü yapılandırın
Tebrikler! site sunucunuzu Tor köprünüze vekil sunucu istekleri gönderecek şekilde yapılandırdınız.
Şimdi İnternet sunucusundan bu istekleri almak için köprünüzü kurmanız ve yapılandırmanız gerekir.
Lütfen bu rehberin ikinci bölümünü izleyin.
İki seçeneğiniz var: Kaynak dosyasından bir Go binary dosyası derleyebilirsiniz ya da Docker kullanabilirsiniz.