Aktarıcı işletmecileri

Tor aktarıcısı kurulumunun kolay ve rahat olmasını amaçlıyoruz:

  • Aktarıcının arada bir devre dışı kalması sorun olmaz. Dizindeki bilgisayarlar bu durumu hemen fark eder ve bu aktarıcıyı yayınlamayı bırakır. Bu durum aktarıcıyı kullanan bağlantıların kesilmesine yol açacağından, çok sık yaşanmamasına çalışın.
  • Her Tor aktarıcısının, üzerinden çıkan bağlantıları kabul ya da red etmesini belirleyen bir çıkış ilkesi vardır. İnsanların aktarıcınız üzerinden çıkış yapmasına izin vermek sizi rahatsız ediyorsa, çıkış bağlantılarını yalnızca başka Tor aktarıcılarına yapılacak şekilde ayarlayabilirsiniz.
  • Aktarıcınız geçmişte kullandığı bant genişliği kapasitesini pasif olarak öngörür ve yayınlar. Bu nedenle yüksek bant genişliği sunan aktarıcılara, düşük bant genişliği sunan aktarıcılara göre daha fazla kullanıcı bağlanır. Bu bakımdan, aktarıcınızın düşük bant genişliğine sahip olmasının da yararı olur.

Bir çıkış aktarıcısı hatalı yapılandırıldığında ya da kötü niyetli davranışlar sergilediğinde Kötü Çıkış (BadExit) olarak işaretlenir. Böylece Tor ağının bu aktarıcıdan çıkış yapması engellenir. Bu şekilde işaretlenmiş aktarıcılar yokmuş gibi davranılır. Aktarıcınız kötü çıkış olarak işaretlenmiş ise, aktarıcınızda trafik yöneltmesi sırasında bir sorun ya da şüpheli bir işlem algılanmış ve sizinle iletişim kurulamamış demektir. Lütfen sorunu çözebilmemiz için kötü aktarıcılar ekibi ile görüşün.

Adres dönüştürücü (NAT) ya da yöneltici (router) aygıtınız üzerinde bağlantı noktası yönlendirme işlemlerinin nasıl yapılacağı ile ilgili bilgi almak için portforward.com adresine bakabilirsiniz.

Aktarıcınız bir iç ağ üzerinde çalışıyorsa bağlantı noktası yönlendirmesi yapmanız gerekir. TCP bağlantılarının nasıl yönlendirileceği kullanılan sisteme göre değişir ancak güvenlik duvarı arkasındaki istemciler bölümünde bunun nasıl yapılacağı ile ilgili bazı örnekler bulabilirsiniz.

Ayrıca GNU/Linux üzerinde iptables kullanıyorsanız bu işlemin nasıl yapılacağı ile ilgili bir örneği burada görebilirsiniz:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT

Farklı bir dış ağ arabirimi (İnternet bağlantısı olan) kullanıyorsanız "eth0" yerine onu yazın. Bir tane olması gerekir (loopback hariç) o yüzden hangisi olduğunu bulmak zor olmamalı.

Aktarıcı yükü neden değişkendir

Tor tüm ağdaki bant genişliğini yönetir ve çoğu aktarıcı için bunu oldukça iyi yapar. Ancak Tor ağının amaçları BitTorrent gibi iletişim kurallarından farklıdır. Tor, genişleme payı olan hızlı bağlantılara gerek duyan düşük gecikmeli site sayfaları ister. BitTorrent ise tüm bant genişliğine gerek duyan toplu indirmeler ister.

Anlaması ve bakımı daha kolay olan yeni bir bant genişliği tarayıcı üzerinde çalışıyoruz. Bu tarayıcı çlçüm değerleri düşük olan ya da hiç olmayan aktarıcılar için tanılama yapacak.

Tor neden bant genişliğini tarayıcılarına gerek duyuyor?

Çoğu hizmet sağlayıcı size yerel bağlantınızın en yüksek hızını söyler. Ancak Tor ağında tüm dünya üzerinde kullanıcılar var ve kullanıcılarımız rastgele bir ya da iki tane koruma aktarıcısına bağlanıyor. Bu nedenle her aktarıcının dünya ile bağlantısının ne kadar iyi olduğunu bilmemiz gerekiyor.

Bu nedenle, tüm aktarıcı işletmecileri, duyurdukları bant genişliğini yerel bağlantı hızlarına ayarlasa bile, farklı İnternet bölümleri arasındaki yükü dengelemek için bant genişliği belirleyicilere gerek duyarız.

Normal aktarıcı yükü ne kadardır?

Çoğu aktarıcı için, kapasitelerinin %30-%80 kadar yük taşımaları normaldir. Bu değer istemciler için iyidir: Aşırı yük taşıyan bir aktarıcının gecikmesi yüksek olur. (Her bir aktarıcının yaklaşık %10 yük taşıyabileceği kadar çok sayıda aktarıcımız olmasını istiyoruz. Böylece Tor tüm İnternet kadar hızlı olabilir).

Bazı durumlarda bir aktarıcı, eski işlemcisi veya kısıtlı bağlantıları nedeniyle yavaştır. Başka durumlarda, ağın kendisi yavaş olabilir. Aktarıcının, diğer Tor aktarıcılarıyla bağlantısı kötüdür veya aktarıcılar birbirinden çok uzaktadır.

Bir aktarıcıyı neyin kısıtladığını bulmak

Bir aktarıcıyı birçok şey yavaşlatabilir. Sorunu nasıl bulacağınıza ilişkin ipuçları aşağıdadır.

Sistem kısıtlamaları

  • Aktarıcınızdaki bellek, işlemci ve soket/dosya belirteçlerinin kullanımına bakın

Tor başlatıldığında bu bilgilerin bazılarını günlüğüne kaydeder. Başka özellikler top ya da benzer araçlarla görülebilir.

Hizmet sağlayıcı kısıtlamaları

  • Aktarıcınızın hizmet sağlayıcısını, diğer aktarıcıların İnternet üzerindeki durumunu (bant genişliği, gecikme) ile karşılaştırın. Comcast aracılığıyla iletişim kuran aktarıcılar bazen yavaştır. Kuzey Amerika ve Batı Avrupa dışındaki aktarıcılar genellikle daha yavaştır.

Tor ağı kısıtlamaları

