SSH üzerinden tünel yapmak!
Daha önceki yazımda, Terminal’den kolay ssh yapma yöntemini anlatmıştım. Şimdi, ssh yardımıyla nasıl tünel yaparız buna bakalım.
Gerekenler:
- Uzaklarda bir makine (ssh yapabileceğimiz)
- Mac OS X (Linux / Unix’de olur)
- MacPorts
tsocks
port’u
MacPorts paketlerine port
denir, aslında paketler uygulamalardan ya da
kütüphanelerden oluşur, bu bakımdan xxxx
port’u 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 22dir
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 confige göre)
ssh UZAKLARDA
denemiz yeterli olmalı… Eğer bu aşamaya kadar sorun yoksa, hemen MacPorts’dan tsock’sı 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ör’le 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;
- proxy portumuz: 1234
- 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 (⌘ + T) 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! Çünkü 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 ya da 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, ya da sebebsiz bir şekilde bazı sunuculara erişilemiyor.
Geçenlerde 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…