[zorp-hu] Inbandrouter nyug ;)

Ifj. Darvas Istvan zorp-hu@lists.balabit.hu
Fri, 27 Feb 2004 11:48:15 +0100


Sziasztok,

> hat a setServerAddress override-olasa elegge belepiszkit a Zorp altal
> elkepzelt dolgokba (mondhatni a setServerAddress egy 'internal'
> interface), amit lehet ugyan modositani, de ott kell lebegjen egy "Don't
> mess with this unless you know what you are doing"


Igazabol azt szeretnem csinalni,  hogy van nekm 2 gepem is, es az egyik gep
a domain1.hu-t szolgalja ki, a masik gep meg a domain2.hu-t es ezek tuzfal
mogott vannak. Ha jon a keres https-en, akkor belenezve itt is a forgalomba
el tudjam donteni egy inband routerrel, hogy hova kuldjem a csomagokat.

HTTP mar megy, de a HTTPS-es nem ;( , mert nem igazan ertem, hogy hogyan
tudnek requestet ellnorzni a HTTPS-nek a pssl proxy-jaba agyazott http
proxy-ban ;)


Ezzel probalkoztam, de ez nem jo ;)

class TESTHTTPS(PsslProxy):
        class EmbeddedHttp(HttpProxy):
               def config(self):
                       HttpProxy.config(self)
                       self.request["GET"] =
(HTTP_REQ_POLICY,self.filterURL)
                       self.request["POST"] =
(HTTP_REQ_POLICY,self.filterURL)

               domain2_url = re.compile('domain1.hu')

               def filterURL(self, method, url, version):
                      if (self.domain2_url.search(url)):
                               self.session.server_address =
SockAddrInet("192.168.2.101", 443)
                               return HTTP_REQ_ACCEPT
                       return HTTP_REQ_ACCEPT

        def config(self):
                PsslProxy.config(self)
                self.client_need_ssl = TRUE
                self.client_cert = "/etc/zorp/cert/zorp.crt"
                self.client_key = "/etc/zorp/cert/zorp.key"
               self.client_verify_type = SSL_VERIFY_NONE
                self.server_need_ssl = TRUE
                self.server_key = "/etc/zorp/cert/https/serv.key"
                self.server_cert = "/etc/zorp/cert/https/serv.crt"
                self.server_verify_type = SSL_VERIFY_NONE
                self.stack_proxy = self.EmbeddedHttp
                self.session.server_address = SockAddrInet("192.168.1.101",
443)

        def setServerAddress(self, host, port):
                       return TRUE


En ugy gondolkodta, de buiztosan rosszul ;( hogy ha default erteknek a
pssl-ben megadom az 1.101-et es belenezve a http proxyval a forgalomba,
megtalaom a domain2-t, akkor a cimet kicserelve a proxy-ban mar
megisoldottam az iranyitast ;)

Szoval a kerdesem az lenne, hogy ezt hogyan kell megcsinalni?

Udv,
    Istvan