sshuttle – garibanın vpn’i

Geçtiğimiz günlerde meclisten geçen torba yasa kapsamında oldukça(!) özgür olan internetimiz daha da “özgürleştirildi.” Hal böyle olunca DNS, VPN nedir bilmeyen çoğu kullanıcı; bir anda bu kavramlara aşina olmaya başladı.

Gelelim konuya… sshuttle ufak ama bir o kadar da kullanışlı, güzel bir araç. Yaptığı iş tüm internet bağlantınızı ssh yardımıyla başka bir makine üzerinden geçirmek. Bu haliyle bir nevi VPN görevi görüyor. Zaten kendisini “poor man’s vpn” olarak tanıtıyor. Halihazırdaki vpn çözümleri pahalı veya kompleks (ipsec vs.) yapıda olduğu için insanı oldukça uğraştırıyor. sshuttle tam bu konuda devreye giriyor ve basit bir şekilde internet bağlantınızı güvenli hale getiriyor. (kem gözlerden koruyor diyelim.)

sshuttle kurmak için size sadece şunlar lazım:

  • GNU/Linux kurulu bir makine. (MacOS veya *BSD üzerinde de çalışıyor.)
  • Tercihen (eh) yurtdışında bulunan; ssh bağlantısı kurabileceğiniz bir sunucu. (Bugünlerde ayda $1 civarı bir meblağa kiralayabiliyorsunuz)

sshuttle’ın çalışacağı GNU/Linux kurulu makinenizde root yetkilerine sahip olmanız gerekiyor; zira sshuttle arka planda iptables’ın nimetlerinden yararlanıyor. ssh bağlantısı kuracağınız makinede ise root olmanıza gerek bulunmuyor. Sıradan bir kullanıcı hesabı ve python’ın kurulu olması yeterli.

Gelelim kuruluma, sshuttle’ı sadece kendi makinenize kuruyorsunuz, sunucu tarafında kurmanız gereken bir paket bulunmuyor.

Arch Linux kullanıyorsanız, sshuttle community deposunda yer alıyor, kurmak için şu komut yetiyor:

pacman -S sshuttle

Debian/Ubuntu ve benzeri dağıtımlarda:

apt-get install sshuttle

Fedora kullanıcıları ise EPEL deposunu ekleyip şu şekilde kurabilirler:

yum install sshuttle

Çalıştırmak için ise aşağıdaki komut yetiyor (root olarak veya sudo ile):

sshuttle --dns -r kullanıcı@makine 0/0 -D

Parametrelerin neler yaptığını da açıklayalım:

-r parametresi: remote anlamı taşıyor; yani bağlanacağınız ssh sunucusu
0/0: hedef ağ, 0.0.0.0/0′ın kısaltması. 0/0 tüm internet bağlantısını ifade ediyor. Belirli bir subnete bağlanmak istiyorsanız 0/0 yerine subneti verebilirsiniz.
--dns: DNS sorgularını ssh üzerinden yapmanızı sağlıyor.
-D: sshuttle’ın arkaplanda (daemonize) çalışmasını sağlıyor.

Ne diyelim, zalimin yasakları varsa garibanın da sshuttle’ı var!