Aktarıcı bant genişliği, aktarıcının kendi gözlemlenen bant genişliğiyle ya da dizin belirleyicilerin ölçtüğü bant genişliğiyle kısıtlanabilir. Aktarıcınızı kısıtlayan ölçümün hangisi olduğunu bulmak için şunu deneyebilirsiniz:

  • Aktarıcınızın anlaşma sağlığı (büyük sayfa) değerinde aldığı her bir oyu inceleyin ve ortanca değerine bakın. Aktarıcınız bazı dizin belirleyicileri tarafından çalışıyor olarak işaretlenmemişse:
    • IPv4 veya IPv6 adresi hatalı olabilir mi?
    • IPv4 veya IPv6 adresine bazı ağlardan erişilemiyor olabilir mi?
    • IPv4 adresini kullanan ikiden fazla aktarıcı olabilir mi?

Bunun dışında, aktarıcınızın gözlemlenen bant genişliğini ve bant genişliği hızını (sınır) denetleyin. Metrics sayfasında aktarıcınıza bakın. Ardından farenizi gözlemlenen bant genişliği ve aktarıcı bant genişliği hızlarını görmek için bant genişliği başlığına getirin.

Ayrıntılı bilgi almak ve bazı örneklere bakmak için: Anlaşma ağırlığında azalma ve Çıkış aktarıcısı hızını arttırmak yazılarına bakabilirsiniz.

Nasıl düzeltilir

Bu sayıların en küçüğü, aktarıcıya atanmış olan bant genişliğini sınırlar.

  • Sorun bant genişliği hızı ise, torrc dosyanızdaki BandwidthRate/Burst ya da RelayBandwidthRate/Burst değerlerini arttırın.
  • Sorun gözlemlenen bant genişliği ise, aktarıcınız daha fazla hızlandığını görmedikçe daha fazla bant genişliği istemez. Neden yavaş olduğunu anlamaya çalışmanız gerekiyor.
  • Ortanca değeri ölçülen bant genişliği ise, aktarıcınız, bant genişliği belirleyicilerinin çoğu tarafından yavaş görülüyor demektir. Neden yavaş ölçtüklerini anlamaya çalışmanız gerekiyor.

Kendi aktarıcı ölçümlerinizi yapmak

