4 puan yazan GN⁺ 2025-06-02 | 2 yorum | WhatsApp'ta paylaş
  • Rastgele bir Linux programını ayrı bir ağ ortamına hapsedip tüm trafiği Tor üzerinden göndermesini sağlayarak, uygulama bazlı proxy ayarlarına güvenmekten kaynaklanan sızıntı riskini azaltan bir araç
  • Temelinde Linux çekirdeğinin ağ ad alanları bulunuyor; uygulamanın sistem arayüzleri yerine yalnızca onion0 arayüzünü görmesini sağlayarak dolaylı bağlantıları zorlaştırıyor
  • Mevcut torsocks, libc işlevlerinin üzerine yazma yöntemini kullandığı için statik ikili dosyalarda veya Zig ekosistemi gibi libc üzerinden geçmeyen çağrılarda veri sızabilir
  • oniux, Arti ve onionmasq tabanlı, Linux’a özel bir Rust aracı; torsocks ise CTor tabanlı C uygulaması olarak çapraz platform çalışıyor ve 15 yılı aşkın süredir kullanılan bir yaklaşım
  • Kullanıcılar mevcut komutların önüne oniux ekleyerek curl, bash, hexchat gibi araçları çalıştırabilir; ancak bunun yeni ve deneysel bir araç olduğu dikkate alınmalı

oniux’un çözmeye çalıştığı Tor izolasyonu sorunu

  • Gizliliğin önemli olduğu uygulama veya servisleri çalıştırırken tüm paketlerin gerçekten yalnızca Tor üzerinden çıkması gerekir
  • Proxy ayarları yanlış girilirse veya sistem çağrıları SOCKS sarmalayıcısının dışında gerçekleşirse veriler açığa çıkabilir
  • oniux, Linux ad alanlarını kullanarak üçüncü taraf uygulamalara Tor ağ izolasyonu sağlayan bir komut satırı yardımcı aracıdır
  • Arti ve onionmasq üzerinde çalışır; Linux programlarını kendi ağ ad alanına alıp Tor üzerinden yönlendirir
  • Belgenin başında oniux’un ayrı bir web sitesine sahip olduğu ve bu yazıdaki sürüm numarasının oldukça eski kaldığına dair bir uyarı yer alır

Linux ad alanlarının üstlendiği rol

  • Ad alanları, Linux çekirdeğinin izolasyon özelliğidir ve 2000 civarında kullanıma girmiştir
  • Bir uygulamanın belirli bölümlerini sistemin geri kalanından güvenli biçimde ayırabilir
  • Ad alanları, izole edilen hedefe göre çeşitli türlere ayrılır
    • Ağ ad alanı
    • Bağlama ad alanı
    • Süreç ad alanı
    • Diğer çeşitli türler
  • Linux’ta sistem kaynaklarına genellikle tüm uygulamalar küresel olarak erişebilir
    • İşletim sistemi saati
    • Tüm süreç listesi
    • Dosya sistemi
    • Kullanıcı listesi
  • Ad alanları, uygulamanın bir bölümünü işletim sisteminin geri kalanından konteynerleştirir; Docker da izolasyon ilkel öğeleri sağlarken bu özelliği kullanır

Tor ile ad alanlarını birleştirme yöntemi

  • oniux, her uygulamayı sistem genelindeki ağ arayüzlerine erişemeyen bir ağ ad alanı içinde çalıştırır
  • Bu ad alanına eth0 gibi sistem arayüzleri yerine yalnızca özel ağ arayüzü onion0 sunulur
  • Bu yöntem, rastgele uygulamaların Tor erişimini izole etmek için işletim sistemi çekirdeğinin sunduğu güvenlik ilkel öğelerine dayanır
  • SOCKS yönteminden farklı olarak, geliştirici hatası nedeniyle bazı bağlantıların yapılandırılmış SOCKS üzerinden geçmeden veri sızdırması olasılığını azaltabilir

oniux ile torsocks arasındaki fark

  • torsocks, trafiği Tor’un sunduğu SOCKS proxy’ye göndermek için ağla ilgili libc işlevlerinin üzerine yazan bir araçtır
  • Bu yöntem oniux’a göre daha çapraz platformdur; ancak dinamik olarak bağlanmış libc üzerinden geçmeyen sistem çağrılarında veri sızabilir
  • Özellikle tamamen statik ikili dosyalar ve Zig ekosistemi uygulamaları torsocks’un destek kapsamı dışında kalır
  • oniux

    • Bağımsız çalıştırılabilir bir uygulamadır
    • Linux ad alanlarını kullanır
    • Tüm uygulamalarda çalışır
    • Kötü niyetli uygulamaların bile veri sızdıramayacağı bir yapıya sahiptir
    • Yalnızca Linux içindir
    • Yeni ve deneysel bir araçtır
    • Motor olarak Arti’yi kullanır
    • Rust ile yazılmıştır
  • torsocks

    • Çalışan bir Tor daemon’u gerektirir
    • ld.so preload hilesini kullanır
    • Yalnızca sistem çağrılarını libc üzerinden yapan uygulamalarda çalışır
    • Kötü niyetli uygulamalar raw assembly ile sistem çağrısı oluşturarak veri sızdırabilir
    • Çapraz platformdur
    • 15 yılı aşkın süredir doğrulanmıştır
    • Motor olarak CTor’u kullanır
    • C ile yazılmıştır

