4 puan yazan GN⁺ 2025-06-02 | 2 yorum | WhatsApp'ta paylaş
  • Oniux, Linux uygulamalarının tüm trafiğini Tor ağı üzerinden zorunlu olarak yönlendirerek veri sızıntısı riskini en aza indiren çekirdek düzeyinde bir yalıtım aracıdır
  • Linux namespace yapısını kullanarak her uygulamayı bağımsız bir ağ ortamında yalıtır ve Tor üzerinden güvenli iletişim sağlar
  • Mevcut torsocks çözümünden farklı olarak, libc kullanmayan veya statik binary dosyalarda da çalışır; böylece kötü amaçlı uygulamaların doğrudan veri sızdırma yollarını engeller
  • Oniux, yeni Arti, onionmasq temeli üzerinde Rust diliyle yazılmıştır; bu da hem güvenliği hem de genişletilebilirliği güçlendirir
  • Oniux şu anda deneysel bir araçtır; kararlılık açısından uzun süredir doğrulanmış torsocks'tan farklı olsa da, yeni nesil Tor trafik yalıtım çözümü olarak dikkat çekmektedir

Oniux'a giriş

Oniux, Linux'ta Tor ağı yalıtımı aracılığıyla kişisel gizlilik güvenliğini ciddi ölçüde artıran bir komut satırı yardımcı programıdır. Geliştiricilerin, aktivistlerin ve araştırmacıların hatalı proxy ayarları ya da küçük dikkatsizlikler nedeniyle oluşabilecek veri sızıntısı olasılığını tamamen engelleyebilmesi için tasarlanmıştır. Oniux, Arti ve onionmasq üzerinde çalışır; herhangi bir Linux uygulamasını ayrı bir ağ namespace'inde yalıtarak trafiği yalnızca Tor ağına zorunlu olarak yönlendirir.

Linux namespace nedir

  • Namespace, Linux çekirdeğinin temel yalıtım özelliklerinden biridir
  • Bir uygulamanın bazı kaynaklarını sistemin geri kalanından mantıksal olarak ayırır
  • Ağ, mount, süreç gibi çeşitli kaynaklar bu teknikle yalıtılabilir
  • Her namespace, işletim sistemi kaynaklarını ayırarak konteyner ortamlarında veya güvenlik amaçlı kullanılır
  • Docker gibi yaygın konteyner çözümleri namespace'i temel prensip olarak kullanır

Tor ile namespace birleşiminin anlamı

  • Namespace, herhangi bir uygulamanın Tor ağına erişimini tam yalıtımla korur
  • Her uygulama ayrı bir network namespace içine yerleştirilir ve yalnızca onion0 adlı özel arayüz açığa çıkarılır
  • Uygulama, işletim sisteminin genel ağ arayüzlerine (ör. eth0) erişemediği için güvenlik en üst düzeye çıkarılabilir
  • SOCKS tabanlı proxy yaklaşımından farklı olarak, herhangi bir hata ya da kusur nedeniyle doğrudan trafik sızıntısı riski yoktur

Oniux ve torsocks karşılaştırması

  • Torsocks, libc'nin ağ işlevlerini LD_PRELOAD tekniğiyle hook'layarak trafiği Tor'un SOCKS proxy'si üzerinden geçirir
  • Oniux, namespace yalıtımı ile çalışır ve statik binary'lerde veya Zig gibi ortamlarda da trafik sızıntısını %100 engeller
  • Başlıca karşılaştırma noktaları
    • Oniux: Ayrı bir Tor daemon'u gerekmez, namespace kullanır, tüm uygulamaları destekler, kötü amaçlı uygulamaların raw system call'larını da engeller, yalnızca Linux'ta çalışır, yeni/deneyseldir, Arti tabanlıdır, Rust ile yazılmıştır
    • Torsocks: Tor daemon'u gerekir, ld.so hilesi kullanır, yalnızca libc'ye bağlı uygulamaları destekler, raw system call'larda sızıntı olabilir, çapraz platformdur, 15 yılı aşkın süredir doğrulanmıştır, CTor motorunu kullanır, C diliyle yazılmıştır