Aktarıcınız yavaş olduğunu düşünüyorsa ya da bant genişliği belirleyicileri onun yavaş olduğunu düşünüyorsa, bant genişliğini kendiniz de sınayabilirsiniz:

  • Ağınızın Tor ile ne kadar hızlı olabileceğini görmek için bir sınama yapın

    Bunun için aktarıcınızı giriş olarak kullanacak bir Tor istemcisi yapılandırmanız gerekir. Aktarıcınızda yalnızca Guard işareti varsa, torrc içinde aktarıcı parmak izinizle EntryNodes değerini ayarlayın. Aktarıcınızda Guard işareti yoksa ya da Guard ve Exit işaretleri varsa, aktarıcınızı giriş düğümü olarak ayarlayamazsınız (https://gitlab.torproject.org/tpo/core/ tor/-/issues/22204 yazısına bakın). Ancak bir köprü olmasa bile onu köprünüz olarak ayarlayabilirsiniz. Aktarıcınızı köprü olarak ayarlamak için torrc dosyanıza şunu ekleyin:

    Bridge <ip>:<port>
    UseBridge 1
    

    Ardından SocksPort değeriyle Socks vekil sunucusu olarak kullanarak büyük bir dosya indirin. Bunun için curl kullanabilirsiniz. Örneğin:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Farklı kullanıcı adı/parola kullanılması farklı devreler kullanılmasını garanti eder. $RANDOM kullanabilirsiniz.

    Bu size aktarıcınızın ne kadar trafiği kaldırabileceği konusunda bir fikir verir.

    Alternatif olarak, aktarıcınızı 2 durak devresi kullanarak sınamak için sbws ile yapılana benzer şekilde relay_bw komutunu yürütebilirsiniz.

  • Tor uygulamasının işlemciniz ile ne kadar hızlı olabileceğini görmek için Tor ve chutney kullanarak bir sınama yapın. Bant genişliğinin artması durana kadar veri boyutunu artırmayı sürdürün.

torrc dosyasına iki seçenek eklenebilir:

BandwidthRate bant genişliği hızı uzun dönemde izin verilen en fazla bant genişliğidir (saniyede bayt). Örneğin, saniyede 10 megabayt için "BandwidthRate 10 MBytes" (hızlı bağlantı) ya da saniyede 500 kilobayt için "BandwidthRate 500 KBytes" (sınırlı kablo bağlantısı) olarak seçebilirsiniz. En düşük bant genişliği hızı saniyede 75 kilobayttır.

BandwidthBurst bant genişliği sıçraması isteklerin yerine getirilmesi amacıyla kısa süreler için BandwidthRate değerinin, uzun dönemde BandwidthRate ortalama değerinde kalacak şekilde aşılabileceği bir depo oluşturur. Düşük hız yüksek sıçrama ayarı, uzun dönemde belirli bir ortalamanın altında kalınmış ise anlık sıçramaların karşılanmasını sağlar. Örneğin "BandwidthBurst 500 KBytes" seçip BandwidthRate ayarını da yaparsanız, hiç bir zaman saniyede 500 kilobayt üzerine çıkamazsınız. Ancak daha yüksek bir bant genişliği sıçraması değeri seçerseniz (5 MB gibi) depo boşalana kadar daha yüksek bant genişliği kullanabilirsiniz.

Bağlantınız bir kablo ya da ADSL modemdeki gibi asimetrik ise (yükleme hızı indirme hızından düşük ise) BandwidthRate değerini küçük olan bant genişliği değerine göre ayarlayın (genellikle yükleme hızı daha küçüktür). Yoksa en yüksek bant genişliği kullanımı süresince pek çok veri paketiniz kaybolur. Size uygun değerleri bulmak için bir kaç deneme yapmanız gerekebilir. Ardından BandwidthBurst değerini BandwidthRate değeri ile aynı olacak şekilde ayarlayın.

Linux temelli Tor noktalarında kullanılabilecek başka bir seçenek vardır. Tor trafiğinin bilgisayardan geçen diğer trafiğe göre önceliği ayarlanabilir. Böylece işletmecinin kişisel trafiği Tor yükünden etkilenmez. Tor kaynak dağıtımındaki contrib klasörü altında bunu sağlayacak bir betik bulabilirsiniz.

Ek olarak Tor uygulamasını belirli bir zaman aralığında belirli bir bant genişliği (aylık 100 GB gibi) sunacak şekilde uyku seçenekleri de bulunur. Bu konu hakkında ayrıntılı bilgi almak için uyku bölümüne bakabilirsiniz.

BandwidthRate ve BandwidthBurst değerlerinin Bayt olduğunu Bit olmadığını unutmayın.

Basit olarak çalışması şöyle anlatılabilir:

  • "ed25519_master_id_secret_key" olarak adlandırılmış bir kişisel birincil ed25519 kimlik doğrulama anahtarı vardır. Bu en önemlisidir. O yüzden güvenli bir yere yedeğini aldığınızdan emin olun. Bu dosyanın başkalarının eline geçmemesi önemlidir ve korunması gerekir. Anahtarı el ile üretip, sorulduğunda bir parola yazarsanız Tor bu dosyayı sizin için şifreleyebilir.
  • Tor tarafından kullanılması için "ed25519_signing_secret_key" orta vadeli imzalama anahtarı üretilir. Ayrıca kişisel birincil kimlik doğrulama anahtarı tarafından imzalanmış "ed25519_signing_cert" adında bir sertifika üretilir ve orta vadeli imzalama anahtarının belirli bir süre için geçerli olması sağlanır. Varsayılan geçerlilik süresi 30 gündür. Bu süre torrc dosyasındaki "SigningKeyLifetime N days|weeks|months" ayarı kullanılarak değiştirilebilir.
  • Ayrıca aktarıcının ağa yayınlanan gerçek kimliği olan "ed25519_master_id_public_key" adında bir herkese açık birincil kimlik doğrulama anahtarı vardır. Bu anahtarın başkalarının eline geçmesi önemli değildir ve "ed5519_master_id_secret_key" anahtarından kolayca hesaplanabilir.

Geçerli oldukları sürece, Tor tarafından yalnızca orta vadeli imzalama anahtarına ve sertifikaya erişilmesi gereklidir. Bu nedenle kişisel birincil kimlik doğrulama anahtarı DataDirectory/keys klasörü dışına alınarak başka bir bilgisayarın depolama alanında ya da bilgisayarda tutulabilir. Orta vadeli imzalama anahtarını ve sertifikayı süresi dolmadan önce el ile yenilemeniz gerekir. Yoksa süre dolduktan sonra aktarıcı üzerindeki Tor işleminden çıkılır.

Bu özellik isteğe bağlıdır. Kullanmak istemiyorsanız kullanmayabilirsiniz. Orta vadeli imzalama anahtarı yenileme işlemini düzenli olarak el ile yapmak yerine aktarıcınızın dokunulmadan daha uzun süre çalışmasını istiyorsanız, kişisel birincil kimlik doğrulama anahtarını DataDirectory/keys klasöründe bırakabilirsiniz. Yalnızca yeniden kurabilmek için anahtarın bir yedeğini almayı unutmayın. Bu özelliği kullanmak isterseniz, bu konudaki ayrıntılı rehber bölümüne bakabilirsiniz.

Aktarıcınız nispeten yeni ise biraz zaman tanıyın. Tor hangi aktarıcıların kullanılacağına Bant Genişliği yetkililerinden gelen haftalık raporlara göre karar verir. Bu yetkililer aktarıcınızın kapasitesini ölçer ve zaman içinde uygun yüke ulaşana kadar daha fazla trafik yönlendirmeyi sürdürür. Yeni bir aktarıcının yaşam döngüsü hakkında ayrıntılı bilig almak için bu günlük yazısına bakabilirsiniz. Aktarıcınız bir süredir çalıştığı halde hala sorun yaşıyorsanız, durumu tor aktarıcıları listesi posta grubuna yazmayı deneyin.

  • Güvenilir şekilde güncellenmediğinden Ubuntu depolarındaki paketleri kullanmayın. Ubuntu depolarındaki paketleri kullanırsanız önemli kararlılık ve güncelleme düzeltmeleri eksik kalır.
  • Şu komutu yürüterek kullandığınız Ubuntu sürümünü belirleyin:
     ‪$ lsb_release -c
    
  • /etc/apt/sources.list dosyasına root olarak şu satırları ekleyin. 'version' yerine bir önceki adımda öğrendiğiniz sürümü yazın:
     deb https://deb.torproject.org/torproject.org version main
     deb-src https://deb.torproject.org/torproject.org version main
    
  • Şu komutları yürüterek paketleri imzalamak için kullanılan gpg anahtarını ekleyin:
     ‪$ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • Tor uygulamasını kurmak ve imzalarını denetlemek için şu komutları yürütün:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

Arama sırasında, aşırı yüklenmiş aktarıcıların takma adının yanında sarı bir nokta görüntülenir. Bunun anlamı, aşağıdaki yük ölçümlerinden birinin veya birkaçının tetiklendiğidir:

Bir aktarıcı aşırı yüklendiğinde, bu simgeyi aktarıcının düzelmesinden sonraki 72 saat boyunca göstermeyi sürdürdüğümüzü unutmayın.

Aktarıcınızın aşırı yüklendiğini fark ederseniz lütfen:

  1. Bilinen sorunlar için https://status.torproject.org/ adresindeki "Tor network" kategorisine bakın.

  2. Ağ, bellek ve işlemci yükü için sisteminizin sysctl ayarını değiştirmeyi değerlendirin.

  3. Neler olduğunu anlamak için MetricsPort seçeneğini etkinleştirmeyi değerlendirin.

Ağ, bellek ve işlemci yükü için sysctl ayarını yapmak

TCP bağlantı noktalarının tükenmesi

TCP bağlantı noktaları tükeniyorsa, yerel bağlantı noktası aralığınızı genişletmeyi değerlendirin. Bu işlemi şu komut ile yapabilirsiniz

# sysctl -w net.ipv4.ip_local_port_range="15000 64000"

ya da

# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range

Açıklanan sysctl ayarlarının kalıcı olmayacağını ve yeniden başlatma sonrasında kaybolacağını unutmayın. Yapılandırmayı kalıcı kılmak için /etc/sysctl.conf ya da /etc/sysctl.d/ dosyasına kaydetmeniz gerekir.

MetricsPort

Tor aktarıcılarının ve Tor ağının ne durumda olduğunu anlamak için aktarıcı ölçümlerini sunmak ve bunlara erişim sağlamak yaşamsal önemdedir. 0.4.6+ sürümünden başlayarak aktarıcı tanımlayıcılarına aktarıcı aşırı yük bilgisi eklendi. Ancak Tor >= 0.4.7.1-alfa sürümüne kadar, temel aktarıcı ölçümlerine yönelik bir arabirim yoktu: Ölçüm bağlantı noktası.

MetricsPort özelliğini etkinleştirmek

Tor, MetricsPort adlı bir torrc yapılandırma seçeneği ile ölçüm bağlantı noktasına erişim sağlar.

tor MetricsPort özelliğini herkese açık olarak sunmanın Tor ağı kullanıcıları için tehlikeli olduğunun anlaşılması önemlidir. Bu nedenle bu bağlantı noktası varsayılan olarak etkin değildir ve bir erişim ilkesi kullanılarak erişilmelidir. Lütfen bu bağlantı noktasını açarken ek önlem ve özen gösterin ve hata ayıklama işlemini bitirdiğinizde kapatın.

Tor aktarıcısı işleten bir sunucuda tek kullanıcı olduğunuzu varsayalım. Ölçüm bağlantı noktasını etkinleştirmek için torrc dosyasına şunu ekleyin:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

Ardından, ölçümleri şu şekilde kolayca alabilirsiniz:

# curl http://127.0.0.1:9035/metrics

veriler varsayılan olarak Prometheus biçimindedir.

Not: Bu sunucudaki her kullanıcı, yukarıdaki örnekte verilen aktarıcı ölçümlerine erişebilir. Genel olarak MetricsPortPolicy için çok katı bir erişim ilkesi belirleyin ve derinlemesine savunma için işletim sisteminizin güvenlik duvarı özelliklerini de kullanmayı değerlendirin.

MetricsPort ve MetricsPortPolicy hakkında ayrıntılı bilgi almak için tor rehberi sayfasına bakabilirsiniz.

MetricsPort çıktısı

MetricsPort seçeneğini etkinleştiren çıktının üreteceği örneği burada görebilirsiniz (bu arayüzü hala geliştirmemiz gerektiğinden, tıkanıklık denetimi ile ilgili ölçümleri atladık):

# HELP tor_relay_connections Total number of opened connections
# TYPE tor_relay_connections gauge
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv6"} 0
# HELP tor_relay_connections_total Total number of created/rejected connections
# TYPE tor_relay_connections_total counter
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv6"} 0
# HELP tor_relay_flag Relay flags from consensus
# TYPE tor_relay_flag gauge
tor_relay_flag{type="Fast"} 0
tor_relay_flag{type="Exit"} 0
tor_relay_flag{type="Authority"} 0
tor_relay_flag{type="Stable"} 0
tor_relay_flag{type="HSDir"} 0
tor_relay_flag{type="Running"} 0
tor_relay_flag{type="V2Dir"} 0
tor_relay_flag{type="Sybil"} 0
tor_relay_flag{type="Guard"} 0
# HELP tor_relay_circuits_total Total number of circuits
# TYPE tor_relay_circuits_total gauge
tor_relay_circuits_total{state="opened"} 0
# HELP tor_relay_streams_total Total number of streams
# TYPE tor_relay_streams_total counter
tor_relay_streams_total{type="BEGIN"} 0
tor_relay_streams_total{type="BEGIN_DIR"} 0
tor_relay_streams_total{type="RESOLVE"} 0
# HELP tor_relay_traffic_bytes Traffic related counters
# TYPE tor_relay_traffic_bytes counter
tor_relay_traffic_bytes{direction="read"} 0
tor_relay_traffic_bytes{direction="written"} 0
# HELP tor_relay_dos_total Denial of Service defenses related counters
# TYPE tor_relay_dos_total counter
tor_relay_dos_total{type="circuit_rejected"} 0
tor_relay_dos_total{type="circuit_killed_max_cell"} 0
tor_relay_dos_total{type="circuit_killed_max_cell_outq"} 0
tor_relay_dos_total{type="marked_address"} 0
tor_relay_dos_total{type="marked_address_maxq"} 0
tor_relay_dos_total{type="conn_rejected"} 0
tor_relay_dos_total{type="concurrent_conn_rejected"} 0
tor_relay_dos_total{type="single_hop_refused"} 0
tor_relay_dos_total{type="introduce2_rejected"} 0
# HELP tor_relay_load_onionskins_total Total number of onionskins handled
# TYPE tor_relay_load_onionskins_total counter
tor_relay_load_onionskins_total{type="tap",action="processed"} 0
tor_relay_load_onionskins_total{type="tap",action="dropped"} 0
tor_relay_load_onionskins_total{type="fast",action="processed"} 0
tor_relay_load_onionskins_total{type="fast",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="dropped"} 0
# HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this relay
# TYPE tor_relay_exit_dns_query_total counter
tor_relay_exit_dns_query_total 0
# HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered by this relay
# TYPE tor_relay_exit_dns_error_total counter
tor_relay_exit_dns_error_total{reason="success"} 0
tor_relay_exit_dns_error_total{reason="format"} 0
tor_relay_exit_dns_error_total{reason="serverfailed"} 0
tor_relay_exit_dns_error_total{reason="notexist"} 0
tor_relay_exit_dns_error_total{reason="notimpl"} 0
tor_relay_exit_dns_error_total{reason="refused"} 0
tor_relay_exit_dns_error_total{reason="truncated"} 0
tor_relay_exit_dns_error_total{reason="unknown"} 0
tor_relay_exit_dns_error_total{reason="tor_timeout"} 0
tor_relay_exit_dns_error_total{reason="shutdown"} 0
tor_relay_exit_dns_error_total{reason="cancel"} 0
tor_relay_exit_dns_error_total{reason="nodata"} 0
# HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed by subsystem
# TYPE tor_relay_load_oom_bytes_total counter
tor_relay_load_oom_bytes_total{subsys="cell"} 0
tor_relay_load_oom_bytes_total{subsys="dns"} 0
tor_relay_load_oom_bytes_total{subsys="geoip"} 0
tor_relay_load_oom_bytes_total{subsys="hsdir"} 0
# HELP tor_relay_load_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 0
tor_relay_load_socket_total 0
# HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of TCP ports
# TYPE tor_relay_load_tcp_exhaustion_total counter
tor_relay_load_tcp_exhaustion_total 0
# HELP tor_relay_load_global_rate_limit_reached_total Total number of global connection bucket limit reached
# TYPE tor_relay_load_global_rate_limit_reached_total counter
tor_relay_load_global_rate_limit_reached_total{side="read"} 0
tor_relay_load_global_rate_limit_reached_total{side="write"} 0

Bu satırlardan bazılarının gerçekte ne anlama geldiğini öğrenelim:

tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0

Bir aktarıcı "dropped" olarak görülmeye başlandığında, genellikle bir işlemci/bellek sorunu vardır.

Tor, ne yazık ki, "onion skins" işlenmesi dışında tek işlemlidir. "Onion skins", her devrede ünlü "onion katmanları" üzerinde yapılması gereken şifreleme çalışmalarıdır.

Tor katmanları işlerken bir işlem havuzu kullanır ve tüm bu işlemler o havuza dış kaynak olarak sağlanır. Bu havuz, bellek veya işlemcinin yükünün artması nedeniyle çalışmakta zorlanabilir ve bir aşırı yüklenme durumunu tetikler.

Sunucunuzun yükü kapasitesine yakınsa, büyük olasılıkla bu durum tetiklenir.

tor_relay_exit_dns_error_total{...}

"*_dns_error_total" alanındaki herhangi bir sayaç değeri (başarılı sorgular için olan dışında), DNS ile ilgili olası bir sorunu gösterir. Bununla birlikte, 0.4.7 yayın sürecinde DNS hatalarının çok gürültü kopardığını ve aşırı yük bildirimi amaçları için yararlı olamayacak kadar çok sayıda hatalı doğru sonuç verdiğini fark ettik. Bu nedenle, onları artık 0.4.6.9 ve 0.4.7.4-alfa sürümleri ile birlikte bu amaç için kullanmıyoruz. Gene de aktarıcı işletmecilerine aktarıcılarında olup bitenler hakkında fikir vermek için DNS ölçümlerini tutmayı sürdürüyoruz.

DNS zaman aşımı sorunları ve hataları yalnızca çıkış noktaları için geçerlidir.

tor_relay_load_oom_bytes_total{...}

Bellek yetersiz iletisi, bir RAM bellek sorununu gösterir. Aktarcı daha fazla belleğe gerek duyuyor olabilir veya bellek sızıntısı vardır. Tor işleminin bellek sızdırdığını fark ederseniz, lütfen sorunu Tor GitLab üzerinden bildirin veya tor-relays e-posta listesine bir e-posta gönderin.

Tor kendi bellek tükendi işleyicisini kullanır ve tor tarafından uygun olduğunu düşünülen toplam belleğin %75 kadarı kullanıldığında çağrılır. Böylece örneğin, tor toplamda 2GB uygun bellek olduğunu düşünüyorsa ve 1.5GB kullanıyorsa belleği boşaltmaya başlar. Bu bir aşırı yüklenme durumu olarak kabul edilir.

Tor kullanılabilir bellek miktarını öngörmek için başlatıldığında MaxMemInQueues seçeneğine ya da bu ayarlanmamışsa sistemde var olan toplam RAM bellek miktarına bakarak bu algoritmayı uygular:

    if RAM >= 8GB {
      memory = RAM * 40%
    } else {
      memory = RAM * 75%
    }
    /* Capped. */
    memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)
    /* Minimum value. */
    memory = max(250MB, memory)

