On Fri, 2005-06-24 at 13:02 +0200, Pásztor Lénárd Zoltán wrote:
# Reverse HTTPS Proxy class ReverseHostHttpsProxy(PsslProxy):
def config(self): PsslProxy.config(self); self.copy_to_server = TRUE; self.copy_to_client = TRUE; self.client_need_ssl = TRUE; self.server_need_ssl = TRUE; self.shutdown_soft = TRUE; self.client_verify_type = SSL_VERIFY_NONE; self.server_verify_type = SSL_VERIFY_NONE; self.client_cert = "/etc/zorp/certs/test.crt"; self.client_key = "/etc/zorp/keys/test.key"; self.stack_proxy = ReverseHostHttpProxy;
# Instance definition def reverse_http(): Service( "https", ReverseHostHttpsProxy, router=InbandRouter(forge_addr=TRUE), chainer=SideStackChainer(ReverseHostHttpProxy) )
Melléstackelés esetén (SideStackChainer) az SSL proxy kimenete fog bekerűlni a mögötte lévő Proxyba. Vagyis Ha a self.server_need_ssl TRUE, akkor az SSL proxy titkosítja a tartlamat (legalábbis megpróbálja :) ) és azt kapja meg a Http Proxy. Ez egyiküknek sem jó. Éppen ezért, ha a szerver oldalon titkosított kapcsolatot szeretnél, akkor SSL szendvicset kell csinálnod. Ráadásul ilyenkor nem stack-elünk az SSL-be semmit, tehát nem kell e self.stack_proxy, mert így szegény Http proxy kétszer is fog találkozni az adattal. Vagyis SSL --- Http --- SSL formában. Es az első SSL-nél a szerver oldal ne legyen titkosított, a másodiknál a kliens oldal. Ja és a chainer definíció: chainer=SideStackChainer(ReverseHostHttpProxy, SideStackChainer(RightSSLProxy)) -- Szalay Attila BalaBit IT Biztonságtechnikai Kft. tel:(36-1)-371-05-40 1116 Bp. Csurgoi ut 20/b fax:(36-1)-208-08-75 http://www.balabit.hu/