Oniux nasıl kullanılır

  • Rust geliştirme ortamı kurulmuş bir Linux sistemi gerekir
  • Komut satırında oniux kolayca kurulup çalıştırılabilir

Başlıca kullanım örnekleri:

  • $ oniux curl https://icanhazip.com # Tor üzerinden alınan IP'yi görüntüler
  • $ oniux bash # Tüm shell'i Tor yalıtımı altında çalıştırır
  • $ oniux hexchat # GUI uygulamaları da Tor üzerinden zorla yönlendirilebilir
  • $ RUST_LOG=debug oniux curl ... # Hata ayıklama loglamasını destekler

İç çalışma mantığı

  • Oniux, clone(2) system call'ı ile bağımsız ağ, mount, PID ve kullanıcı namespace'lerinde bir child process oluşturur
  • Child process, /proc'u ayrı olarak mount eder ve UID/GID eşlemesiyle yetkileri ayarlar
  • İsim sunucusu bilgisini içeren geçici bir dosyayı /etc/resolv.conf üzerine bind mount ederek Tor tabanlı isim çözümleyicinin zorunlu kullanımını sağlar
  • onionmasq ile TUN arayüzü (onion0) oluşturur, IP ataması ve yapılandırmasını yapar
  • Child process, arayüz fd'sini Unix domain socket üzerinden parent process'e aktarır ve yetkileri en aza indirir
  • Son olarak Rust özelliklerini kullanarak kullanıcının verdiği komutu çalıştırır

Oniux'un deneysel niteliği

  • Oniux, Arti, onionmasq gibi yeni teknolojiler temel alınarak oluşturulmuş erken aşama bir sürümdür
  • Şu anda düzgün çalışsa da, torsocks gibi uzun yıllara yayılan olgunlaşma ve saha deneyiminden yoksundur
  • Kararlılığın sağlanması ve performansın iyileştirilmesi için çeşitli gerçek kullanım geri bildirimlerine ihtiyaç vardır