Aşırı yüklenmeden kaçınmak için, 64bit ve RAM belleği 2GB üzerinde olan bir aktarıcı işletmeniz önerilir. 4GB önerilir, ancak olabiliyorsa daha fazla RAM eklemenin zararı olmaz. Not: Çok fazla RAM belleği olan güçlü bir sunucu işletiyorsanız, kullanılmayan çok fazla RAM belleğiniz olsa bile varsayılan 8 GB kuyruk boyutu sınırı nedeniyle aşırı yüklenme olabilir. Bu durumda torrc yapılandırmanıza uygun bir MaxMemInQueues kaydı ekleyin.

İşletim sistemi bellek tükendi işleyicisinin tor uygulamasını çağırdığını fark edebilirsiniz. Tor, başlatıldığında sistemdeki tüm belleği aldığından, sistem üzerinde RAM belleğini kullanarak çalışan başka uygulamalar varsa, çok fazla bellek kullanılır. Bu durumda işletim sistemi, tor bellek tükenmesini algılayamadan belleği tüketebilir.

tor_relay_load_socket_total

Açılan soket sayısı, kullanılabilecek toplam soket sayısına yakın ya da aynıysa, aktarıcının soketlerinin tükendiği anlaşılır. Çözüm, tor işlemi için ulimit -n değerini artırmaktır.

