Kendi meşrebinde hem blog, hem Türkçe dökümantasyon

Etiketler

17 Şubat 2010 Çarşamba

SSH üzerinden tünel yapmak!

Daha önceki yazımda, Terminal'den kolay SSH yapma yöntemini anlatmıştım. ( Önceki yazım ) Şimdi, SSH yardımıyla nasıl tünel yaparız buna bakalım. Gerekenler:
  1. Uzaklarda bir makine ( SSH yapabileceğimiz )
  2. MacOS X ( Linux / Unix'de olur )
  3. MacPorts ( MacOS X için Ubuntu/Debian tadında paket yönetim sistemi, umarım bu kuruludur, eğer değilse olduğunuz yerde kalın ve beni bekleyin! yada işi biliyorsanız kendiniz kurun! )
  4. "tsocks" portu ( MacPorts paketlerine port denir, aslında paketler uygulamalardan yada kütüphanelerden oluşur, bu bakımdan xxxx portu dersem anlayınki bu bir ports paketi! )
Daha önce de anlattığım gibi, $HOME dizininizde duran ( kullanıcı adınız eğer vigo ise, /Users/vigo/ yada ~ işareti ile ifade edilen yer ) .ssh/config dosyanıza , o uzaklardaki makine bilgilerini girdiniz :
Host UZAKLARDA # bu ad ile erişeceğiz
User vigo # uzak makinedeki kullanıcı adınız
Port 22 # SSH portu genelde 22'dir
HostName 1.2.3.4 # uzak makinenin IP adresi
Aynı şekide, daha önce yazdığım yazıdaki gibi, ssh-key olayını da halletmiş olduğunuzu düşünüyorum. Yani uzaktaki makineye SSH yapmak için ( Yukarıdaki config'e göre )
ssh UZAKLARDA
denemiz yeterli olmalı... Eğer bu aşamaya kadar sorun yoksa, hemen MacPorts'dan tsocks'ı kuralım :
sudo port install tsocks
Kurulum bitince asıl hayati mevzu başlıyor, hemen ilgili konfigürasyonu yapmak lazım, aksi halde tsocks çalışmıyor; hemen /opt/local/etc/ altında duran tsocks.conf.sample'dan bir kopya alalım ve düzenleyelim :
cd /opt/local/etc/
sudo cp tsocks.conf.sample tsocks.conf
Şimdi hangi text-editör'ü kullanıyorsanız, o editörle tsocks.conf dosyasını açın ve aşağıdaki gibi yapın :
local = 127.0.0.1/255.255.255.255
server = 127.0.0.1
server_port = 1234
server_type = 5
tordns_enable = false
Şimdi burada dikkat edilecek husular şunlar;
  1. proxy port'umuz : 1234
  2. proxy tipi : SOCKS 5
Bu bilgiler ışığında hemen uzaktaki makineye bağlanıyoruz :
ssh -N UZAKLARDA -D 1234
UZAKLARDA : hani demin config'de belirtmiştik, -D 1234 ise tsocks'daki server_port... Şimdi başka bir TAB açıp ( cmd + t yada ⌘ + t ) bir deneme yapalım :
curl --connect-timeout 3 http://www.whatismyip.org/
tsocks curl --connect-timeout 3 http://www.whatismyip.org/
İlk komut, sistemin default bağlantısı ile çalışıp, sizin gerçek IP'nizi çözdü, ikincisi ise, SSH üzerinden tünel yaptı ve sanki uzaktaki makinedeymişsiniz gibi çözdü IP adresinizi. tsocks ile işlem yapmak için Terminal'de :
tsocks KOMUT
sudo tsocks KOMUT
şekillerinde kullanabilirsiniz. Eğer tüneli Terminal uygulamaları üzerinden değilde, desktop uygulamaları için kullanmak isterseniz ( Safari , FireFox vs... ) yine aynı şekilde önce SSH'i çalıştırın :
ssh -N UZAKLARDA -D 1234
sonra FireFox'u açın ve aşağıdaki gibi yapın ayarlarınızı :


SOCKS Host : localhost , Port : 1234

yapmamız yetti. Eğer bu işlemi, SSH bağlantısını yapmadan önce yaparsanız hiç bir sayfaya ulaşamazsınız! Çünki yukarıda şunu söylüyorsunuz FireFox'a : tüm bağlantılarımı "localhost" üzerinden 1234'ücü port üzerinden yap. Eğer SSH yoksa bağlantı da yok!!!

Hemen akıllara şu soru gelebilir :

"Bu benim ne işime yarayacak?"

Eğer Amerika yada Avrupa üzerinden bir sunucu kiralarsanız o kadar çok işinize yarar ki! Bazen bağlı olduğum servis sağlayıcının DNS'lerinde sorun oluyor, yada sebebsiz bir şekilde bazı sunuculara erişilemiyor ( PHP'nin interaktif shell'inde bir işlem yapacaktım, ports üzerinden kuramadım, neden? libxml2'nin sunulduğu sunucuya erişemedim??? ) işte bu durumlarda hemen kendi proxy'nizi kullanıp yolunuza devam edebilirsiniz...

Hiç yorum yok:

Yorum Gönder

İzleyiciler

Blog Listem

Yazılacak Yazılar

  • Snow Leopard için service yazıyoruz!
  • MacPorts nedir?
  • Virtualbox , Ubuntu ve Host'da duran web folder'ı
  • Django'ya giriş?
  • Dashcode ile MobileSafari uygulaması
  • Quicklook için Plug-in yazalım?
View blog authority