[zorp-hu] 1.4rc11 config / pssl szivas

Balazs Scheidler bazsi@balabit.hu
Thu, 8 Nov 2001 12:41:29 +0100


On Thu, Nov 08, 2001 at 10:17:39AM +0100, Narancs v1 wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
> Szóval upgradeltem 0.8.8-as zorpomat a fenti verzióra és több órás szívás
> után (ugye végig kellet böngészni a .py fájlokat a szintaktika kedvéért)
> nagyjából rájöttem az új policy.py formátumára.
> 
> A mellélkelt sample is elég szűkszavú szerintem.

raadasul hibak is voltak benne. ezt frissitettem.

> 
> Mindenesetre a balabitről letölthető deb csomagokból hiányzott a
> Matcher.py, ami viszont az src-ben benne volt, uh. copy.

ok, attettem a .deb-be is.

> Az SSL még most se jött össze, tudna valaki egy működő http/ssl konfigot
> küldeni 1.4rc11-hez?
> 
> Tegyük fel, hogy van 1 rakás user a localnet-en, akiknek minden CA és
> trusted cert korlátozás nélkül internet https-t akarok proxyzni.
> 
> Megcsináltam a tf kliensek felé mutatott certjeit,
> 
> class IntraHttps(PsslProxy):
> 
>         class EmbeddedHttp(HttpProxy):
>                 def config(self):
>                        HttpProxy.config(self)
>              #         self.strict_header_checking = 0
>                        self.request_headers["User-Agent"] = [HTTP_CHANGE_VALUE, "Lynx/2.8.3rel.1"]
> 
>         def config(self):
>                 self.server_need_ssl = TRUE
>                 self.server_verify_type = SSL_VERIFY_REQUIRED_UNTRUSTED
>  #               self.server_ca_directory = '/etc/zorp/cas.certs'
>                 self.server_ca_directory = '/etc/zorp/ca.crt'
>                 self.server_cert = '/etc/zorp/server.crt'
> 
>                 self.client_need_ssl = TRUE
>                 self.client_cert = '/etc/zorp/server.crt'
>                 self.client_key = '/etc/zorp/server.key'
>                 self.client_verify_type = SSL_VERIFY_NONE
>                 self.stack_proxy = self.EmbeddedHttp
> 
> Most ebben a felállásban a *_NONE-ra azt modja hogy hülyeség ilyen attr
> nincs, persze a pssl.py-ben + van.
> Érdekes módon a server_verify_type-ra nem rinyál. A client-re írhatok
> akármit, nem teccik neki.
> 
> Szóval megköszönnék 1 kis segítséget ez ügyben.

hogyan importalod a modulok tartalmat? a python-ban ketfele import letezik:

1. import <modulnev>

ilyenkor a <modulnev> mint azonosito letrejon, es ezek utan tudsz a modul
valotozira hivatkozni <modulnev>.<valtozonev> neven. tehat ha ezt latod:

import Http

akkor mukodni fog a Http.HTTP_REQ_ACCEPT mint hivatkozas.

2. from <modulnev> import <azonosito> vagy from modulnev import *

ilyenkor az <azonosito> bekerul a lokalis namespace-be, es kozvetlenul
hivatkozhatsz ra:

from Http import *

eseten a HTTP_REQ_ACCEPT hivatkozas mukodik a modul specko nelkul is.

Az 'uj' policy.py-ban annyi tortent, hogy az egyszerusites kedveert a
a 2. format preferaljuk az 1. helyett. Ha megnezed az 1.4-es policy.py
elejet:

from Zorp.Core import *
from Zorp.Http import *
from Zorp.Plug import *
from Zorp.Ftp import *

mig regebben itt egy tizegynehany soros import resz volt. Ezert tunt el a
modulnev az azonositokbol.

Tehat nezd meg, hogy milyen modon importalod a Pssl-t, es igy kiderul, hogy
Pssl.SSL_VERIFY_NONE kell neked, vagy csak egyszeruen SSL_VERIFY_NONE

A konfigodra visszaterve:

>         def config(self):
>                 self.server_need_ssl = TRUE
>                 self.server_verify_type = SSL_VERIFY_REQUIRED_UNTRUSTED
>  #               self.server_ca_directory = '/etc/zorp/cas.certs'
>                 self.server_ca_directory = '/etc/zorp/ca.crt'
>                 self.server_cert = '/etc/zorp/server.crt'
>
>                 self.client_need_ssl = TRUE
>                 self.client_cert = '/etc/zorp/server.crt'
>                 self.client_key = '/etc/zorp/server.key'
>                 self.client_verify_type = SSL_VERIFY_NONE
>                 self.stack_proxy = self.EmbeddedHttp


a kliens oldali beallitasok teljesen jok (felteve ha a modul hivatkozasok
jok) a szerver oldalra nem kell a server_cert (hiszen nem csinalsz kliens
cert authot a szerver oldalon)

> Más: az filter izé url loggolás nem megy, mer ha bekapcsolom, akkor mindig
> policyviolation.html-t kapok.
>    #     def filterURL(self, method, url, version):
>                 # return Z_REJECT here to reject this request
>                 # change self.request_url to redirect to another url
>                 # change connection_mode to HTTP_CONNECTION_CLOSE to force kept-alive connections to close
>     #            log("http.info", 3, "%s: GET: %s" % (self.session.session_id, url))

opsz, ide kell egy

return HTTP_REQ_ACCEPT 
sor

> 
> Ezzel is volt szívás, mert régen Http.HTTP_POLICY volt, most pedig ez a
> "Htpp." eltűnt.

sot a HTTP_POLICY az deprecated, most mar a HTTP_REQ_POLICY a divatos.

> Ja és a user agent felülbírálást ki kellett kapcsolnom, mert a usereket
> kidobálta a hotmail és 1éb ms site, hogy az ő böngészőjük nem jó.
> Van 1éb ötlet, hogy mire írjam át, modjuk mozilla/linux :-) ?

;) szerintem vagj ki egy exploder version stringet es etesd meg vele jol.

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1