SSH Uzak Port Yönlendirme – İleri Düzey SSH

02 Ağustos 2008

İleri Düzey SSH yazılarımın 5.cisi olan SSH Uzak Port Yönlendirme (ing. Remote Port Forwarding) ile SSH’ın etkili bir şekilde kullanmaya devam ediyoruz. Uzak Port Yönlendirme, Yerel Port Yönlendirme’ye oldukça benzemektedir. Tek fark yerel olanda ssh istemcisi port dinlemekte sshd istediğimiz yere bağlanmaktayken, uzak olanda ssh istemcisi istediğimiz yere bağlanmakta oturum açtığımız yerdeki sshd istediğimiz portu dinlemektedir. Kulağa biraz karışık geliyor. Birkaç pratik yapmadan da kafaya kalıcı olarak yerleşmesi mümkün değil. Bu nedenle aynı SSH Yerel Port Yönlendirme‘de olduğu gibi senaryolarla tariflemeye çalışacağım.

Ağ Kurgusu: Evinizde bir adet Linux sistemi var ve üzerinde çalışmaktasınız. ADSL modeminizin Internet’e bakan yüzünde sadece 22 numaralı SSH portu içteki bu Linux bilgisayarınızın 22 numaralı portuna yönlendirilmiş durumda. Yani herhangi bir yerden evinizdeki Linux’ünüze SSH ile erişilebilmektedir. Diğer yandan iş yerinize doğrudan erişiminiz yok. Bu sırada izinli olduğunuz için evinizdesiniz. İş yerindeki mesai arkadaşınız sizi aradı ve sizin yetkili olduğunuz 192.168.17.13 IP adresli sunucu sisteminde acil bir çalışma yapmanız gerektiğini iletti. Elde avuçta sadece bir bağlantı yöntemi var, o da iş yerinizden evinizdeki OpenSSH sunucusuna 22 numaralı porttan erişim imkanı.

Senaryo: Başında çalışmakta olduğunuz evinizdeki Linux’ün üstünde, mesai arkadaşınızın SSH oturumu açabileceği bir kullanıcı hesabı tanımlamalısınız. Daha sonra da mesai arkadaşınızdan kendi bilgisayarından aşağıdaki komutla sizin Linux’ünüze SSH oturumu açmasını istemelisiniz…

$ ssh -R 2222:192.168.17.13:22 kullanici@ev.homeip.net
Password:
Evine Hosgeldin Sahip!
evlinux$

Bu aşamadan itibaren kendi evinizde başında oturmakta olduğunuz Linux sistemi üzerinde 2222 numaralı TCP portu mesai arkadaşınıza hizmet veren sshd tarafından dinlenmeye başlamakta. Artık kendi Linux’ünüzden aşağıdaki komutla iş yerinizdeki 192.168.17.13 IP adresli sunucu sisteme SSH bağlantısı kurabilir ve üzerinde çalışabilirsiniz, yeter ki mesai arkadaşınız ilgili SSH oturumunu sonlandırmasın.

evlinux$ ssh -p 2222 root@localhost
Password:
Sirketin 192.168.17.13 Sunucusuna Hosgeldiniz!
sunucu#

Yukarıdaki örnekte de görüldüğü gibi artık çalışma yapmanız gereken sunucudasınız.

Biraz daha açıklamak gerekirse ssh istemcisinin uzak port yönlendirme seçeneği var (-R). Bu seçeneğin kullanılması zorunlu olan bir parametresi var. Bu parametre de aslında birbirinden “:” ile ayrılmış zorunlu 3 parçalı veya seçimlik olarak 4 parçalı dinlenecek ip ve port, bağlanılacak ip ve port bilgilerinden oluşmaktadır. Aşağıda “[]” arasına alınmış olan parça seçimliktir. Belirtilmezse 127.0.0.1 olduğu farz edilmektedir.

-R [uzakdinlemeip:]uzakdinlemeport:yerelbaglantıip:yerelbağlantıport

