[zorp-hu] Forras cim a httpd logba ujra

Balazs Scheidler zorp-hu@lists.balabit.hu
Thu, 04 Nov 2004 17:29:54 +0100


On Thu, 2004-11-04 at 17:34, Hegedüs Ervin wrote:
> hello,
> 
> > Adott egy tuzfal zorppal, mogotte ket webszerver.
> > Szeretnem atadni az IP cimet logelemzesnek, de nem akar menni.

ha mogotte van a ket webszerver, akkor egyszeruen adj meg egy
forge_addr-t a routernek, a Zorp tudja hamisitani a kliens eredeti
forrascimet, valahogy igy:

	Service("http", HttpProxy, router=InbandRouter(forge_addr=TRUE))

> 
> en igy csinalom:
> 
> from socket import gethostbyaddr
> 
> 
> > class WD_http(HttpProxy):
> >     def config(self):
> >         HttpProxy.config(self)
> >         self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL)
> >         self.request["POST"] = (HTTP_REQ_POLICY,
> >         self.filterURL)
> 
> #		ha nincs reverse, elhasal a Zorp...
> #		ha eleg az IP, ez nem kell, es a HDR_INSERT-nel
> #		csak a client_address kell
> 
>                 try:
>                         RemoteHost = gethostbyaddr (self.session.client_address.ip_s)[0];
>                 except:
>                         RemoteHost = self.session.client_address.ip_s;

ez a nevfeloldas erosen lassitani fog a feldolgozason, mert minden
kapcsolatnal reverse feloldast csinal a zorp. (pl. elerhetetlen a kliens
gep IPjehez tartozo DNS szerver)

> 
> >     def filterURL(self, method, url, version):
> 
>           self.request_headers["X-Host"] = (HTTP_HDR_INSERT, RemoteHost)

ezt gondolom a fenti config-ba akartad tenni.

> 
> >         if self.request_url_host == "www.akarmi1.hu":
> >            self.session.server_address =
> >            SockAddrInet("192.168.1.100", 8080)
> >            return HTTP_REQ_ACCEPT
> >         if self.request_url_host == "www.akarmi2.hu":
> >             self.session.server_address =
> >             SockAddrInet("192.168.2.100", 80)
> >             return HTTP_REQ_ACCEPT
> >         else :
> >             self.session.server_address =
> >             SockAddrInet("192.168.1.100", 80)
> >             return HTTP_REQ_ACCEPT


ez a fajta elosztas sokkal egyszerubben is mukodik: egyszeruen
InbandRouter-t hasznalsz transzparens modban, ha feloldhato a gep neve
(mondjuk /etc/hosts-bol), es az a belso gep IP-jere mutat.

-- 
Bazsi