tor_relay_load_tcp_exhaustion_total

Bu satırlar, aktarıcı TCP bağlantı noktalarının tükendiğini gösterir.

sysctl ayarını yukarıda anlatıldığı gibi yapmayı deneyin.

tor_relay_load_global_rate_limit_reached_total

Bu sayaç kısa bir süre içinde fark edilir bir değer kadar artarsa, aktarıcının tıkanmış olduğunu gösterir. Büyük bir onion hizmeti tarafından Koruma aktarıcısı olarak veya ağda sürmekte olan bir DDoS için kullanılıyor olabilir.

Aktarıcınız hala aşırı yüklenmişse ve nedenini bilmiyorsanız, lütfen network-report@torproject.org adresine yazın. E-postanızı şifrelemek için network-report OpenPGP anahtarını kullanabilirsiniz.

Harika. Ağa destek olmak için birkaç aktarıcı işletmek istiyorsanız buna çok seviniriz. Ancak Tor ağının amacının bir parçası da dağınıklık ve çeşitlilik olduğundan, lütfen aynı ağ üzerinde bir kaç düzineden fazla aktarıcı işletmeyin.

Birden fazla aktarıcı işletmeye karar verirseniz, lütfen aktarıcıların sizin denetiminiz altında olduğunu belirtmek için her aktarıcı üzerindeki torrc dosyasında "MyFamily" yapılandırma seçeneğini tüm aktarıcılar bulunacak şekilde (virgül ile ayırarak) ayarlayın:

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

parmak izi aktarıcının 40 karakter uzunluğundaki tanımlayıcı parmak izi bilgisidir (boşluk olmadan).

Böylece Tor istemcileri, aktarıcılarınızın birden fazlasını tek bir devrede kullanmaktan kaçınması gerektiğini bilir. MyFamily seçeneğini, aynı coğrafi konumda bulunmasalar bile, bilgisayarlar ve bulundukları ağ üzerinde yönetim yetkileriniz varsa ayarlamalısınız.

Tor IPv6 desteği sınırlıdır. IPv6 bağlantısı kullanabilen her aktarıcı işletmecisinin torrc yapılandırma dosyasını güncelleyerek IPv6 özelliğini etkinleştirmesini teşvik ediyoruz. Tor aktarıcıları için IPv4 adreslerinin kullanılması zorunlu olduğundan, yalnızca IPv6 adresleri kullanan bir bilgisayar üzerinde bir Tor aktarıcısı işletemezsiniz.

Evet, bazı saldırılara karşı daha iyi anonimlik elde edersiniz.

En basit örnek az sayıda Tor aktarıcısına sahip bir saldırgan olabilir. Sizden bir bağlantı geldiğini görebilirler ancak bağlantının sizin bilgisayarınızdan mı geldiğini yoksa başka birinden mi aktarıldığını bilemezler.