Yukarıda kullanım biçimi tarif edilen uzak port yönlendirme seçeneğinde kırmızı ile işaretlenmiş kısım SSH oturumu açılan sshd sunucusunun dinleyeceği IP:PORT bilgisini, mavi ile işaretlenmiş kısım da bağlantıyı kuran SSH istemcisinin bizim için bağlanacağı IP:PORT bilgisini ifade etmektedir. Kırmızı ile işaretli alanda SSH oturumu açılan sshd’nin çalıştığı bilgisayarda var olan IP adreslerinden birisini ve boşta olan portlardan birisini yazmalıyız. Mavi ile işaretli alanda ise SSH erişimini gerçekleştirdiğmiz SSH istemci sistemin bağlanabileceği bir IP adresi ve portunu yazmalıyız. SSH oturumu açıldığında uzaktaki sshd sunucusu kırmızı işaretli alanda tanımlı IP adresi ve portundan dinlemeye başlayacaktır (”netstat -nltp” ile dinlenen TCP portları ve dinleyen süreçler listelenebilir, kırmızı ile belirtilmiş olan portu sshd sürecinin dinliyor olması beklenir). Bu IP adresi ve portuna bir bağlantı geldiğinde mevcut SSH oturumu bağlantısı üstünden karşı taraftaki SSH istemcisine kadar gidecek ve oradan da mavi ile işaretli alandaki IP adresine ve portuna bağlanacaktır.

“-R” seçeneklerinden istediğiniz kadar kullanmakta özgürsünüz. Yani tek bir SSH bağlantısı ile birden fazla port yönlendirme gerçekleştirebilirsiniz.

SSH bağlantısını kuracak olan kişi Windows kullanıyorsa putty ile benzer şekilde uzak port yönlendirmesi yapabilir. Böylece mesai arkadaşınızın bilgisayarı Windows da olsa SSH uzak port yönlendirme Putty ile aynı şekilde çalışmaktadır.

İleri düzey SSH kullanımı ile ilgili sıradaki yazım SSH Dinamik Port Yönlendirme‘de görüşmek üzere.