Katkılar ve destek

  • Rust tabanlı IP stack'i smoltcp'ye ve user namespace kullanımına dair geliştirme tavsiyeleri veren 7ppKb5bW gibi geliştiricilere teşekkür edilmektedir
  • Oniux projesi, The Tor Project ve topluluğun desteğiyle sürdürülmektedir; gizlilik ve açık kaynaklı yazılımın gelişimi için bağış yapılması önerilmektedir

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 görüşü
  • Yaklaşık 10 yıl önce ağ namespace'leri sıcak bir konu olarak öne çıktığında, bu konuda Tor geliştiricileriyle konuşma deneyimim olmuştu. O zaman aldığım geri bildirim, namespace üzerinden yapılan izolasyonun insanlara güvenlik konusunda sahte bir rahatlık verdiği ama yine de kimliği belirlemeye yarayan pek çok bilginin sızabildiği yönündeydi; bu yüzden daha fazla ilerlenmediğini hatırlıyorum.
    • Tor ekibinin bu noktayı o kadar vurgulamasının stratejik olarak bir hata olduğunu düşünüyorum. Ciddi tehdit altında olan kişilerin Tor Browser kullanıp diğer bilgi sızıntısı yollarına da dikkat etmesi gerektiği doğru, ama Tor herkes için varsayılan olsaydı kitlesel gözetimin kendisi çok daha zor olurdu diye düşünüyorum. Şu anda Tor kullanan kişinin kim olduğu başlı başına bir izleme konusu, ama herkes kullansa bu bilgi anlamsız hale gelirdi.
    • torsock ve torify de temelde aynı rolü oynuyor, ama sağlamlık açısından daha zayıf hissettiren noktalar var.
  • Kurulum kılavuzundaki komutlarla ilerleyince ç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
  • Başta torsocks gibi, trafiğin yerelde çalışan bir tor daemon'u üzerinden çıktığını sanmıştım. Ama yerel tor daemon'unu kapatsam da oniux hâlâ düzgün çalışıyor, buna karşılık torify ve torsocks çalışmıyor. Belgelere bakınca gerçekten de böyle olduğu görülüyor. Oldukça ilginç bir durum. Docker içinde de iyi çalışıyor ama --privileged seçeneğini kullanmam gerekti ve yalnızca binary'yi debian:12 konteynerine kopyalayınca da sorunsuz çalıştı.
    docker run -it --rm --privileged -v "$PWD/oniux:/usr/bin/oniux" debian:12
  • Bütün bunların yalnızca TCP için mi geçerli olduğunu merak ediyorum. Yani TCP dışı trafiğin de korunup korunmadığı soru işareti.
    • Ayrıntıları bilmiyorum ama https://gitlab.torproject.org/tpo/core/onionmasq bağlantısına bakınca, yalnızca TCP değil UDP'yi de destekleyen bir userspace ağ yığını oluşturup bunu Tor ağına yönlendirme girişimi gibi görünüyor.
    • Tor Browser kullananların YouTube'u, DNS'i ve HTTP/3'ü nasıl ele aldığını merak ediyorum.
    • TCP dışı trafik yönlendirilmiyor; doğrudan gönderim başarısız oluyor.
  • Oniux resmî olarak desteklenen bir araç gibi görünüyor. orjail'e benziyor, ama orjail 4 yıldır commit almamış olsa da hâlâ iptables/iproute araçlarıyla birlikte shell script olarak gayet iyi çalışıyor.
    orjail için firejail ile ek izolasyon sağlayan bir seçenek de var ama Oniux'ta henüz böyle bir özellik yok.
    https://github.com/orjail/orjail/blob/master/usr/sbin/orjail
  • Artık chrome ile tor web sitelerine erişmenin mümkün olup olmadığını merak ediyorum.
    • Yapılabilir ama böyle yapmamanızı tavsiye ederim. chrome'da Tor Browser'daki çeşitli anti-fingerprinting stratejileri yok. Normal bir tarayıcı kullanırsanız daha da ayırt edilebilir bir kullanıcı haline gelirsiniz.
    • Aslında eski zamandan beri proxy ortam değişkenlerini (veya ayarlarını) doğru tanımlarsanız chrome gibi tarayıcılarla da erişmek mümkün. Tor daemon'un standart portu 9050. Hatta bir socks proxy'si yazıp trafiği yönlendirmek de oldukça kolay. Örneğin socks5 proxy kullanarak trafiği syncthing gibi bir yere gönderebilirsiniz.
      https://github.com/acheong08/syndicate
  • Örnek olarak hexchat veriliyor ama kullanıcının profil ayarları aynen kullanılırsa IRC kullanıcı adının sızmayacağını nasıl söyleyebiliriz diye merak ediyorum.
    Tarayıcı çalıştırılırsa çerezler gibi şeyler de sızabilir.
    • Rol ayrımı önemli. Tor fingerprinting'i önlemek için çok çaba harcıyor ama temelde Tor ve Oniux'un amacı çıkış IP'sinin kaynağa kadar izlenemez olmasını sağlamak. Tor üzerinden Gmail'e giriş yapmak da aynı sorunu doğurur (HTTPS kullanılmadığı sürece).
    • Kullanıcı adının sızmasıyla tam olarak ne kastedildiğini merak ediyorum. Pratikte bu, yalnızca o kullanıcı adının Tor kullandığını gösterir. Aynı IRC sunucusuna aynı kullanıcı adıyla sürekli bağlanılırsa hepsinin aynı kişi olduğu da anlaşılabilir. Anonimlik hedefleniyorsa IRC oldukça riskli bir araç sayılır. Birçok kişi ağ kopması gibi olaylarla ilişkilendirilebilecek log'lar tuttuğu için korelasyon riski ortaya çıkabilir.
  • DevEx (geliştirici deneyimi) tarafı gerçekten çok iyi yapılmış ve neredeyse aptal-proof denecek kadar sağlam hissettiriyor. Geliştirme ekibini alkışlamak isterim.
    • Aslında tamamen öyle olduğunu düşünmüyorum. Aptallar her zaman yaratıcıdır ve anonimliği korumak için çok dikkatli operasyon gerekir; çoğu kullanıcıdan bunu beklemek zor.
  • Kod C ile yeniden yazılırsa memnuniyetle kullanırım.
    • Zaten Rust ile yazılmış durumda. Özellikle neden C sürümü istendiğini merak ediyorum.