Kurulum ve kullanım örnekleri

  • Bir Linux sistemi ve Rust toolchain’i gerekir
  • Kurulum cargo install ile yapılır
cargo install --git https://gitlab.torproject.org/tpo/core/oniux --tag v0.4.0 oniux
  • Basit bir HTTPS isteği Tor üzerinden çalıştırılabilir
oniux curl https://icanhazip.com
  • IPv6 istekleri de desteklenir
oniux curl -6 https://ipv6.icanhazip.com
  • Onion service erişimi de mümkündür
oniux curl http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/…
  • Günlükleme RUST_LOG=debug ile etkinleştirilebilir
RUST_LOG=debug oniux curl https://icanhazip.com
  • Tüm shell’i Tor üzerinden çalıştırırsanız, içindeki tüm süreçleri izole edebilirsiniz
oniux bash
  • Masaüstü ortamında grafik uygulamaları da izole edilebilir
oniux hexchat

İç çalışma akışı

  • oniux önce clone(2) sistem çağrısıyla bir alt süreç oluşturur
  • Alt süreç kendi ağ, bağlama, PID ve kullanıcı ad alanları içinde izole edilir
  • Ardından alt süreç /proc için kendi kopyasını bağlar ve üst sürecin UID ve GID değerlerine göre UID/GID eşlemesini ayarlar
  • Uygulamanın ad çözümlemesini Tor üzerinden yapması için nameserver girdileri içeren geçici bir dosya oluşturur ve bunu /etc/resolv.conf üzerine bind mount eder
  • Alt süreç, onionmasq kullanarak onion0 adlı bir TUN arayüzü oluşturur
  • Sonra rtnetlink(7) işlemleriyle arayüzü yapılandırır; buna IP adresi atama gibi işlemler dahildir
  • Alt süreç, TUN arayüzünün dosya tanımlayıcısını Unix Domain socket üzerinden üst sürece iletir
  • Üst süreç, ilk clone(2) çalıştırıldıktan sonra bu mesajı bekler
  • İletim tamamlandığında alt süreç, kullanıcı ad alanının root süreci olurken elde ettiği tüm capability’leri bırakır
  • Son olarak kullanıcının verdiği komutu Rust standart kütüphanesi işlevleriyle çalıştırır

Deneysel durum ve kullanımda dikkat edilmesi gerekenler

  • oniux görece yeni bir özelliktir ve Arti ile onionmasq gibi yeni Tor yazılımlarını kullanır
  • Şu anda beklendiği gibi çalışsa da torsocks 15 yılı aşkın süredir kullanıldığı için daha fazla saha deneyimine sahiptir
  • Amaç, oniux’un da torsocks’a benzer bir olgunluğa ulaşmasıdır

2 yorum

 
ndrgrd 2025-06-03

