[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