Etiketler: , , , , , , , , , , , , , , ,

  1. “SSH Uzak Port Yönlendirme – İleri Düzey SSH” için 9 Yorum

  2. Sabo diyor ki:
    17 Eylül 2008 tarihinde.

    Güzel bir döküman olmuş, sanırım Türkiye de tek remote port forwarding dökümanı.

    Fakat ben vpn remote port forwarding üzerine arama yapıyordum, istediğim şey tam olarak şu:

    Benim bir vpn hesabım var (misal:strongvpn.com) ve ben bilgisayarımda bir web sunucu çalıştıyorum (veya bana uzaktan bağlanan birisinin rahatlıkla ulaşabileceği herhangi birşey), ben o kişiye vpn hesabımı vericem ve o kişi o vpn hesabına bağlanmak istediği zaman benim yönlendirdiğim port üzerinden benim bilgisayarıma bağlanıcak.

    Bu vpn veya ssh remote port forwarding ile mümkün mü?.

  3. Sezai YILMAZ diyor ki:
    19 Eylül 2008 tarihinde.

    Güzel yorumun için teşekkür ederim.

    VPN altyapısı kendi kurum, kuruluş veya evim için kendi sunucu ve bilgisayar sistemlerim üzerinden yapılandırılıp işletilmediği sürece, VPN bağlantı hizmetinin bir grup ya da firma’dan alınmasını doğru bulmuyorum (strongvpn.com gibi). Bu tür hizmet veren yerlerin kendi üzerinden akan ve oraya kadar şifreli olan trafiğin kendi içlerinden hedef noktaya kadar da şifreli iletilip iletilmediği, bu iletimi yapmadan önce kendi içlerinde şifreli olan bana ait içeriğe anahtarlar kendilerinde olduğu için açıp bakmadıklarını bilemeyiz. Bu nedenle bu tür hizmet veren yerlere kendi bilgisayarlarımı asla bulaştırmadım ve tam olarak da nasıl çalıştıklarını bilmiyorum, araştırma ihtiyacı da duymadım. İhtiyacım olan iki nokta arasındaki VPN’i doğrudan kurdum veya birilerinden kurulum hizmeti alarak kurdurdum. Yani VPN için alakasız yan bir kurumun ağını işin içine sokmadım, güvenlik endişeleri nedeniyle sokmam da.

    Bu tür hizmeti veren yerlerin çalışma altyapısı hakkındaki bilgi sahibi olmadığım ve belirsiz parametrelerin çokluğu nedeni ile sormuş olduğun soru üzerine düşünemiyorum. Ne yazık ki yanıt veremeyeceğim.

  4. Sabo diyor ki:
    19 Eylül 2008 tarihinde.

    Güvensizlik konusunda size katılıyorum, zaten önemli işlerimi yaparken kesinlikle uzaktaki bir sunucudan faydalanmam (socks proxy,vpn, vnc vs.).

    Ben bunun mümkün olduğunu duymuştum fakat aramalarım sonucu pek bişey bulamadım, bulduğum tek Türkçe kaynakta sizin makalenizdi zaten.

    Neyse bu vesileyle böyle faydalı bir site bulmuş oldum :), gerçekten çok faydalı bilgiler var ellerinize sağlık, takibinizdeyim.

    Teşekkürler…

  5. estomi diyor ki:
    18 Ekim 2008 tarihinde.

    Selam Windows xp işletim sistemi kullanıyorum. zyxel 660r modemim var. ve bu modeme 1 pc bağlı. şimdi ben dışardan bu bilgisayarıma ulaşmam için nasıl bir yönlendirmem yapmam gerekiyor?. birde pc me bağlı webcam var ben istediğim zaman evimi gözlemleyebilirmiyim? yada bunu sadece ip kamera ilemi yapabilirim?

  6. Sezai YILMAZ diyor ki:
    20 Ekim 2008 tarihinde.

    Evet bu mümkün. Ancak webcam’den görüntü yakalayıp bunu web üzerinden yayınlayabilecek bir program bulman lazım. Ben zamanında şu anda ismini hatırlamadığım bir tane buldum, özellikle eve henüz tanımadığımız çocuk bakıcısını tek odada da olsa izlemek istedim. İş yerinden izleyebildim. Ama maalesef makinayı çok kastırıyor, sürekli disk aktivitesi yapıyordu ve zamanla ihtiyaç ortadan kalktığı için sildim gitti. Zyxel ile nasıl ayarlanır bilmiyorum ama NAT, Virtual Server gibi anahtar kelimeleri modem’in arayüzünde ararsanız oralardan benzer şekilde yapılır diye tahmin ediyorum.

  7. Ali Korkmaz diyor ki:
    02 Ocak 2009 tarihinde.

    “Bu tür hizmeti veren yerlerin çalışma altyapısı hakkındaki bilgi sahibi olmadığım ve belirsiz parametrelerin çokluğu nedeni ile sormuş olduğun soru üzerine düşünemiyorum. Ne yazık ki yanıt veremeyeceğim.”

    Belirsiz parametre tanimlamasi cok hosuma gitti. Bende arkadasin sorusunu tam olarak anlayamadim ama, bundan sonra sorununu dile getirmeye calisan ama eksik veya karmasik bilgi veren kisilere “yoo dostum yooo, belirsiz parametrelerle dolu bir sorundan bahsediyorsun, seni anlamami bekleme” seklinde cool bi cevapla savusturma teknigi uygulicam (uykusuzum gereksiz action ariyorum sanirim kendime) 🙂

  8. Ali Korkmaz diyor ki:
    02 Ocak 2009 tarihinde.

    Pardon bu arada ssh makalen cok ama cok guzele benziyor (su an okuyamam gece baya gec oldu ama kesinlikle okucam zevkle) niye bole az deyinilen makaleler kendi bloglarini asamiyor anlamis degilim. WoL makelende cok guzeldi bence.

  9. Sabo diyor ki:
    19 Kasım 2009 tarihinde.

    Bu konuya google üzerinden 1 yıl sonra yine denk geldim :D. Daha önceki mesajınızda “belirsiz parametrelerin çokluğu nedeni” kısmını görmemişim, görseydim sorumu daha ayrıntılı bir şekilde sorardım. Şimdi benim istediğim olay aynen şu; bilgisayarımda webcamdeki görüntyü an ve an 1234 numaralı porttan dışarı veren bir yazılım var, normalde bu yazılımın clientine evdeki bilgisayarımın wan ip adresini girdiğim zaman webcam görüntüsünü alabiliyorum, fakat benim istediğim evdeki bilgisayarımın wan ip adresini gizlemek adına araya başka bir proxy sunucusu sokmak (vpn veya ssh ile bunu yapabileceğimi düşünüyorum).
    Misal benim wan ip adresimi değilde proxy sunucusun ip adresini ve port numarasını webcam yazılımının clientine girdiğim zaman beni evdeki bilgisayarıma yönlendircek.
    Umarım bu sefer daha açıklayıcı olmuştur :).

  10. güvenlik kamerası diyor ki:
    16 Mart 2010 tarihinde.

    oldukça bilgilendirici bir konu olmuş.

Yorum Yapın