Web tabanlı SSH - Web-based SSH

Web tabanlı SSH , Secure Shell (SSH) sunucularına standart web tarayıcıları üzerinden erişmeyi mümkün kılar . İlgili istemciler tipik olarak JavaScript / Ajax veya JavaScript / WebSockets tabanlıdır ve bir Ajax / WebSocket-SSH proxy'si ile birlikte çalışırlarsa, SSH sunucularına HTTP trafiğine izin veren bir güvenlik duvarının veya proxy'nin arkasından erişmek için kullanılabilirler. SSH trafiğine izin verme.

Teknoloji

Web tabanlı SSH istemcileri temelde aşağıdaki bölümlerden oluşur:

İstemci tarafı terminal emülasyonu

İstemci tarafı terminal öykünmesini kullanan web tabanlı SSH sunucuları, genellikle ham terminal çıktısını SSH sunucusundan doğrudan istemciye iletir. Bu, uçbirim çıktısını istemciye HTML'ye çevirme sürecini boşaltma avantajına sahiptir. Bu yöntemin dezavantajı, JavaScript'in yetenekleriyle sınırlı olması ve gelen karakter akışını işlemek için istemcinin CPU'sunun ve belleğinin önemsiz olmayan bir miktarını kullanmasıdır. Ayrıca, istemcinin terminal durumunu takip etmesine ve kaçış dizilerine yanıt vermesine de güvenir .

İstemci tarafı terminal öykünücüsü örneği: vt100.js

Sunucu tarafı terminal emülasyonu

Sunucu tarafı terminal öykünmesini kullanan web tabanlı SSH sunucuları tipik olarak terminal ekranını ve hafızadaki durumu takip eder ve bir ekran güncellemesi gerçekleştiğinde veya istemci açıkça bir güncelleme istediğinde bunu HTML'ye dönüştürür. Bu yöntemin avantajı, kullanıcı mevcut oturumlarına farklı bir web tarayıcısından bağlansa bile terminalin durumunun kalıcı kalmasıdır. Ayrıca, kullanıcının bağlantısı kesilse bile sunucunun terminal çıkışına göre hareket etmesini sağlar. Bu yöntemin dezavantajı, sunucuda daha fazla CPU ve bellek kullanmasıdır.

Sunucu tarafı terminal öykünücüsü örneği: terminal.py

Avantajları

Web tabanlı SSH'nin başlıca avantajları şu şekilde özetlenebilir:

  • Erişilebilirlik : Bu makalede açıklanan Web tabanlı SSH, istemci yazılımının yerel kurulumunu gerektirmez. Böylece SSH sunucularına herhangi bir yerden bir web tarayıcısı üzerinden erişmek mümkündür. İletişim HTTP veya HTTPS'ye dayandığından, SSH sunucularına, İnternet erişimini yalnızca 80 ( HTTP ) veya 443 ( HTTPS ) bağlantı noktalarına kısıtlayan bir güvenlik duvarının veya proxy'nin arkasından erişmek de mümkündür .
  • Anonim Erişim : SSH erişimi, bir aracı web uygulama sunucusu aracılığıyla tünellendiğinden , SSH sunucusu ile fiilen iletişim kuran bu sunucudur. Bu, SSH sunucusunun yalnızca web uygulama sunucusunun IP adresinden haberdar olacağı ve gerçek istemcinin IP adresini gizli tutacağı anlamına gelir .
  • Denetlenebilirlik : İstemci ile SSH sunucusu arasındaki tüm iletişimin web uygulama sunucusundan geçmesi gerektiğinden, bu iletişim günlüğe kaydedilebilir. Bu, kötü niyetli bir istemcinin etkinliklerinin günlüklerini silmesini önler. Durum, geleneksel SSH sunucusuyla tamamen aynıdır.
  • Oturumları Devam Ettirme : Bazı web tabanlı SSH uygulamaları, kullanıcının bağlantı kesildikten sonra SSH oturumlarına devam etmesine izin verir. Bu, geleneksel bir SSH istemcisi ile mümkün değildir.
  • Gömülebilir : Web tabanlı SSH uygulamaları, diğer web tabanlı uygulamalara entegre edilmelerine olanak tanıyan herhangi bir web sayfasına gömülebilir.
  • Benzersiz Özellikler : Birçok web tabanlı SSH aracı, terminalleri diğer kullanıcılarla paylaşma, terminaller içinde görüntüleri görüntüleyebilme ve diğer kullanışlı yetenekler gibi benzersiz özelliklere sahiptir.

Önemli konular

Web tabanlı bir SSH istemcisi kullanırken aşağıdaki konular dikkate alınmalıdır ve önemlidir:

  • Güvenlik : Web uygulama sunucusuyla iletişim kurarken HTTPS'nin kullanıldığından emin olmak önemlidir . Aksi takdirde, gönderilen tüm veriler, hassas bilgileri açığa çıkarabilecek basit paket yoklayıcılar kullanılarak okunabilir olacaktır .
  • Güven : Web uygulama sunucusuna gönderilen verilerin şifresi burada çözülür. Bu, verilen komutları gerçek SSH sunucusuna iletmek için gereklidir . Web tabanlı SSH çözümlerinin operatörleri genellikle hassas verileri kaydetmeseler de, veriler teorik olarak düz biçimde onlar için kullanılabilir. Web uygulama sunucusu ve SSH sunucusu aynı sunucuda çalıştırıldığında veya aynı varlık tarafından kontrol edildiğinde bunun bir güvenlik sorununa neden olması olası değildir .
  • Tünelleme : Çoğu geleneksel, uygulama tabanlı SSH istemcisinin aksine, web tabanlı SSH istemcileri TCP trafiğini tünelleyemez ("iletebilir") . Örneğin, web tabanlı bir SSH oturumu üzerinden bir X oturumu çalıştırmak mümkün değildir. Bununla birlikte, yetenek eksikliği, uygulama sorunlarından kaynaklanmaktadır ve bir şekilde doğası gereği yoktur.

Ücretsiz ve açık kaynak örnekleri

  • Google'ın Chrome ve Chromium için Secure Shell uzantısı , JavaScript hterm terminal emülatörünü Native Client üzerinde çalışan OpenSSH istemci koduyla eşleştirir . Secure Shell uzantısı, proxy kancaları aracılığıyla Google dışı HTTP-SSH proxy'leriyle çalışır ve üçüncü taraf uygulama nassh-relay , Secure Shell uzantısının XMLHttpRequest veya WebSocket aktarımı üzerinden bir SSH bağlantısı kurmasını sağlamak için bu kancaları kullanabilir .
  • shellinabox , oturum açma kabuğuna HTTPS erişimi sağlamak için bağımsız bir hizmet olarak veya nginx ile birlikte çalışır ve Debian ve RedHat kaynaklı Linux dağıtımları için paketlenmiştir .
  • webssh , Python'da yazılmış benzer bir çözümdür.
  • Bastillion , denetim ve anahtar yönetim yeteneklerine sahip, kendi kendine barındırılan, web tabanlı bir kaledir. Kullanıcılar merkezi bir sunucuya HTTPS üzerinden bağlanır ve SSH bağlantılarının proxy'si güvenli bir WebSocket aktarımı aracılığıyla gerçekleştirilir .
  • FireSSH , Firefox ESR ve Waterfox üzerinde çalışan bir tarayıcı eklentisidir.

Referanslar