[zorp-hu] Re: [tproxy] tproxy 2.6.10+

Pásztor Lénárd Zoltán lenard.pasztor at wonderline.hu
Fri Jun 24 14:10:45 CEST 2005


Ha jol ertem amit irtal akkor 2 https proxyra van szuksegem.
Igy a configom erre valtozott:

# HTTP Proxy
class HTTPProxy(HttpProxy):

        def config(self):
                HttpProxy.config(self)

# HTTPS Proxy - Listener
class HTTPSListener(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    = FALSE;
                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";

# HTTPS Proxy - Worker
class HTTPSWorker(PsslProxy):

        def config(self):
                PsslProxy.config(self);
                self.copy_to_server     = TRUE;
                self.copy_to_client     = TRUE;
                self.client_need_ssl    = FALSE;
                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";

# Instance definition
def reverse_http():
        Service(
                "http",
                HTTPProxy,
                router=InbandRouter(forge_addr=TRUE),
                resolver=DNSResolver()
                )
        Service(
                "https",
                HTTPSListener,
                router=InbandRouter(forge_addr=TRUE),
                chainer=SideStackChainer(
                                         HTTPProxy,
                                         SideStackChainer(HTTPSWorker)
                                         )
                )
        Listener(SockAddrInet('10.3.6.253', 1200), "http")
        Listener(SockAddrInet('10.3.6.253', 1201), "https")


Igy szeretnem:

SSL Client -> HTTPSListener -> HTTPProxy -> HTTPSWorker -> SSL Server

Mostmar eljut a keres az SSL Server-hez, csak ahogy nezem a 80-as portja 
jon be a 443 helyett.
Tenyleg? Honnan tudja a Zorp, hogy melyik portra csatlakozzon (ok ha az 
url-ben nincs megadva akkor
default 80, 443). Meg lehet ezt kulon adni?

Gondolom itt nem az lesz a baj, hogy kulon meg kene adnom. Felek meg 
mindig hibas a config.


>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))
>
>  
>



More information about the zorp-hu mailing list