Bu uygulama bazı durumlarda işe yaramıyormuş gibi görünebilir. Bir saldırgan tüm giren ve çıkan trafiğinizi izleyebiliyorsa, hangi bağlantıların sizden kaynaklandığını hangilerinin aktarıldığını kolayca öğrenebilir. (Bu durumda bile, hedeflerinizi de izlemedikleri sürece bağlantılarınızın hedeflerini bilemezler. Ancak sıradan bir istemci uygulaması kullanıyor olsaydınız da durum bundan daha iyi olmayacaktı).

Bir Tor aktarıcısı işletmenin bazı olumsuz yönleri de vardır. Birincisi, yalnızca bir kaç yüz aktarıcımız olduğundan, bir aktarıcı çalıştırdığınızda bir saldırgana anonimliğe önem verdiğinizi göstermiş olursunuz. İkincisi, bir aktarıcı işlettiğiniz bilgisini kullanarak, tam anlaşılmamış ya da yeterince denenmemiş bazı gizli saldırılar var. -- örneğin, bir saldırgan ağınızı izleyemiyor bile olsa, Tor aktarıcınız üzerinden bir trafik geçirerek ve trafik zamanlamasındaki değişikliklere bakarak trafik gönderip göndermediğinizi "gözlemleyebilir".

Yararların risklerden ağır basıp basmadığı yanıtlanmamış bir araştırma sorusudur. Endişelendiğiniz saldırılara bağlı pek çok faktör vardır. Çoğu kullanıcı için bunun akıllıca olacağını düşünüyoruz.

Tor, bilgisayara adını sorar ve bu adı çözümleyerek IP adresini öngörür. Bilgisayarların /etc/hosts dosyasında sıklıkla eski IP adreslerini gösteren eski kayıtlar kalmış olur.

Sorun bu şekilde çözülmez ise, seçilmesini istediğiniz IP adresini belirtmek için "Adres" yapılandırma seçeneğini kullanmalısınız. Bilgisayarınız bir NAT yönelticisi arkasında bulunuyorsa ve yalnızca bir iç IP adresine sahipse, dinamik IP adreslerinin kullanılması hakkında aşağıdaki Destek kaydına bakın.

Ayrıca, birden çok IP adresi kullanılıyorsa, "OutboundBindAddress" değerini de ayarlamak isteyebilirsiniz. Böylece dış bağlantılar dünyaya yayınlamak istediğiniz IP adresinden gelir.

torrc dosyasında Accounting hesaplama seçeneğini kullanarak belirli bir zaman aralığında aktarıcınız üzerinden geçebilecek en fazla bayt miktarını belirleyebilirsiniz.

    AccountingStart day week month [day] HH:MM

Bu ayar hesaplamanın ne zaman sıfırlanacağını belirler. Örneğin bir hafta boyunca sunulacak bayt değerini belirmek için (her Çarşamba sabah saat 10:00 da sıfırlanacak) şu şekilde yazabilirsiniz:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

Bu ayar, aktarıcınızın bir hesaplama döneminde gönderebileceği ve alabileceği en fazla trafik miktarını belirler. Hesaplama dönemi sıfırlandığında (AccountingStart ayarı ile) AccountingMax sayaçları da sıfırlanır.

Örnek: Her gün, her yöne 50 GB trafiğe izin vermek ve hesaplamanın her gün öğlen sıfırlanmasını istiyorsunuz diyelim:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

Aktarıcınızın tam olarak her hesaplama döneminin başlangıcında uyanmayacağını unutmayın. Aktarıcı, önceki dönemde kotasını ne hızla kullandığına bakar ve buna göre yeni dönemde uyanmak için rastgele bir an seçer. Böylece yüzlerce aktarıcının her ay başında çalışmaya başlayıp ayın sonu gelmeden kapanmasının önüne geçilir.

Bağlantı hızınızın yalnızca küçük bir bölümünü aktarıcı için ayırmak istiyorsanız günlük hesaplama yöntemini seçmeniz önerilir. Böylece aylık ayırdığınız kotanın ilk günden bitmesi engellenebilir. Aylık kotanızı 30 ile bölmeniz yeterlidir. Ayrıca gün boyunca kullanım sağlayabilmek için hız sınırlaması koymayı da düşünün. Her yöne X GB sunmak istiyorsanız, RelayBandwidthRate değerini 20* X KBytes olarak ayarlamalısınız. Örneğin her yöne 50 GB sunmak istiyosanız, RelayBandwidthRate değerini 1000 KBytes olarak ayarlamalısınız. Böylece aktarıcınız günün en az yarısı boyunca kullanılabilir.

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # daha yüksek sıçramalara izin verir ancak ortalama değeri korur

  • En fazla çıkış türündeki aktarıcılara gerek duyuluyor. Ancak bu aktarıcıların yasal olarak bulunma ve kovuşturmaya uğrama olasılığı daha yüksektir (ve bir çıkış aktarıcısı evinizden işletmemelisiniz).
  • En az çaba ile bir aktarıcı işletmek istiyorsanız, hızlı koruma aktarıcıları da çok kullanışlıdır
  • İkinci sırada köprü aktarıcıları bulunur.

Tüm çıkış bağlantılarına izin verilmelidir. Böylece her aktarıcı diğer aktarıcıların tümü ile iletişim kurabilir.

Birçok yargı alanında, Tor aktarıcı işletmecileri, İnternet hizmeti sağlayıcılarının ağlarından geçen üçüncü taraf içeriğinden sorumlu tutulmalarını önleyen ortak taşıyıcı düzenlemeleri ile yasal olarak korunmaktadır. Bazı trafikleri süzen çıkış aktarıcıları bu kapsam dışında kalabilir.

Tor, herhangi bir engelleme olmadan özgür ağ erişimini hedefler. Çıkış aktarıcılarının, geçirip İnternet üzerine çıkardıkları trafiği süzmemesi gerekir. Trafiği süzdüğü anlaşılan çıkış aktarıcıları Kötü Çıkış (BadExit) aktarıcısı olarak işaretlenir.

Haklısınız. şu istisnalar dışında çoğunlukla Tor aktarıcınıza giren ve çıkan bayt miktarı aynıdır:

DirPort açık ise bağlanan Tor istemcileri aktarıcınızdan dizinin bir kopyasını alır. İstemcilerin yapacağı istek (bir HTTP GET) oldukça küçük olmasına rağmen bazen verilen yanıt oldukça büyüktür. Büyük olasılıkla "giden" bayt sayınız ile "gelen" bayt sayınız arasındaki farkın çoğu bu nedenle ortaya çıkar.

