HTTP tünelleme

HTTP tünelleme, kapsüllenmiş http protokolünü kullanan çeşitli ağ protokollerini çalıştırarak bağlantı gerçekleştiren bir tekniktir. Ağ protokolleri  genelde TCP/IP ailesine ait olan protokollerdir. HTTP protokolü dolayısıyla, ağ protokolü tünnellenmiş olan kanal için kılıf (wrapper) olarak davranır.

Var olan uygulama yazılımı ile bütünleşen client-server http tünelleme uygulamalarını içeren http tünel yazılımı, bu uygulamaların, güvenlik duvarı ile çevrilmiş olan ağ bağlantıları gibi kısıtlı ağ durumlarında, proxy sunucuları arkasında kalan ağ durumlarında ve NATs durumlarında kullanımını sağlar.

Kullanım 
Bir http tüneli genelde daha çok kısıtlı bağlantı ile ağ konumu iletişimi anlamında kullanılır. Genelde NATs, güvenlik duvarları ya da proxy sunucuları arkalarında olan durumlar gibi. TCP/IP portlarının engellenmiş bir şekli biçiminde olan kısıtlı bağlantı, ağ dışı trafiğin başlamasını engeller ya da tüm ağ protokollerini (iç ve dış tehditlere karşı ağı korumak için ağ kapatmasını sağlayan birkaç protokol hariç) engeller.

Mekanizması 
Uzaktan bir ana sunucuyla bağlantı kurmak isteyen uygulama, aracı sunucu için bir http bağlantısı açar. Uygulama daha sonra http isteklerini kullanarak aracı sunucu ile iletişime geçer. Aracı sunucunun, yeterli şekilde kısıtlanmamış bağlantı ile ağ konumunda yer alması gerekir.

Aracı sunucu söz konusu olan uzaktaki ana sunucuya iletmeden gerçek verileri açar. Simetrik olarak, uzaktaki sunucudan veri aldığında, sunucuya http-cevap paketinin bir kısmı olarak gönderilmeden önce  http protokolü içerisinde paketler.

Bu durumda, uzaktaki sunucu iletişime geçilmek istenen sunucu rolü oynarken, uygulama ise tünelleme istemcisi olarak rol oynar.

Bağlantı ile HTTP tünelleme 
HTTP proxy sunucu arkasında iken http tünellemesinin bir çeşidi, “bağlanma (connect) ”http yöntemini kullanır.

Bu mekanizmada, istemci bir http proxy sunucusuna TCP bağlantısının belirlenen konuma iletimi için istekte bulunur. Sunucu tarafında bağlantı kurulduğunda proxy sunucusu proxy’ye doğru TCP akımına devam eder. Belirtmek gerekir ki ilk bağlantı isteği http’dir. Bundan sonra sunucu basitçe kurulmuş olan TCP bağlantısını proxy eder.

Bu mekanizma SSL kullanarak http proxy sunucusu arkasından nasıl web sayfalarına erişim yapıldığının bir örneğidir.

Bağlatı yapılmadan HTTP tünelleme 
Bazı ağlarda, bağlantı yöntemini kullanmak, bazı güvenilir web sayfaları için kısıtlıdır. Bu gibi durumlarda, bir http tüneli yine de, genel http yöntemlerinin (post, get ve delete gibi) kullanımı ile tamamlanmış olabilir.

Bu durumda, sunucu korunan ağ dışında çalışır ve özel http sunucusu olarak davranır. İstemci program ise korunan ağdaki bilgisayar üzerinde çalışır.

HTTP tünel istemcilerinin kullanım amaçları 
 Kısıtlı güvenlik duvarları ve proxy’ler arkasından uygulamaları kullanmak için
 Engellenmiş sitelere erişim için
 HTTP üzerinden güvenli şekilde bazı kaynak paylaşımları için

Kaynakça 

 http://en.wikipedia.org/wiki/HTTP_tunnel

Dış bağlantılar 
 BarbaTunnel Project - Free open source implementation of HTTP-Tunnel and UDP-Tunnel on Windows

Tünelleme
Ağ protokolleri
Bilgisayar güvenliği