[zorp-hu] Forras cim a httpd logba ujra

Hegedüs Ervin zorp-hu@lists.balabit.hu
Thu, 4 Nov 2004 17:34:09 +0100


hello,

> Adott egy tuzfal zorppal, mogotte ket webszerver.
> Szeretnem atadni az IP cimet logelemzesnek, de nem akar menni.

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;

>     def filterURL(self, method, url, version):

          self.request_headers["X-Host"] = (HTTP_HDR_INSERT, RemoteHost)

>         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

...

httpd.conf-ban pedig:

...
LogFormat "%{X-host}i %l %u %t \"%r\" %>s %b" common
...


a.

(en nem osztom el vhost szerint a kereseket, mindegyik ugyanoda megy,
de gondolom a header beszuras eleg igy, nem kell mindegyiknel...)

-- 
Minden baj forrása az 1/x függvény.