İçeriğe geç

SSHuttle ile SSH Tünelleme

SSH tünelleme, cihazın ağ trafiğini SSH üzerinden geçirerek güvenli ve izlenmesi zorlaştırılmış bir tünelleme seçeneği sunuyor. SSH Tünelleme mantığını ve oldukça popüler olan sshuttle aracını kullanarak ssh tünellemeyi anlatmaya çalışacağım.


Neden SSH Tünelleme

SSH Tünelleme en basit haliyle, ağ trafiğindeki tüm paketleri SSH paketleri içinde gönderip almak olarak tanımlanabilir. SSH protokolünün güvenli yapısı sayesinde uzak noktadaki bir sunucu ile kriptolu bağlantı kurabilir, bu aradaki trafiğin dinlenmesini, dolayısı ile sık rastladığımız “IP bazlı” veya “Domain bazlı” engellemeyi atlatabilirsiniz. (10 yıl önceki gibi DNS değiştirmek de işe yaramıyor artık 😀 )

internet block bypass ile ilgili görsel sonucu

Ayrıca SSH tünellemeye ihtiyaç duymamızın tek sebebi bu engellemeler değil. Aynı zamanda ağ trafiğimizin izlenmesinden, internet kullanım bilgilerimizin işlenmesinden ve satılmasından rahatsız olan bir çok kişiden biri olabilirsiniz. Superonline veya TurkNet kullanıcısı iseniz IP adresinizin NAT ile internete farklı bir IP adresi ile çıktığını biliyorsunuzdur. NAT’lanmış IP adresinize dış dünyada port açmak için de SSH Tünelleme bir seçenek olabilir. İhtiyacınıza göre seçebileceğiniz 3 çeşit SSH tünelleme şekli var.

  • Yerel port yönlendirme
  • Uzak port yönlendirme
  • Dinamik port yönlendirme

SSHuttle nedir?

SSHuttle ise kendini fakir VPN’i olarak adlandıran açık kaynak kodlu bir araç. Uzak sunucu ile bağlantı kurarak Linux veya MacOS yüklü cihazınızın bu bağlantı üzerinden SSH Tünelleme yapmasına olanak veriyor. Yani özetle ihtiyacımız olan iki şey;

  • sshuttle yüklü Linux veya MacOS bir bilgisayar
  • Bilgisayarımızdan gelen isteklere cevap verecek bir uzak sunucu

Bilgisayarınıza, geliştiricinin sshuttle için açtığı github reposundan indirerek programı yükleyebilirsiniz. Ubuntu ve benzeri sistemler kullanıyorsanız alttaki komutla da yüklemeyi gerçekleştirebilirsiniz.

sudo apt-get install sshuttle

Uzak sunucu meselesini de Github öğrenci paketi indirimleri sayesinde DigitalOcean’dan aldığım sunucu ile çözdüm. Öğrenci değilseniz de aylık 5$ lık sunucu çözümleri oldukça uygun.

SSHuttle kullanımı

Kullanımı ise yüklemesi kadar basit. Programı çalıştırmdan önce root yetkilerine sahip olmanız gerekiyor.

sshuttle –dns -r <kullanıcı-adınız>@<makine-ip> 0/0

–dns parametresi ile dns sorgularının da ssh tünelleme ile yapılmasını sağlıyorsunuz. (tavsiye)

-r parametresinden sonra remote sunucunuzun kullanıcı ve ip adresini giriyorsunuz, örneği aşağıda.

0/0 ise subnet parametresi. 0/0 tüm ağın hedef makine üzerinden tünelleneceğini ifade eden 0.0.0.0/0 ‘ın kısa hali. Ayarlarınıza göre değiştirebilirsiniz.

Buna ek olarak -D parametresini kullanarak sshuttle’ın sessiz modda çalışmasını sağlayabilirsiniz.


Örnek olarak daha önce  kendi bilgisayarımdaki kurulum adımlarını ve 165.165.165.165 IP adresli uzak makine ile kurduğum SSH tünelleme bağlantımı görebilirsiniz:

Bağlantıdan önce sitelere ulaşan IP adresimi kontrol ettim:

Yükleme ve kullanım adımları:

Yükleme adımı
Bağlantı adımı

Bağlantıdan sonraki IP testi:


Wireshark ile ssh tünellemeyi izleyerek gelen-giden paketlerin SSH paketleri olduğunu ve encrypted olduğunu takip edebilirsiniz.

Not: 165.165.165.165 ‘in uydurma bir ip adresi olduğunu fark etmişsinizdir. 

 

Tarih:GüvenlikWeb