Başka bir küçük istisna bir çıkış noktası işlettiğinizde ortaya çıkar. Bir çıkış bağlantısından kaç baytlık bir bilgi aldığınızda (bir anlık ileti ya da ssh bağlantısı gibi), bu bilginin Tor ağına aktarılması için 512 bayt büyüklüğünde bir hücre kullanılır.

En az 10 Mbit/s (Mbps) kullanılabilir bant genişliği hızına sahip, oldukça güvenilir İnternet bağlantısı olan kişiler arıyoruz. Bağlantınız bu özellikleri sağlıyorsa, lütfen bir Tor aktarıcısı işletmeyi düşünün.

Bağlantı hızınız 10 Mbit/s değerinin altında olsa bile obfs4 desteği olan bir Tor köprüsü işleterek Tor ağına yardımcı olabilirsiniz. Bu durumda bant genişilği hızınızın en az 1 MBit/s olması gerekir.

Harika. İşte tam da bu yüzden çıkış ilkeleri belirledik.

Her Tor aktarıcısında hangi çıkış bağlantısına izin verildiğini ya da reddedildiğini belirleyen bir çıkış ilkesi bulunur. Çıkış ilkeleri dizindeki Tor istemcileri arasında yayılır. Böylece istemcilerin ulaşmak istedikleri hedefleri reddeden aktarıcılara bağlanmaları otomatik olarak engellenir. Böylece her aktarıcı işletmecisi kötüye kullanma olasılığına ve kendi isteğine göre bağlantı izni vermek istediği hizmetleri, sunucuları ve ağları belirleyebilir. Varsayılan çıkış ilkesini kullanıyorsanız karşılaşabileceğiniz sorunlar ile ilgili destek yazısını ve Mike Perry'nin bir çıkış noktasını en az rahatsızlık verecek şekilde işletme ipuçları yazısını okuyun.

Varsayılan çıkış ilkesi sık kullanılan pek çok hizmete erişilmesine izin verir (İnternet üzerinde gezinme gibi) ancak bazı hizmetleri kötüye kullanılma olasılığı olduğundan (e-posta gibi), bazı hizmetleri de Tor ağı yükü işleyemediğinden (varsayılan dosya paylaşımı bağlantı noktaları gibi) kısıtlar. Çıkış ilkesini torrc dosyasını düzenleyerek değiştirebilirsiniz. Kötüye kullanma olasılıklarının tümünden olmasa da önemli bölümünden kaçınmak için "reject *:*". olarak ayarlayın. Bu ayar, aktarıcınızın iletilen trafiği Tor ağına iletmesi için kullanılacağı ancak Tor ağı dışındaki sitelere ve diğer hizmetlere erişilemeyeceği anlamına gelir.

Herhangi bir çıkış bağlantısına izin verirseniz, ad çözümleme hizmetinin çalıştığından (bilgisayarınızın İnternet adreslerini doğru olarak çözümlediğinden) emin olun. Bilgisayarın erişemediği herhangi bir kaynak varsa (kısıtlayıcı bir güvenlik duvarı ya da içerik süzgecinin arkasında ise), lütfen bunları çıkış ilkesinde açıkça reddedin yoksa Tor kullanıcıları olumsuz etkilenir.

Tor aktarıcınızı yükseltirken ya da farklı bir bilgisayara taşırken aynı kimlik anahtarlarını koruduğunuzdan emin olun (DataDirectory içindeki keys/ed25519_master_id_secret_key vekeys/secret_id_key dosyalarında bulunur).

Bir köprü işletmecisiyseniz pt_state/ değerini tuttuğunuzdan da emin olun. Köprünüzün aynı köprü satırıyla çalışmayı sürdürebilmesi için gerekli verileri içerir.

Basit olması açısından, DataDirectory klasörünü tümüyle kopyalamak da işe yarar.

Bu kimlik anahtarlarının ve bir köprü için pt_state verilerinin yedeklerini tutmak isteyebilirsiniz. Böylece bir sorun çıkarsa aktarıcıyı geri yükleyebilirsiniz.

Hayır. Kolluk kuvvetleri çıkış aktarıcınızdan geçen trafik ile ilgilenirse bilgisayarınıza el konulabilir. Bu nedenle evinizin içinde ya da evinizin İnternet bağlantısını kullanan bir çıkış aktarıcısı işletmemeniz daha doğru olur.

Bunun yerine çıkış aktarıcınızı Tor destekleyen bir ticari kuruluş içinde işletmeyi düşünün. Çıkış aktarıcınız için ayrı bir IP adresi alın ve kendi bağlantı trafiğinizi onun üzerinden geçirmeyin. Söylemeye gerek yok ama çıkış aktarıcısını işlettiğiniz bilgisayar üzerinde özel, önemli ya da kişisel herhangi bir bilgi bulundurmayın.

Özellikle Debian ya da Ubuntu kullanıyorsanız, güncellemeleri kolayca alabilmek için Tor Project deposu kullanın. Ayrıca paketin kullanılması başka kolaylıklar da sağlar:

  • ulimit -n değeriniz yüksek bir sayıya ayarlanır. Böylece Tor gerek duyduğu tüm bağlantıları açık tutabilir.
  • Paket ayrı bir kullanıcı oluşturur ve kullanır. Böylece Tor uygulamasını kendi kullanıcınızla çalıştırmanız gerekmez.
  • Paket içinde, Tor uygulamasının başlangıçta çalışabilmesi için bir başlatma betiği bulunur.
  • Tor, düşük numaralı bağlantı noktalarına bağlanabilir ve ardından yetkileri bırakabilir.

Çıkış bağlantılarına izin veriyorsanız, kişilerin aktarıcınız üzerinden bağlandığı bazı hizmetler sizinle ilgili daha fazla bilgi toplamak için geriye bazı bağlantılar kurar. Örneğin, bazı IRC sunucuları hangi kullanıcının bağlantıyı yaptığını kaydetmek için identd bağlantı noktası ile bağlantı kurar (aslında bu onların işine yaramaz, çünkü Tor bu bilgiyi bilmez ancak yine de denerler). Ayrıca, aktarıcınız üzerinden çıkan kullanıcılar, IRC sunucusu, site gibi kaynaklar üzerindeki kendilerine bağlı aktarıcı sunucusu hakkında ayrıntılı bilgi almak isteyen diğer kullanıcıların dikkatini çekebilir.

