İçeriğe geç
ipkontrol.net

VPN

SSH Tüneli Nedir? VPN Yerine Kullanılır mı?

Tek bağlantı üzerinden port yönlendirme, SOCKS proxy kurulumu ve sınırları.

SSH'in bilinen işi uzak sunucuya bağlanıp komut çalıştırmak. İkinci bir işi daha var: kurduğu şifreli bağlantının içinden başka bağlantıları taşımak. Buna tünel deniyor.

Bağlantının kendisini nasıl kuracağınızı SSH bağlantısı kurma yazısında anlattık. Burada o bağlantıyı bir yol olarak kullanıyoruz.

Üç tünel türü, üç ayrı sorun

BayrakNe yaparHangi sorunu çözer
-LYerel portu uzaktaki bir servise bağlarUzaktaki kapalı servise erişmek
-RUzak portu yerel bir servise bağlarKendi makinenizdekini dışarı açmak
-DYerel SOCKS proxy açarTarayıcı trafiğini sunucudan geçirmek

-L: uzaktaki kapalı servise erişmek

En yaygın kullanım. Uzak sunucuda bir veritabanı çalışıyor ama güvenlik gereği yalnızca kendi içinden erişilebilir durumda. Dışarı açmak yerine tünel kuruyorsunuz:

ssh -L 5432:localhost:5432 kullanici@sunucu

Artık kendi bilgisayarınızdaki 5432 numaralı port, sunucunun içindeki 5432'ye bağlı. Uygulamanız "localhost" a bağlanıyor; trafik şifreli kanaldan gidiyor.

Kazanç güvenlik: veritabanı portunu internete hiç açmıyorsunuz. Açık bırakılan portların riskini ayrı bir yazıda anlattık.

-R: kendi makinenizdekini dışarı açmak

Ters yön. Yerelde çalışan bir servisi, dışarıdan erişilebilen bir sunucu üzerinden açıyorsunuz:

ssh -R 8080:localhost:3000 kullanici@sunucu

Sunucunun 8080 portuna gelen istekler sizin makinenizdeki 3000'e iniyor.

Bu, port açamayan bağlantılar için gerçek bir çözüm: CGNAT arkasındaysanız modemde kural yazamazsınız ama dışarıdaki bir sunucuya siz bağlandığınız için tünel çalışır.

Uzak sunucudaki portun dışarıya açılması için sunucu ayarında GatewayPorts açık olmalı; kapalıysa port yalnızca sunucunun kendi içinden görünür.

-D: tarayıcı trafiğini sunucudan geçirmek

ssh -D 1080 kullanici@sunucu

Bu komut bilgisayarınızda bir SOCKS proxy açıyor. Tarayıcınızın proxy ayarına 127.0.0.1:1080 yazınca o tarayıcının trafiği sunucudan çıkıyor.

Sonuç VPN'e benziyor ama aynı şey değil: yalnızca proxy ayarı yapılmış uygulamalar tünelden geçiyor. Ayarı nereye yazacağınızı Chrome ve Windows yazılarında anlattık.

VPN yerine geçer mi?

Hayır. Dört fark var ve üçü SSH'in aleyhine:

SSH tüneliVPN
KapsamAyarladığınız uygulamalarBütün cihaz
UDP trafiğiTaşımazTaşır
KurulumTek komut, sunucu gerekirUygulama kurmak yeter
DNS sorgularıAyrıca ayar isterTünelden geçer

İkinci satır oyun ve görüntülü görüşme için belirleyici: ikisi de UDP kullanıyor ve SSH tüneli UDP taşımıyor.

Dördüncü satır gizlilik açısından önemli: SOCKS proxy kullanırken tarayıcı ad çözümlemeyi yerel olarak yaparsa hangi siteye gittiğiniz yine görünür. Firefox'ta bunun için ayrı bir ayar var; Chrome'da davranış eklentiye göre değişiyor.

Yani SSH tüneli bir araç, VPN bir katman. Tek bir servise erişmek için tünel, genel gizlilik için VPN doğru seçim.

Tünelin koptuğu durumlar

  • Uzun süre işlem olmayınca kapanıyor. Sunucu boşta kalan oturumu düşürüyor; ServerAliveInterval 60 ayarı bunu önlüyor.
  • Ağ değişince kopuyor. Wi-Fi'dan mobil veriye geçtiğinizde oturum düşer; yeniden bağlanmak gerekir.
  • Port zaten kullanımda hatası. Aynı yerel portu iki kez tünellemeye çalışıyorsunuzdur; başka bir numara seçin.

Kalıcı kullanacaksanız bağlantıyı koptuğunda yeniden kuran araçlar var (autossh gibi); elle her seferinde komut yazmaktan daha güvenilir.

Güvenlik notu

Tünel, SSH sunucusuna erişimi olan herkesin kullanabileceği bir yol açıyor. Sunucu tarafında iki şey önemli: parola yerine anahtar kullanmak ve gereksizse AllowTcpForwarding ayarını kapatmak.

22 numaralı portun güvenliğini ve anahtar kurulumunu SSH portu yazısında ele aldık.

Sıkça sorulan sorular

SSH tüneli nedir?

SSH bağlantısının içinden başka bağlantıları taşıma yöntemidir. Şifreli kanal kurulduktan sonra bir portun trafiği o kanaldan geçirilir.

-L ve -R arasındaki fark ne?

-L yerel bir portu uzaktaki servise bağlar; uzak sunucudaki kapalı bir veritabanına erişmek için kullanılır. -R tersidir: kendi makinenizdeki servisi uzak sunucu üzerinden dışarı açar.

SSH tüneli VPN yerine geçer mi?

Geçmez. Yalnızca ayarladığınız uygulamaları kapsar, UDP trafiğini taşımaz ve DNS sorguları ayrıca ayar ister. Oyun ve görüntülü görüşme UDP kullandığı için tünelden geçmez.

CGNAT arkasındayım, tünel işime yarar mı?

Yarar. Modemde port yönlendirme yapamasanız da dışarıdaki bir sunucuya siz bağlandığınız için -R ile yerel servisinizi o sunucu üzerinden açabilirsiniz.

Tünel neden sürekli kopuyor?

Boşta kalan oturumları sunucu düşürüyor olabilir; ServerAliveInterval ayarı bunu önler. Ağ değiştirdiğinizde (Wi-Fi’dan mobil veriye) oturum zaten düşer ve yeniden kurulması gerekir.