Tor gizlilik açısından fena değil gibi, ama anonimlik için uygun bir araç olup olmadığından pek emin değilim. Çıkış düğümlerinin zaten devlet kurumları tarafından ele geçirilmiş olduğuna dair laflar da var.

 
GN⁺ 2025-06-02
Hacker News yorumları
  • Yaklaşık 10 yıl önce network namespace’lerin yeni yeni öne çıktığı dönemde bir Tor geliştiricisiyle bu konu hakkında konuşmuştum.
    O zaman aldığım geri bildirim, bunun insanların güvenli olduğunu sanarken kimliklerini belirleyebilecek pek çok bilgiyi sızdırmasına yol açabilecek kolay bir yöntem olduğu yönündeydi; bu yüzden daha fazla zorlamadım.

    • Tor tarafının o yönde ısrar etmesinin stratejik bir hata olduğunu düşünüyorum.
      Ciddi tehdit altındaki insanların Tor Browser kullanması ve diğer sızıntı yollarına karşı sürekli dikkatli olması gerektiği doğru; ama Tor’un her yerde kullanıldığı bir durum oluşsaydı kitlesel gözetim çok daha zor hale gelirdi.
      Şu anda kitlesel gözetim kimin Tor kullandığını tespit edebiliyor; herkes kullanıyor olsaydı bu bilginin pek bir anlamı kalmazdı.
    • Tuhaf. torsocks ve torify de aynı işi yapıyor, sadece daha az sağlam biçimde.
  • Bu tamamen yalnızca TCP için geçerli değil mi? Başka bir deyişle, TCP dışı etkinliklerin nasıl korunabileceğini merak ediyorum.

    • Ayrıntıları bilmiyorum ama https://gitlab.torproject.org/tpo/core/onionmasq üzerinde şöyle yazıyor:
      Bu proje, trafiği Tor ağına iletebilmek için TCP ve UDP durumunu işleyebilen basit bir kullanıcı alanı ağ yığını uygulamaya yönelik bir deneme.
    • Tor Browser kullanıcıları YouTube’u veya DNS’i nasıl ele alıyor? HTTP/3’e ne olduğunu da merak ediyorum.
    • TCP dışı etkinlikler yönlendirilmeyecek ve iletim başarısız olacaktır.
  • İlk sayfadaki kurulum yönergesi çalışmıyor. Sürüm numarasını 0.4.0’dan 0.5.0’a değiştirmek gerekiyor.
    cargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.5.0

  • Oniux, orjail’e benzeyen “resmî” destekli bir araç gibi görünüyor. orjail’e 4 yıldır commit gelmemiş olsa da iptables/iproute araçlarını kullanan bir shell script olarak hâlâ gayet iyi çalışıyor [1].
    orjail’de ek izolasyon için firejail ile birlikte çalıştırma seçeneği de var; bu, Oniux’ta henüz bulunmuyor gibi görünüyor.
    [1] https://github.com/orjail/orjail/blob/master/usr/sbin/orjail

  • Başta bunun, torsocks gibi trafiği yerelde çalışan tor daemon’u üzerinden gönderdiğini sanmıştım.
    Ama yerel tor daemon’unu durdurduğumda oniux’un çalışmaya devam ettiğini, torify ve torsocks’un ise çalışmadığını gördüm. Belgelerde de gerçekten böyle yazıyormuş. Oldukça iyi.
    Docker içinde de çalışıyor ama --privileged gerekiyordu. İkili dosyayı debian:12 konteynerine kopyalayınca orada da çalıştı:
    docker run -it --rm --privileged -v "$PWD/oniux:/usr/bin/oniux" debian:12

  • İlginç bir bilgi: Bu, curl’de 5 yıldır bozuktu ve blog örneklerinde de durum aynıydı. Çünkü Tor geliştiricileri eskiden uygulamaların .onion alan adlarını çözümlemeye çalışmaması gerektiğinde ısrar ediyordu: https://daniel.haxx.se/blog/2025/05/16/leeks-and-leaks/
    Umarım bir çözüm bulunabilir.

  • Bu artık Chrome ile Tor web sitelerine erişebileceğimiz anlamına mı geliyor?

    • Mümkün, ama lütfen yapmasanız daha iyi. Aksine daha çok göze batarsınız. Tor Browser’da Chrome’da olmayan çeşitli parmak izi önleme stratejileri var.
    • Eskiden de proxy ortam değişkenlerini veya ayarlarını belirtince mümkündü. tor daemon’unun standart portu 9050’dir.
      Aslında trafiği keyfî bir protokol üzerinden yönlendirmeyi sağlayan SOCKS proxy’leri nispeten kolay yapılabilir. Örneğin bir SOCKS5 proxy’yi dönüştürme katmanı olarak kullanıp syncthing üzerinde web sitesi sunabilir veya ziyaret edebilirsiniz: https://github.com/acheong08/syndicate
  • Örnekte hexchat kullanılıyor; bu tür süreçler kullanıcı ayarlarıyla mı çalıştırılıyor? Ayarları değiştirmeyi unutursanız IRC kullanıcı adı sızmaz mı?
    Tarayıcı çalıştırırsanız çerezler de sızabilir mi?

    • Bu, sorumlulukların ayrılması meselesi. Tor parmak iziyle tanımlamayı engellemek için çok çaba harcıyor; ama kişisel olarak Tor ve Oniux’un ana amacının çıkış IP’sini izlenemez hale getirmek olduğunu düşünüyorum.
      Aynı şey Tor üzerinden Gmail’e giriş yapmak için de söylenebilirdi. HTTPS olmasaydı tabii.
    • Kullanıcı adının sızmasıyla ne kastettiğinizi anlamadım. Kullanıcı adının Tor kullandığı gerçeği ortaya çıkabilir.
      Aynı IRC sunucusuna bağlanan tüm kullanıcı adlarının aynı kişiye ait olduğu da hâlâ ortaya çıkacaktır.
      Anonim kalmaya çalışıyorsanız IRC epey riskli görünüyor; çünkü birçok kişi bağlantı kesilme zamanlarını kaydediyor ve bunlar başka ağ arızası olaylarıyla ilişkilendirilebilir.
  • Buradaki geliştirici deneyimi çok iyi hazırlanmış; aptalın bile kullanabileceği kadar kolay. Yapanların eline sağlık <3

    • Hiç de öyle değil. Aptallar yaratıcıdır. Bunu anonimliği koruyacak şekilde kullanmak için gereken operasyonel dikkat, çoğu kullanıcı için fazla zor.
  • Güzel. Şimdi prototipi C ile yeniden yazarsanız seve seve kullanırım.

    • Bu Rust ile yazılmış. C sürümü neden gerekli olsun?