Diğer bir neden ise, İnternet üzerinde bulunan açık vekil sunucuları tarayan grupların, bazen Tor aktarıcılarının Socks bağlantı noktalarını dünyaya yayınladığını öğrenmiş olmalarıdır. Socks bağlantı noktalarını yalnızca yerel ağlara bağlanacak şekilde yapılandırmanız önerilir.

Her durumda, güvenliğinizi güncel tutmanız gerekir. Ayrıntılı bilgi almak için Tor aktarıcılarının güvenliği makalesine bakabilirsiniz.

Varsayılan açık bağlantı noktaları aşağıda listelenmiştir. Ancak aktarıcı işletmecisi tarafından torrc dosyasında yapılandırılarak veya kaynak kodu değiştirilerek herhangi bir bağlantı noktasının açılabileceğini unutmayın. Kaynak kodu sürüm-0.4.6 için src/or/policies.c dosyasının (satır 85 ve satır 1901) varsayılanları:

reject 0.0.0.0/8
reject 169.254.0.0/16
reject 127.0.0.0/8
reject 192.168.0.0/16
reject 10.0.0.0/8
reject 172.16.0.0/12

reject *:25
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept *:*

BridgeDB köprüleri dağıtmak için altı yöntem kullanır: HTTPS, Moat, E-posta, Telegram, Ayarlar ve Ayırtılmış. Köprü işletmecileri Relay Search üzerinden köprülerinin hangi yöntemi kullandığını denetleyebilir. Köprünün <HASHED FINGERPRINT> değerini forma yazıp "Arama" üzerine tıklayın.

İşletmeciler köprülerinin kullanacağı dağıtım yöntemini seçebilir. Yöntemi değiştirmek için torrc dosyasındaki BridgeDistribution ayarını şunlardan biri yapabilirsiniz: https, moat, email, telegram, settings, lox, none, any. Her dağıtıcının açıklamasını rdsys dağıtıcıları belgelerinde bulabilirsiniz.

Köprüler hakkında ayrıntılı bilgi almak için kurulum sonrası rehberine bakabilirsiniz.

Tor sabit olmayan IP adresi kullanan aktarıcılarla ilgili bir sorun yaşamaz. torrc dosyanızdaki "Address" satırını boş bırakırsanız Tor gerisini halleder.

AccountingMax ve BandwidthRate seçeneklerine atanmış parametreler tüm istemciler ve Tor işleminin aktarıcı işlevleri için uygulanır. Bu nedenle Tor uygulamanız uykuya daldığında gezinemeyebilirsiniz. Bu durumu günlük içindeki şu kayıtlardan anlayabilirsiniz:

Bandwidth soft limit reached; commencing hibernation.
No new connections will be accepted

Bu sorunu aşmak için, biri aktarıcı biri de istemci için olmak üzere her biri kendi yapılandırmasına sahip iki ayrı Tor işlemi çalıştırabilirsiniz. Bunu yapmanın yollarından biri (çalışan bir aktarıcı kurulumu ile başlıyorsanız) şu şekildedir:

  • Aktarıcı Tor torrc dosyasında SocksPort değerini 0 olarak ayarlayın.
  • torrc.sample dosyasını kullanarak yeni bir istemci torrc dosyası oluşturun ve aktarıcı yapılandırma dosyasından farklı bir dosya olarak kullanılacağından emin olun. Bunun için dosya adlandırması torrc.client ve torrc.relay şeklinde olabilir.
  • Tor istemci ve aktarıcısının başlatma betiklerine torrc dosyasının yolu ile birlikte -f /klasor/yolu/kullanilacak/torrc şeklide ekleyin.
  • Linux/BSD/Mac OS X üzerinde başlatma betiklerinin Tor.client ve Tor.relay ayrılması yapılandırmaların daha kolay ayırt edilmesini sağlayabilir.

Artık bir koruma aktarıcısı olduğundan, diğer konumlardaki istemciler aktarıcınızı daha az kullanıyor, ancak çoğu kullanıcı henüz var olan koruma aktarıcılarını değiştirmemiş. Ayrıntılı bilgi almak için şu günlük yazısına ya da Changing of the Guards: A Framework for Understanding and Improving Entry Guard Selection in Tor makalesine bakabilirsiniz.

Bir obfs4 köprüsü işletmek ile ilgili ayrıntılı bilgi almak için obfs4 kurulum rehberi bölümüne bakabilirsiniz.

Windows üzerinde bir aktarıcı işletmek için şu eğitimlere bakabilirsiniz:

Bir Windows aktarıcısını yalnızca 7/24 işletebilecekseniz seçmelisiniz. Bunu garanti edemiyorsanız, kaynaklarınızı Tor ağına sunmak için Snowflake kullanmanız daha iyi olur.

Tor aktarıcınız istediğinizden fazla bellek kullanıyorsa, ayak izini küçültmek için kullanabileceğiniz bazı yöntemler var:

  • Linux kullanıyorsanız, glibc kitaplığındaki malloc uygulamasında bulunan bellek bölünmesi hatalarıyla karşılaşıyor olabilirsiniz. Bu durumda, Tor kullandığı belleği sisteme geri verdiğinde, bellek parçaları bölünmüş olduğundan yeniden kullanılması zorlaşır. Tor paketi, içinde çok fazla bölünme hatası olmayan (ancak daha fazla işlemci kullanımına yol açan) OpenBSD malloc uygulaması ile gelir. Şu komutu yürüterek Tor tarafından bu malloc uygulamasının kullanılmasını sağlayabilirsiniz: ./configure --enable-openbsd-malloc.
  • Çok sayıda TLS bağlantısının açıldığı hızlı bir aktarıcı işletiyorsanız, OpenSSL içindeki ara bellekler için çok fazla bellek harcıyor olabilirsiniz (her yuva için 38KB+). OpenSLL uygulamasını kullanılmayan ara belleği daha yoğun serbest bırakacak şekilde güncelledik. OpenSSL 1.0.0 ya da üzerindeki bir sürüme güncellerseniz, Tor yapım işlemi bu özelliği otomatik olarak tanır ve kullanır.
  • Buna rağmen bellek kullanımını kontrol altına alamıyorsanız, aktarıcınızın sunduğu bant genişliğini azaltmayı düşünün. Daha düşük bant genişliği sunulması daha az sayıda kullanıcı gelmesine neden olur ve aktarıcınızın fazla büyümesini engeller. Kılavuzdaki MaxAdvertisedBandwidth seçeneği sayfasına bakın.

Bu bilgilerin ışığında hızlı Tor aktarıcılarının fazla miktarda bellek kullandığı söylenebilir. Hızlı bir çıkış aktarıcısının 500-1000 MB bellek kullanması normaldir.