Lütfen aşağıdaki şemaya bir göz atın.
Bu nasıl olmalı?
Bir uzak http: // myhost.com:8080/* isterse, istek geridöngü arabiriminin 8008 numaralı portunu dinleyen http sunucusuna iletilmelidir. Bu kolay kısım.
Uzak bir kullanıcı http: // myhost.com:8080/specialurl ... istediğinde
Uygulama düzeyinde bir ağ geçidi olarak hareket eden program, bağlantıyı şifreli bir oturuma yükseltebilmelidir (bağlantı noktalarını değiştirmeden)
Uzak tarayıcı ile şifrelenmiş bir oturum kurduktan sonra, geridönüş arabiriminin 8000 portunu dinleyen C programına talebi iletmelidir.
-
Sorularım:
- Hiç böyle bir çözümü bir üretim ortamında konuştunuz mu? Eğer varsa ...
- Uygulama ağ geçidi olarak kullanmak için hangi ürünü kullandınız?
- Bir yapılandırma örneği verebilir misiniz?
Zor kısıtlamalar:
- ben güvenlik duvarı üzerinde kontrol yokve iç sunucuya dış trafiği alabildiğim tek port 8080'dir. Bağlantı noktası numarası alakasızdır, güvenlik duvarı seviyesinde dahili sunucuya gelen trafiği yönlendiren tek bir port var.
- İç sunucu Linux'u çalıştırıyor olmalı (şu anda Debian Lenny çalışıyor)
- Uzak kullanıcılar, bu sunucuya erişmek için mevcut bir web tarayıcısından ve İnternet bağlantısından başka bir şeye ihtiyaç duymamalıdır. Bu, SSH ile ters port iletiminin burada bir seçenek olmadığı anlamına gelir.
- Üretimde test edilmiş ve kolayca dağıtılabilen bir ürüne ihtiyacım var. Kendi uygulama ağ geçidini geliştirmek istemiyorum (eğer durum buysa, sanırım bu soruyu Sunucu Hatası'nda sormak yerine Yığın Taşması'nda soruyordum).
Yumuşak kısıtlamalar:
- Apache'yi bir uygulama ağ geçidi olarak kullanmaktan kaçınmak isterim (ancak tek tercihim olsa bunu yapmaya istekli olmama rağmen)
- Mümkünse, uygulama ağ geçidi, olgun, açık kaynaklı bir yazılım ürünü olmalıdır.
Ürünler uygulama ağ geçitleri kadar denendi (başarısız)
- nginx
- lighttpd'nin
- pound
İlgili RFC'ler
- RFC2817 (... Mevcut bir TCP bağlantısı üzerinden Aktarım Katmanı Güvenliği'ni (TLS) başlatmak için HTTP / 1.1'deki Yükseltme mekanizmasının nasıl kullanılacağını açıklar. Bu, güvenli olmayan ve güvenli HTTP trafiğinin aynı iyi bilinen bağlantı noktasını paylaşmasına izin verir ...)
- RFC2818 (... Internet üzerinden HTTP bağlantılarını güvenli hale getirmek için TLS'yi nasıl kullanacağınızı açıklar. Mevcut uygulama, SSL'yi SSL üzerinden (TLS'ye göre öncü) katmanlamak, güvenli trafiği farklı bir sunucu portu kullanarak güvenli trafiğe ayırmaktır. ...)