SSH Reverse Tunneling

Fri 15 April 2011

Bir arkadaşınızın SSH sunucusuna bağlanmak istiyorsunuz fakat arkadaşınız bir NAT arkasında (modem vb) veya güvenlik duvarı arkadaşınıza bağlanmanıza izin vermiyor. SSH Reverse Tunneling tam da aradığınız şey!

SSH Reverse Tunnel ile arkadaşınız, sizin SSH sunucunuza bağlanabilir ve oluşturacağı tünel ile herhangi bir portunu sizin sunucunuzda kullanılabilir hale getirebilir.

Bu tür bir tünel oluşturabilmek için yapmanız gerekenler şunlardır:

  1. Öncelikle arkadaşınızın sizin makinenize bağlanmasını sağlamalısınız. Bunun için de sizin SSH sunucunuzun dışarıdan ulaşılabilir olması gerekmekte. adduser ile makinanızda arkadaşınıza bir kullanıcı oluşturun.

  2. Ardından arkadaşınızın, sizin makinanıza şu komutla giriş yapmasını sağlayın:

    ssh -R 14443:localhost:22 kullaniciadi@ip-adresiniz
    

    Arkadaşınız giriş yaptığında, sizin makinanızda açılacak olan 14443 numaralı port, arkadaşınızın makinasının 22 numaralı portuna yönlendirilecektir. 22 numaralı port SSH portudur, isterseniz farklı bir portu da yönlendirebilirsiniz. 14443 yerine herhangi bir port numarası tercih edebilirsiniz, fakat unutmayın ki 1024 den küçük portlar için root yetkisi gerekmektedir.

  3. Arkadaşınız sizin makinanıza başarılı bir şekilde giriş yaptıktan sonra, yönlendirmiş olduğu SSH portunu kullanmak ve arkadaşınızın makinasına giriş yapmak için şu komutu kullanın:

    ssh -p 14443 port arkadasinizinkullaniciadi@localhost
    

    Başarılı bir şekilde giriş yapın.

Bu özellik sayesinde NAT arkasında olan tüm makinelere bağlanabilirsiniz. Özellikle port yönlendirmesi yapamayacak olan makinelere bağlanmak için çok yararlı bir özellik ve GNU/Linux'de herşeyin mümkün olduğunu bir kere daha gösteriyor.